Comment sélectionner facilement toutes les colonnes d'un stage dans Snowflake
Updated on
Snowflake, une plateforme de données cloud révolutionnaire, transforme le paysage de l'ingénierie des données, des entrepôts de données, des data lakes et de la science des données. L'une des principales fonctionnalités de Snowflake est sa capacité à gérer des stages, un composant essentiel de l'entreposage des données et de l'analyse. Cet article vous plongera dans le concept des stages dans Snowflake et, plus important encore, comment sélectionner toutes les colonnes d'un stage.
Les stages dans Snowflake servent d'espace intermédiaire où les fichiers de données sont stockés avant d'être chargés dans les tables. Cette fonctionnalité est cruciale pour les opérations de données volumineuses, ce qui en fait un sujet essentiel pour les ingénieurs et les analystes de données travaillant avec Snowflake. Mais avant de nous plonger dans les spécificités de la sélection de toutes les colonnes d'un stage, comprenons d'abord ce que sont les stages Snowflake et pourquoi ils sont importants.
Vous souhaitez visualiser facilement les données Snowflake ? RATH (opens in a new tab) vous offre la solution la plus simple pour la visualisation de données alimentées par l'IA et un ensemble complet d'analyse de données automatisée !
Regardez la vidéo suivante sur la façon d'explorer facilement les informations de données avec RATH :
Vous souhaitez connecter votre base de données Snowflake à RATH dès maintenant ? Consultez la documentation de RATH pour un guide étape par étape de l'intégration Snowflake : Guide étape par étape pour l'intégration Snowflake.
Au-delà de Snowflake, RATH prend en charge une large gamme de sources de données. Voici quelques-unes des principales solutions de base de données auxquelles vous pouvez vous connecter à RATH :
Intéressé ? Essayez dès maintenant RATH sur le site web de RATH (opens in a new tab).
Comprendre les stages Snowflake
Dans Snowflake, un stage est un objet de base de données nommé qui spécifie l'emplacement où les fichiers de données sont mis en scène pour optimiser le chargement et le déchargement de données en vrac dans et hors des tables de la base de données. Les stages jouent un rôle crucial dans l'entreposage des données et l'analyse, en tant que pont entre les fichiers de données brutes et les tables Snowflake.
Il existe deux types de stages dans Snowflake:
- Stages internes: Ces stages stockent les données internes dans les tables Snowflake. Ils sont créés automatiquement pour chaque table et schéma, et vous pouvez également les créer explicitement.
- Stages externes: Ces stages stockent les données dans un emplacement externe, tel que des compartiments Amazon S3, des compartiments de stockage Google Cloud ou le stockage blob Microsoft Azure. Les stages externes sont en lecture seule, ce qui signifie que vous ne pouvez pas effectuer d'opérations DML dessus.
Comprendre la différence entre ces deux types de stages est crucial lorsque vous travaillez avec Snowflake, car cela influence votre interaction avec vos données.
Travailler avec les métadonnées Snowflake
Snowflake génère automatiquement des métadonnées pour les fichiers des stages internes et externes. Ces métadonnées comprennent les noms de fichiers, les identifiants de version et les propriétés associées, fournissant des informations supplémentaires sur les fichiers. Les métadonnées dans Snowflake servent de roadmap pour localiser le contenu d'un entrepôt de données, ce qui en fait un aspect essentiel des requêtes et de l'analyse des données.
Voici les principales colonnes de métadonnées dans Snowflake que vous pouvez interroger ou charger dans les tables:
- METADATA$FILENAME: Cette colonne retourne le nom du fichier mis en scène, la ligne à laquelle il appartient et le chemin du fichier.
- METADATA$FILE_ROW_NUMBER: Cette colonne retourne le numéro de ligne pour chaque enregistrement du fichier mis en scène.
Comment interroger les données mises en scène dans Snowflake
Maintenant que nous comprenons bien les stages et les métadonnées Snowflake, plongeons dans la manière d'interroger les données mises en scène dans Snowflake. Nous suivrons un guide pas à pas sur la façon d'interroger les métadonnées d'un stage externe et d'un stage interne, en fournissant des exemples pratiques pour illustrer le processus.
Interroger les métadonnées d'un stage externe
Commençons par un exemple où nous avons un fichier CSV nommé "Cars" mis en scène dans un compartiment Amazon S3 externe. Le fichier comporte trois colonnes : id, nom et emplacement. Voici comment vous pouvez interroger les métadonnées de ce fichier mis en scène:
-
Créer un stage Snowflake: Tout d'abord, vous devez créer un stage qui pointe vers le compartiment Amazon S3 où votre fichier CSV est stocké. Vous pouvez le faire à l'aide de la commande
CREATE STAGE
. -
Créer un format de fichier: Ensuite, vous devez créer un format de fichier qui décrit le format du fichier CSV. Vous pouvez le faire à l'aide de la commande
CREATE FILE FORMAT
. -
Interroger les métadonnées: Enfin, vous pouvez interroger les métadonnées et les colonnes de données régulières dans le fichier mis en scène en utilisant une instruction
SELECT
. L'instructionSELECT
doit inclure les colonnesMETADATA$FILENAME
etMETADATA$FILE_ROW_NUMBER
, ainsi que les colonnes de données régulières.
Voici un extrait de code d'exemple qui illustre ces étapes:
-- Créer un stage
CREATE OR REPLACE STAGE cars_stage URL = 's3://your_bucket/path/';
-- Créer un format de fichier
CREATE OR REPLACE FILE FORMAT cars_format TYPE = 'CSV' FIELD_DELIMITER = ',';
-- Interroger les métadonnées et les colonnes de données
SELECT METADATA$FILENAME, METADATA$FILE_ROW_NUMBER, $1, $2, $3
FROM @cars_stage
(FILE_FORMAT => cars_format);
Cette requête renverra le nom du fichier, le numéro de ligne et les données de chaque colonne pour chaque enregistrement du fichier CSV mis en scène.
Interroger les métadonnées d'un stage interne
L'interrogation des métadonnées d'un stage interne suit un processus similaire, mais avec quelques différences. Prenons l'exemple d'un fichier JSON nommé "Movies" mis en scène dans un stage Snowflake interne. Le fichier contient des objets avec deux propriétés : titre et année. Voici comment vous pouvez interroger les métadonnées de ce fichier mis en scène:
-
Créer un stage Snowflake: Comme pour le stage externe, vous devez d'abord créer un stage. Cependant, étant donné qu'il s'agit d'un stage interne, vous n'avez pas besoin de spécifier une URL.
-
Créer un format de fichier: Ensuite, vous devez créer un format de fichier qui décrit le format du fichier JSON. Cela se fait à l'aide de la commande
CREATE FILE FORMAT
, avec le type défini sur "JSON". -
Mettre en scène le fichier JSON: Vous pouvez mettre en scène le fichier JSON depuis votre répertoire local vers le stage Snowflake à l'aide de la commande
PUT
. -
Interroger les métadonnées: Enfin, vous pouvez interroger les métadonnées et les objets du fichier mis en scène à l'aide d'une instruction
SELECT
. L'instructionSELECT
doit inclure les colonnesMETADATA$FILENAME
etMETADATA$FILE_ROW_NUMBER
, ainsi que la fonctionPARSE_JSON
pour analyser les objets JSON.
Voici un extrait de code d'exemple qui illustre ces étapes:
-- Créer une étape (stage)
CREATE OR REPLACE STAGE movies_stage;
-- Créer un format de fichier
CREATE OR REPLACE FILE FORMAT movies_format TYPE = 'JSON';
-- Charger le fichier JSON dans l'étape (stage)
PUT file://path_to_your_file/movies.json @movies_stage;
-- Interroger les métadonnées et les colonnes de données
SELECT METADATA$FILENAME, METADATA$FILE_ROW_NUMBER, PARSE_JSON($1)
FROM @movies_stage
(FILE_FORMAT => movies_format);
Cette requête renvoie le nom du fichier, le numéro de ligne et les objets JSON analysés pour chaque enregistrement dans le fichier JSON en staging.
Techniques avancées pour interroger les données en staging
À mesure que vous vous familiarisez davantage avec l'interrogation des données en staging dans Snowflake, vous pouvez commencer à explorer des techniques plus avancées. Par exemple, vous pouvez utiliser la commande COPY INTO
pour charger les données d'un fichier en staging dans une table Snowflake. Cette commande vous permet d'effectuer des opérations sur les données en masse, ce qui peut être beaucoup plus rapide que d'insérer les données une par une.
Voici un exemple de la façon dont vous pouvez utiliser la commande COPY INTO
pour charger les données d'un fichier CSV en staging dans un table Snowflake :
-- Créer une table
CREATE OR REPLACE TABLE cars (id INTEGER, name STRING, location STRING);
-- Charger les données du fichier en staging dans la table
COPY INTO cars
FROM @cars_stage
FILE_FORMAT => cars_format;
Cette commande chargera toutes les données du fichier CSV en staging dans la table 'cars'. Vous pouvez ensuite interroger les données dans la table en utilisant des commandes SQL classiques.
FAQs
1. Puis-je interroger des données en staging dans Snowflake sans les charger dans une table ?
Oui, vous pouvez interroger directement des données en staging dans Snowflake sans les charger dans une table. Vous pouvez le faire en utilisant l'instruction SELECT
, comme indiqué dans les exemples ci-dessus. Cependant, gardez à l'esprit que l'interrogation de grandes quantités de données en staging directement peut être plus lente que l'interrogation de données chargées dans une table.
2. Quels types de fichiers puis-je mettre en staging dans Snowflake ?
Snowflake prend en charge la mise en staging de différents types de fichiers, notamment CSV, JSON, Avro, Parquet et ORC. Vous pouvez spécifier le type de fichier lors de la création d'un format de fichier.
3. Puis-je mettre en staging des données à partir d'un fichier local dans Snowflake ?
Oui, vous pouvez mettre en staging des données à partir d'un fichier local dans Snowflake en utilisant la commande PUT
. Cette commande charge le fichier local dans un stage interne de Snowflake, à partir duquel vous pouvez interroger les données ou les charger dans une table.
Conclusion
Sélectionner toutes les colonnes d'un stage dans Snowflake est une opération puissante qui vous permet d'interroger et d'analyser efficacement de grandes quantités de données. En comprenant les concepts de staging et de métadonnées dans Snowflake, et en maîtrisant les techniques d'interrogation des données en staging, vous pouvez exploiter pleinement le potentiel de vos données et obtenir des insights plus approfondis. Que vous soyez un ingénieur en données, un analyste de données ou simplement quelqu'un intéressé par la science des données, maîtriser ces compétences sera sans aucun doute un ajout précieux à votre boîte à outils.