Création de tableaux dans Snowflake : Types, exemples et meilleures pratiques
Apprenez à créer différents types de tableaux dans Snowflake, notamment des tableaux permanents, temporaires, externes et dynamiques. Inclut des exemples pas à pas et les meilleures pratiques.
Snowflake est une puissante plateforme d'entreposage de données basée sur le cloud qui aide les entreprises à stocker, gérer et analyser efficacement leurs données. Contrairement aux entrepôts de données traditionnels qui nécessitent des installations matérielles complexes, Snowflake fonctionne entièrement dans le cloud, ce qui permet aux entreprises de faire évoluer plus facilement leurs opérations de données en fonction de leurs besoins.
La création de tableaux dans Snowflake est une compétence fondamentale qui constitue la base de la gestion des données. Les tableaux sont l'endroit où vous stockez vos données structurées, ce qui permet d'exécuter des requêtes, de générer des rapports et de tirer des informations précieuses de vos informations. Que vous travailliez avec des données clients, des chiffres de vente ou des résultats analytiques, il est essentiel de comprendre comment créer et gérer des tableaux dans Snowflake.
Dans ce tutoriel, vous apprendrez tout ce qu'il faut savoir sur la création de tableaux dans Snowflake. Nous aborderons les différents types de tableaux, vous montrerons des exemples étape par étape et partagerons les meilleures pratiques en matière de conception de tableaux. À la fin, vous serez en mesure de choisir le type de tableau adapté à vos besoins et de créer des tableaux qui respectent les normes industrielles en matière de performance et de maintenabilité.
Comprendre les types de tableaux dans Snowflake
Avant de nous plonger dans des exemples de code sur la façon de créer des tableaux, explorons les différents types de tableaux dans Snowflake, car ils ont chacun des objectifs uniques et des caractéristiques distinctes en termes de persistance des données, d'accessibilité et d'emplacement de stockage.
Tableaux permanents
Les tableaux permanents sont le type de tableau standard dans Snowflake. Ils persistent jusqu'à ce qu'ils soient explicitement abandonnés et sont stockés dans la mémoire interne de Snowflake. Ces tableaux sont idéaux pour stocker les données essentielles de votre entreprise qui doivent être conservées à long terme et accessibles lors de plusieurs sessions. Les données contenues dans les tableaux permanents restent intactes entre les sessions et peuvent être consultées par tout utilisateur autorisé.
Tableaux temporaires
Les tableaux temporaires sont des tableaux spécifiques à une session qui sont automatiquement supprimés à la fin de la session en cours. Ils servent de tableaux d'espace de travail pour les étapes de traitement intermédiaires, ce qui permet d'organiser des transformations de données complexes sans encombrer votre stockage permanent. Les données contenues dans les tableaux temporaires ne sont visibles que par la session qui les a créés et sont automatiquement nettoyées à la fermeture de la session.
Tableaux externes
Les tableaux externes permettent d'interroger des données qui résident en dehors du stockage de Snowflake. Ils agissent comme une couche de métadonnées qui renvoient à des données dans des emplacements de stockage externes tels que AWS S3 ou Azure Blob Storage. Plutôt que d'ingérer les données, les tableaux externes créent une référence à celles-ci, ce qui vous permet d'interroger directement les données externes. Cette approche est particulièrement utile lorsque vous travaillez avec des données qui doivent rester dans leur emplacement d'origine ou qui nécessitent des mises à jour fréquentes à partir de systèmes externes.
Tableaux dynamiques
Les tableaux dynamiques sont une fonctionnalité puissante de Snowflake qui permet de maintenir automatiquement à jour les résultats d'une requête. Ils agissent comme des vues matérialisées qui s'actualisent automatiquement en fonction des modifications apportées aux tableaux sources sous-jacents. Lorsque vous créez un tableau dynamique, vous le définissez à l'aide d'une instruction SELECT, et Snowflake gère automatiquement le processus de rafraîchissement pour s'assurer que les données restent à jour.
Les tableaux dynamiques sont particulièrement utiles pour :
Construire des tableaux de bord en temps réel qui nécessitent des données fraîches sans rafraîchissement manuel
Maintenir des versions agrégées ou transformées des données sources qui sont mises à jour automatiquement
Création de modèles de données dépendants dans lesquels les tableaux en aval doivent refléter les changements en amont.
Optimiser les performances des requêtes en calculant à l'avance les transformations complexes
Les tableaux dynamiques présentent les caractéristiques suivantes :
Intervalles de rafraîchissement configurables (de 1 minute à 24 heures)
Suivi automatique des dépendances des tableaux sources
Cibler les paramètres de temps de latence pour contrôler la fraîcheur des données
Traitement incrémental pour minimiser les coûts de calcul
Capacités intégrées de surveillance et d'optimisation
Chaque type de tableau a une fonction distincte dans l'architecture des données. Les tableaux permanents constituent la base de votre entrepôt de données, les tableaux temporaires facilitent les flux de traitement des données, les tableaux externes permettent l'intégration avec des sources de données externes et les tableaux dynamiques fournissent des transformations de données automatisées en temps réel.
Comparaison des tableaux de Snowflake
Le tableau ci-dessous présente les différents types de tableaux Snowflake dans un guide de référence concis et rapide :
Tableau Type
Persistance
Visibilité
Meilleur pour
Permanent
Jusqu'à ce qu'il soit déposé
Toutes les sessions
Données de base de l'entreprise
Temporaire
Session uniquement
Même session
Transformations intermédiaires
Externe
Stockage externe
Toutes les sessions
Interroger des données externes (par exemple, S3)
Dynamique
Rafraîchissement automatique
Toutes les sessions
Analyse en temps réel
Créer des tableaux : Configuration de Snowflake
Avant d'exécuter les exemples de ce tutoriel, vous devez avoir accès à un environnement Snowflake. Voici plusieurs façons de se connecter à Snowflake et d'exécuter des commandes :
1. Interface web de Snowflake (Snowsight)
La façon la plus simple de commencer est de passer par l'interface web de Snowflake :
snowsql -a<account>-u<username>-d<database>-w<warehouse>Propulsé par
Vous trouverez les informations d'identification de votre compte Snowflake aux endroits suivants :
URL du compte : Regardez dans votre e-mail de bienvenue ou dans les paramètres de votre compte
Nom d'utilisateur : Fourni lors de l'ouverture du compte
Base de données : Créé ou attribué par votre administrateur
Entrepôt : Créé ou attribué par votre administrateur
Pour des raisons de sécurité, ne partagez ni ne divulguez jamais ces informations d'identification. Stockez-les en toute sécurité dans des variables d'environnement ou dans un fichier de configuration.
3. Connexion Python
Si vous utilisez Python, vous pouvez utiliser la bibliothèquesnowflake-connector-python:
import snowflake.connector
conn = snowflake.connector.connect(
user='your_username',
password='your_password',
account='your_account',
warehouse='your_warehouse',
database='your_database',
schema='your_schema')
cur = conn.cursor()
cur.execute("SELECT current_version()")Propulsé par
Note de sécurité importante :
Ne stockez jamais d'informations d'identification directement dans votre code.
Utiliser des variables d'environnement ou une gestion sécurisée des secrets
Pour la production, envisagez d'utiliser l'authentification par paire de clés
Respectez les politiques de sécurité de votre organisation
Maintenant que notre configuration est prête, créons des tableaux !
Création de tableaux dans Snowflake : Exemples pas à pas
Exemple 1 : Création d'un tableau Snowflake simple
Créons un tableau pour stocker les informations relatives aux clients. Cet exemple montre la création d'un tableau de base avec différents types de données et de contraintes.
-- Create a permanent table for customer dataCREATEORREPLACETABLE customers (
customer_id INTEGERPRIMARYKEY,
first_name VARCHAR(50)NOTNULL,
last_name VARCHAR(50)NOTNULL,
email VARCHAR(100)UNIQUE,
date_of_birth DATE,
created_at TIMESTAMP_NTZ DEFAULTCURRENT_TIMESTAMP());Propulsé par
Points clés de cet exemple :
CREATE OR REPLACE TABLE - Crée un nouveau tableau ou le remplace s'il existe déjà.
PRIMARY KEY - Assure l'identification unique de chaque enregistrement
NOT NULL - Empêche les valeurs nulles dans les champs obligatoires
UNIQUE - Veille à ce que les adresses électroniques ne soient pas dupliquées
TIMESTAMP_NTZ - Horodatage sans fuseau horaire
DEFAULT - Définit automatiquement l'horodatage de la création
Exemple 2 : Création d'un tableau temporaire
Les tableaux temporaires sont parfaits pour le traitement des données intermédiaires. Voici un exemple qui crée un tableau temporaire pour l'analyse des commandes des clients :
-- Create a temporary table for order analysisCREATEORREPLACETEMPORARYTABLE temp_order_analysis (
order_date DATE,
total_orders INTEGER,
total_revenue DECIMAL(18,2))ASSELECT
DATE_TRUNC('day', order_date)as order_date,COUNT(*)as total_orders,SUM(order_amount)as total_revenue
FROM orders
GROUPBY1;Propulsé par
Points clés concernant les tableaux temporaires :
Le mot-clé TEMPORARY indique que ce tableau n'existera que dans la session en cours. Cela signifie que les autres utilisateurs ne peuvent pas voir ou accéder à ce tableau.
L'utilisation de CREATE TABLE AS (CTAS) vous permet de créer et d'alimenter un tableau en une seule étape en combinant la définition du tableau avec une instruction SELECT.
Le tableau temporaire est automatiquement supprimé à la fin de votre session, ce qui permet de maintenir la base de données propre sans nettoyage manuel.
Les tableaux temporaires sont utiles pour stocker des résultats intermédiaires lors de transformations de données complexes ou de flux d'analyse.
Exemple 3 : Création d'un tableau externe dans Snowflake
Cet exemple montre comment créer un tableau externe qui lit les données des fichiers stockés dans un seau de stockage cloud :
La première déclaration définit une spécification de format de fichier qui indique à Snowflake comment analyser les fichiers CSV externes, y compris le délimiteur, la gestion de l'en-tête et la représentation de la valeur NULL.
La deuxième instruction crée un objet de scène qui établit une connexion au stockage cloud externe (dans ce cas, S3) à l'aide des informations d'identification fournies. Cette étape sert de point de référence pour l'accès aux fichiers de données externes.
La troisième instruction crée le tableau externe lui-même, en utilisant des définitions de colonnes avec des clauses AS pour convertir explicitement les données brutes du CSV en types de données Snowflake appropriés. La clause AVEC LOCATION indique le chemin spécifique dans l'étape où se trouvent les fichiers.
Le paramètre PATTERN filtre les fichiers à inclure à l'aide d'une expression rationnelle, ce qui garantit que seuls les fichiers CSV sont traités.
Conditions préalables à l'exécution de cette requête de création de tableaux externes :
1. Accès à un compte Snowflake avec des permissions pour :
Créer des formats de fichiers
Créer des étapes
Créer des tableaux externes
2. Identifiants AWS valides (AWS_KEY_ID et AWS_SECRET_KEY ) avec les permissions pour:
Lecture à partir du panier S3
Liste des objets dans le seau
3. Exigences en matière de données sources :
Fichiers CSV stockés dans une corbeille S3
Les fichiers suivent un format cohérent avec quatre colonnes
Les données des colonnes correspondent aux types spécifiés :
customer_id en tant que chaîne de caractères
purchase_date comme date
product_id en tant que chaîne de caractères
amount sous forme décimale
4. Connectivité réseau :
Accès réseau à AWS S3
Paramètres appropriés du groupe de sécurité et du pare-feu
5. Ressources informatiques :
Entrepôt actif doté d'une capacité informatique suffisante
Crédits/quotas d'utilisateurs suffisants
Exemple 4 : Création d'un tableau dynamique
Cet exemple crée un tableau dynamique qui tient à jour un résumé des données relatives aux ventes :
-- Create a dynamic table for real-time sales analyticsCREATEORREPLACE DYNAMIC TABLE daily_sales_summary
TARGET_LAG ='20 minutes'
WAREHOUSE ='COMPUTE_WH'ASSELECT
DATE_TRUNC('day', sale_timestamp)as sale_date,
product_category,SUM(sale_amount)as total_sales,COUNT(DISTINCT customer_id)as unique_customers
FROM sales_transactions
GROUPBY1,2;Propulsé par
Le paramètre TARGET_LAG "20 minutes" définit le délai maximal autorisé entre les mises à jour du tableau source et le moment où ces modifications sont répercutées dans le tableau dynamique. Cela permet de garantir la fraîcheur des données dans ce laps de temps.
Le paramètre WAREHOUSE indique les ressources de calcul (dans le cas présent, COMPUTE_WH) qui seront utilisées pour actualiser périodiquement le tableau dynamique. Cet entrepôt doit avoir une capacité suffisante pour gérer les opérations de rafraîchissement.
Le tableau dynamique met automatiquement à jour son contenu lorsque le tableau sales_transactions sous-jacent est modifié, sans nécessiter d'intervention manuelle. Cela permet de disposer de capacités d'analyse en temps quasi réel.
En conservant des résumés préagrégés des ventes quotidiennes regroupées par catégorie de produits, le tableau dynamique permet une interrogation plus rapide qu'en calculant ces mesures à la demande à partir des données de transaction brutes. Cela améliore les performances des requêtes pour les cas d'utilisation de rapports et d'analyses.
Chacun de ces exemples illustre différents scénarios de création de tableaux que vous pourriez rencontrer dans des applications réelles. N'oubliez pas d'adapter les noms de colonnes, les types de données et les autres paramètres en fonction de vos besoins spécifiques.
Meilleures pratiques pour la création de tableaux dans Snowflake
Explorons quelques bonnes pratiques à suivre lors de la création de tableaux dans Snowflake pour garantir la maintenabilité, la performance et la qualité des données.
1. Conventions d'appellation
Utilisez toujours des noms clairs et cohérents pour vos tableaux et vos colonnes :
-- Good naming examplesCREATETABLE customer_orders (
order_id INTEGER,
customer_email VARCHAR,
order_date DATE);-- Bad naming examplesCREATETABLE Orders123 (
ID INTEGER,
email VARCHAR,
dt DATE);Propulsé par
Conseils pour l'attribution de noms :
Utilisez des lettres minuscules et des traits de soulignement (snake_case)
Évitez les espaces et les caractères spéciaux
Les noms doivent être descriptifs mais pas trop longs
Utilisez le singulier pour les noms de tableaux (client et non clients)
Ajouter des préfixes pour les différents environnements (dev_,test_,prod_ )
2. Types de données des colonnes
Choisissez le bon type de données pour économiser de l'espace et améliorer les performances :
-- Good data type choicesCREATETABLE products (
product_id INTEGER,
price DECIMAL(10,2),-- For money values
name VARCHAR(100),-- Set a reasonable limit
description TEXT,-- For very long text
is_active BOOLEAN-- Instead of VARCHAR or INTEGER);Propulsé par
Types de données courants à utiliser :
NUMBER/INTEGER: Pour les nombres entiers
DECIMAL/NUMERIC: Pour les nombres décimaux précis (en particulier l'argent)
VARCHAR: Pour un texte dont la longueur maximale est connue
TEXT: Pour un texte de longueur illimitée
TIMESTAMP_NTZ: Pour les dates et heures (sans fuseau horaire)
BOOLEAN: Pour les valeurs vrai/faux
3. Utilisation des clés de répartition
Ajoutez des clés de regroupement pour améliorer les performances des requêtes :
Pour les tableaux de grande taille (plus d'un million de lignes)
Sur les colonnes sur lesquelles vous effectuez fréquemment des filtres ou des jointures
Généralement des colonnes de dates et 1 ou 2 autres colonnes
Ne pas regrouper les colonnes ayant trop de valeurs uniques
4. Ajout de contraintes sur les tableaux
Utilisez les contraintes pour garder vos données propres :
CREATETABLE users (
user_id INTEGERPRIMARYKEY,-- Ensures unique IDs
email VARCHAR(255)UNIQUE,-- No duplicate emails
username VARCHAR(50)NOTNULL,-- Must have a value
age INTEGERCHECK(age >=18)-- Must be 18 or older);Propulsé par
Des contraintes importantes :
PRIMARY KEY: Pour les identifiants uniques
FOREIGN KEY: Pour relier les tableaux entre eux
NOT NULL: Pour les champs obligatoires
UNIQUE: Pour les champs qui ne peuvent pas avoir de doublons
CHECK: Pour une validation simple des données
5. Les erreurs courantes à éviter
Ne faites pas cela :
-- Bad practice: No primary keyCREATETABLE orders (dateVARCHAR,-- Wrong data type for dates
amount VARCHAR(10),-- Wrong data type for numbersstatustext-- Inconsistent case with other columns);Propulsé par
Faites plutôt ceci :
-- Good practiceCREATETABLE orders (
order_id INTEGERPRIMARYKEY,
order_date DATE,
amount DECIMAL(10,2),statusVARCHAR(20));Propulsé par
La version améliorée garantit l'intégrité des données grâce à une clé primaire, utilise des types de données corrects pour les dates et les nombres afin de permettre un filtrage et des calculs efficaces, et maintient la cohérence des définitions des colonnes pour une meilleure lisibilité et une meilleure compatibilité.
6. Conseils de performance
L'optimisation des performances des tableaux dans Snowflake peut améliorer considérablement la vitesse des requêtes et réduire les coûts de stockage. Suivez ces bonnes pratiques pour garantir l'efficacité et l'évolutivité de vos tableaux.
Créez des tableaux plus petits au lieu d'un seul tableau gigantesque
Ajoutez des descriptions de colonnes à l'aide de COMMENT
Établir des règles de nettoyage automatique des données
Testez la conception de votre tableau avec des données réelles
Contrôler l'utilisation des tableaux et procéder aux ajustements nécessaires.
7. Meilleures pratiques en matière de sécurité
Des mesures de sécurité adéquates sont essentielles pour protéger les données sensibles et contrôler l'accès. Mettez en œuvre ces bonnes pratiques pour protéger votre environnement Snowflake contre les accès non autorisés et les violations de données.
Définissez toujours des autorisations d'accès appropriées
Utilisez la sécurité au niveau des lignes si nécessaire
Cryptage des colonnes sensibles
Le cursus permet de savoir qui peut accéder à quoi.
Examiner régulièrement les schémas d'accès
Rappelez-vous : Un tableau bien conçu vous facilite le travail par la suite. Prenez le temps de planifier la structure de votre tableau avant de le créer !
Conclusion
Dans ce tutoriel, nous avons couvert l'essentiel de la création de tableaux dans Snowflake, y compris :
Différents types de tableaux (permanents, temporaires, externes et dynamiques)
Des exemples pas à pas pour créer chaque type
Meilleures pratiques pour la conception et la gestion des tableaux
Les pièges à éviter
Ces connaissances constituent la base de la construction de solutions de données efficaces et évolutives dans Snowflake.
Prochaines étapes
Pour approfondir vos connaissances sur Snowflake, consultez ces précieuses ressources :
N'oubliez pas que la meilleure façon d'apprendre est de faire. Commencez à créer des tableaux, expérimentez différents types et élaborez de véritables projets. Lorsque vous rencontrez des difficultés, reportez-vous à ces ressources et continuez à explorer les nouvelles fonctionnalités de Snowflake.
Table de création Snowflake FAQs
Quels sont les différents types de tableaux dans Snowflake ?⌄
Snowflake prend en charge quatre types de tableaux principaux : les tableaux permanents pour le stockage des données à long terme, les tableaux temporaires pour une utilisation spécifique à une session, les tableaux externes pour l'interrogation de sources de données externes et les tableaux dynamiques pour la maintenance automatique des résultats des requêtes.
Comment créer un tableau de base dans Snowflake ?⌄
Utilisez la commande CREATE TABLE avec le schéma de votre choix. Par exemple : "CREATE TABLE customers (customer_id INTEGER PRIMARY KEY, first_name VARCHAR(50), last_name VARCHAR(50))". Inclure les types de données et les contraintes appropriés.
Qu'est-ce qu'un tableau dynamique dans Snowflake et quand dois-je l'utiliser ?⌄
Les tableaux dynamiques maintiennent automatiquement à jour les résultats d'une requête, à l'instar des vues matérialisées. Ils sont idéaux pour les tableaux de bord en temps réel, les transformations de données automatisées et le maintien de données agrégées nécessitant des mises à jour fréquentes.
Quelles sont les meilleures pratiques pour nommer les tableaux dans Snowflake ?⌄
Utilisez des lettres minuscules avec des traits de soulignement (snake_case), évitez les espaces et les caractères spéciaux, rendez les noms descriptifs mais concis, utilisez le singulier pour les noms de tableaux et envisagez d'ajouter des préfixes d'environnement (dev_, test_, prod_).
Comment puis-je améliorer les performances des tableaux dans Snowflake ?⌄
Améliorez les performances en utilisant des clés de regroupement appropriées, en choisissant des types de données adéquats, en définissant des contraintes appropriées, en créant des tableaux ciblés plus petits au lieu de grands tableaux et en surveillant régulièrement les schémas d'utilisation des tableaux.
Vous êtes actuellement à la recherche d'un emploi qui utilise Snowflake ? Préparez-vous à répondre à ces 20 questions d'entretien sur le flocon de neige pour décrocher le poste !
Apprenez l'essentiel de l'architecture d'un entrepôt de données, des composants clés aux meilleures pratiques, pour construire un système de données évolutif et efficace !
Initiez-vous aux structures de données de Python : apprenez-en plus sur les types de données et les structures de données primitives et non primitives, telles que les chaînes de caractères, les listes, les piles, etc.
Découvrez les fondamentaux de l’ingénierie des données : conception de bases de données et entreposage de données, avec des technologies telles que PostgreSQL et Snowflake !
Snowflake est une puissante plateforme d'entreposage de données basée sur le cloud qui aide les entreprises à stocker, gérer et analyser efficacement leurs données. Contrairement aux entrepôts de données traditionnels qui nécessitent des installations matérielles complexes, Snowflake fonctionne entièrement dans le cloud, ce qui permet aux entreprises de faire évoluer plus facilement leurs opérations de données en fonction de leurs besoins.
La création de tableaux dans Snowflake est une compétence fondamentale qui constitue la base de la gestion des données. Les tableaux sont l'endroit où vous stockez vos données structurées, ce qui permet d'exécuter des requêtes, de générer des rapports et de tirer des informations précieuses de vos informations. Que vous travailliez avec des données clients, des chiffres de vente ou des résultats analytiques, il est essentiel de comprendre comment créer et gérer des tableaux dans Snowflake.
Dans ce tutoriel, vous apprendrez tout ce qu'il faut savoir sur la création de tableaux dans Snowflake. Nous aborderons les différents types de tableaux, vous montrerons des exemples étape par étape et partagerons les meilleures pratiques en matière de conception de tableaux. À la fin, vous serez en mesure de choisir le type de tableau adapté à vos besoins et de créer des tableaux qui respectent les normes industrielles en matière de performance et de maintenabilité.
Comprendre les types de tableaux dans Snowflake
Avant de nous plonger dans des exemples de code sur la façon de créer des tableaux, explorons les différents types de tableaux dans Snowflake, car ils ont chacun des objectifs uniques et des caractéristiques distinctes en termes de persistance des données, d'accessibilité et d'emplacement de stockage.
Tableaux permanents
Les tableaux permanents sont le type de tableau standard dans Snowflake. Ils persistent jusqu'à ce qu'ils soient explicitement abandonnés et sont stockés dans la mémoire interne de Snowflake. Ces tableaux sont idéaux pour stocker les données essentielles de votre entreprise qui doivent être conservées à long terme et accessibles lors de plusieurs sessions. Les données contenues dans les tableaux permanents restent intactes entre les sessions et peuvent être consultées par tout utilisateur autorisé.
Tableaux temporaires
Les tableaux temporaires sont des tableaux spécifiques à une session qui sont automatiquement supprimés à la fin de la session en cours. Ils servent de tableaux d'espace de travail pour les étapes de traitement intermédiaires, ce qui permet d'organiser des transformations de données complexes sans encombrer votre stockage permanent. Les données contenues dans les tableaux temporaires ne sont visibles que par la session qui les a créés et sont automatiquement nettoyées à la fermeture de la session.
Tableaux externes
Les tableaux externes permettent d'interroger des données qui résident en dehors du stockage de Snowflake. Ils agissent comme une couche de métadonnées qui renvoient à des données dans des emplacements de stockage externes tels que AWS S3 ou Azure Blob Storage. Plutôt que d'ingérer les données, les tableaux externes créent une référence à celles-ci, ce qui vous permet d'interroger directement les données externes. Cette approche est particulièrement utile lorsque vous travaillez avec des données qui doivent rester dans leur emplacement d'origine ou qui nécessitent des mises à jour fréquentes à partir de systèmes externes.
Tableaux dynamiques
Les tableaux dynamiques sont une fonctionnalité puissante de Snowflake qui permet de maintenir automatiquement à jour les résultats d'une requête. Ils agissent comme des vues matérialisées qui s'actualisent automatiquement en fonction des modifications apportées aux tableaux sources sous-jacents. Lorsque vous créez un tableau dynamique, vous le définissez à l'aide d'une instruction SELECT, et Snowflake gère automatiquement le processus de rafraîchissement pour s'assurer que les données restent à jour.
Les tableaux dynamiques sont particulièrement utiles pour :
Les tableaux dynamiques présentent les caractéristiques suivantes :
Chaque type de tableau a une fonction distincte dans l'architecture des données. Les tableaux permanents constituent la base de votre entrepôt de données, les tableaux temporaires facilitent les flux de traitement des données, les tableaux externes permettent l'intégration avec des sources de données externes et les tableaux dynamiques fournissent des transformations de données automatisées en temps réel.
Comparaison des tableaux de Snowflake
Le tableau ci-dessous présente les différents types de tableaux Snowflake dans un guide de référence concis et rapide :
Tableau Type
Persistance
Visibilité
Meilleur pour
Permanent
Jusqu'à ce qu'il soit déposé
Toutes les sessions
Données de base de l'entreprise
Temporaire
Session uniquement
Même session
Transformations intermédiaires
Externe
Stockage externe
Toutes les sessions
Interroger des données externes (par exemple, S3)
Dynamique
Rafraîchissement automatique
Toutes les sessions
Analyse en temps réel
Créer des tableaux : Configuration de Snowflake
Avant d'exécuter les exemples de ce tutoriel, vous devez avoir accès à un environnement Snowflake. Voici plusieurs façons de se connecter à Snowflake et d'exécuter des commandes :
1. Interface web de Snowflake (Snowsight)
La façon la plus simple de commencer est de passer par l'interface web de Snowflake :
2. SnowSQL (outil en ligne de commande)
Pour l'accès à la ligne de commande :
Vous trouverez les informations d'identification de votre compte Snowflake aux endroits suivants :
Pour des raisons de sécurité, ne partagez ni ne divulguez jamais ces informations d'identification. Stockez-les en toute sécurité dans des variables d'environnement ou dans un fichier de configuration.
3. Connexion Python
Si vous utilisez Python, vous pouvez utiliser la bibliothèque
snowflake-connector-python:Note de sécurité importante :
Maintenant que notre configuration est prête, créons des tableaux !
Création de tableaux dans Snowflake : Exemples pas à pas
Exemple 1 : Création d'un tableau Snowflake simple
Créons un tableau pour stocker les informations relatives aux clients. Cet exemple montre la création d'un tableau de base avec différents types de données et de contraintes.
Points clés de cet exemple :
CREATE OR REPLACE TABLE- Crée un nouveau tableau ou le remplace s'il existe déjà.PRIMARY KEY- Assure l'identification unique de chaque enregistrementNOT NULL- Empêche les valeurs nulles dans les champs obligatoiresUNIQUE- Veille à ce que les adresses électroniques ne soient pas dupliquéesTIMESTAMP_NTZ- Horodatage sans fuseau horaireDEFAULT- Définit automatiquement l'horodatage de la créationExemple 2 : Création d'un tableau temporaire
Les tableaux temporaires sont parfaits pour le traitement des données intermédiaires. Voici un exemple qui crée un tableau temporaire pour l'analyse des commandes des clients :
Points clés concernant les tableaux temporaires :
TEMPORARYindique que ce tableau n'existera que dans la session en cours. Cela signifie que les autres utilisateurs ne peuvent pas voir ou accéder à ce tableau.CREATE TABLE AS(CTAS) vous permet de créer et d'alimenter un tableau en une seule étape en combinant la définition du tableau avec une instruction SELECT.Exemple 3 : Création d'un tableau externe dans Snowflake
Cet exemple montre comment créer un tableau externe qui lit les données des fichiers stockés dans un seau de stockage cloud :
La première déclaration définit une spécification de format de fichier qui indique à Snowflake comment analyser les fichiers CSV externes, y compris le délimiteur, la gestion de l'en-tête et la représentation de la valeur NULL.
La deuxième instruction crée un objet de scène qui établit une connexion au stockage cloud externe (dans ce cas, S3) à l'aide des informations d'identification fournies. Cette étape sert de point de référence pour l'accès aux fichiers de données externes.
La troisième instruction crée le tableau externe lui-même, en utilisant des définitions de colonnes avec des clauses AS pour convertir explicitement les données brutes du CSV en types de données Snowflake appropriés. La clause AVEC LOCATION indique le chemin spécifique dans l'étape où se trouvent les fichiers.
Le paramètre PATTERN filtre les fichiers à inclure à l'aide d'une expression rationnelle, ce qui garantit que seuls les fichiers CSV sont traités.
Conditions préalables à l'exécution de cette requête de création de tableaux externes :
1. Accès à un compte Snowflake avec des permissions pour :
2. Identifiants AWS valides (
AWS_KEY_IDetAWS_SECRET_KEY) avec les permissions pour:3. Exigences en matière de données sources :
customer_iden tant que chaîne de caractèrespurchase_datecomme dateproduct_iden tant que chaîne de caractèresamountsous forme décimale4. Connectivité réseau :
5. Ressources informatiques :
Exemple 4 : Création d'un tableau dynamique
Cet exemple crée un tableau dynamique qui tient à jour un résumé des données relatives aux ventes :
Le paramètre
TARGET_LAG"20 minutes" définit le délai maximal autorisé entre les mises à jour du tableau source et le moment où ces modifications sont répercutées dans le tableau dynamique. Cela permet de garantir la fraîcheur des données dans ce laps de temps.Le paramètre
WAREHOUSEindique les ressources de calcul (dans le cas présent,COMPUTE_WH) qui seront utilisées pour actualiser périodiquement le tableau dynamique. Cet entrepôt doit avoir une capacité suffisante pour gérer les opérations de rafraîchissement.Le tableau dynamique met automatiquement à jour son contenu lorsque le tableau
sales_transactionssous-jacent est modifié, sans nécessiter d'intervention manuelle. Cela permet de disposer de capacités d'analyse en temps quasi réel.En conservant des résumés préagrégés des ventes quotidiennes regroupées par catégorie de produits, le tableau dynamique permet une interrogation plus rapide qu'en calculant ces mesures à la demande à partir des données de transaction brutes. Cela améliore les performances des requêtes pour les cas d'utilisation de rapports et d'analyses.
Chacun de ces exemples illustre différents scénarios de création de tableaux que vous pourriez rencontrer dans des applications réelles. N'oubliez pas d'adapter les noms de colonnes, les types de données et les autres paramètres en fonction de vos besoins spécifiques.
Meilleures pratiques pour la création de tableaux dans Snowflake
Explorons quelques bonnes pratiques à suivre lors de la création de tableaux dans Snowflake pour garantir la maintenabilité, la performance et la qualité des données.
1. Conventions d'appellation
Utilisez toujours des noms clairs et cohérents pour vos tableaux et vos colonnes :
Conseils pour l'attribution de noms :
dev_,test_,prod_)2. Types de données des colonnes
Choisissez le bon type de données pour économiser de l'espace et améliorer les performances :
Types de données courants à utiliser :
NUMBER/INTEGER: Pour les nombres entiersDECIMAL/NUMERIC: Pour les nombres décimaux précis (en particulier l'argent)VARCHAR: Pour un texte dont la longueur maximale est connueTEXT: Pour un texte de longueur illimitéeTIMESTAMP_NTZ: Pour les dates et heures (sans fuseau horaire)BOOLEAN: Pour les valeurs vrai/faux3. Utilisation des clés de répartition
Ajoutez des clés de regroupement pour améliorer les performances des requêtes :
Quand utiliser la mise en grappe ?
4. Ajout de contraintes sur les tableaux
Utilisez les contraintes pour garder vos données propres :
Des contraintes importantes :
PRIMARY KEY: Pour les identifiants uniquesFOREIGN KEY: Pour relier les tableaux entre euxNOT NULL: Pour les champs obligatoiresUNIQUE: Pour les champs qui ne peuvent pas avoir de doublonsCHECK: Pour une validation simple des données5. Les erreurs courantes à éviter
Ne faites pas cela :
Faites plutôt ceci :
La version améliorée garantit l'intégrité des données grâce à une clé primaire, utilise des types de données corrects pour les dates et les nombres afin de permettre un filtrage et des calculs efficaces, et maintient la cohérence des définitions des colonnes pour une meilleure lisibilité et une meilleure compatibilité.
6. Conseils de performance
L'optimisation des performances des tableaux dans Snowflake peut améliorer considérablement la vitesse des requêtes et réduire les coûts de stockage. Suivez ces bonnes pratiques pour garantir l'efficacité et l'évolutivité de vos tableaux.
7. Meilleures pratiques en matière de sécurité
Des mesures de sécurité adéquates sont essentielles pour protéger les données sensibles et contrôler l'accès. Mettez en œuvre ces bonnes pratiques pour protéger votre environnement Snowflake contre les accès non autorisés et les violations de données.
Rappelez-vous : Un tableau bien conçu vous facilite le travail par la suite. Prenez le temps de planifier la structure de votre tableau avant de le créer !
Conclusion
Dans ce tutoriel, nous avons couvert l'essentiel de la création de tableaux dans Snowflake, y compris :
Ces connaissances constituent la base de la construction de solutions de données efficaces et évolutives dans Snowflake.
Prochaines étapes
Pour approfondir vos connaissances sur Snowflake, consultez ces précieuses ressources :
1. Cours interactifs :
2. Des tutoriels complets :
3. Ressources professionnelles :
N'oubliez pas que la meilleure façon d'apprendre est de faire. Commencez à créer des tableaux, expérimentez différents types et élaborez de véritables projets. Lorsque vous rencontrez des difficultés, reportez-vous à ces ressources et continuez à explorer les nouvelles fonctionnalités de Snowflake.