Préparation au chargement de données

Ce chapitre fournit une vue d’ensemble des formats de fichier de données et de compression de données pris en charge. Selon la structure de vos données, vous pourriez avoir besoin de préparer les données avant de les charger.

Dans ce chapitre :

Types de données pris en charge

Voir Référence de types de données SQL pour obtenir des descriptions des types de données pris en charge par Snowflake.

Compression de fichiers de données

Nous vous recommandons de compresser vos fichiers de données lorsque vous chargez de grands ensembles de données. Voir CREATE FILE FORMAT pour les algorithmes de compression pris en charge pour chaque type de données.

Lors du chargement de données compressées, Snowflake déterminera automatiquement la méthode de compression du fichier et du codec pour vos fichiers de données. L’option de format de fichier COMPRESSION décrit comment vos fichiers de données sont déjà compressés dans la zone de préparation. Réglez l’option COMPRESSION de l’une des façons suivantes :

  • Comme option de format de fichier spécifiée directement dans l’instruction COPY INTO <table>.

  • Comme option de format de fichier spécifiée pour un format de fichier ou un objet de zone de préparation nommé. Le format de fichier/d’objet de zone de préparation nommé peut alors être référencé dans la commande COPY INTO <table>.

Formats de fichiers pris en charge

Les formats de fichiers suivants sont pris en charge :

Structuré/Semi-structuré

Type

Remarques

Structuré

Délimité (CSV, TSV, etc.)

Tout délimiteur à un seul octet valide est pris en charge. La valeur par défaut est la virgule (c.-à-d. CSV).

Semi-structuré

JSON

Avro

Comprend la détection et le traitement automatiques des fichiers Avro compressés.

ORC

Comprend la détection et le traitement automatiques des fichiers ORC compressés.

Parquet

Comprend la détection et le traitement automatiques des fichiers Parquet compressés. . . Actuellement, Snowflake prend en charge le schéma des fichiers Parquet produits à l’aide du générateur Parquet v1. Les fichiers produits en utilisant la v2 du générateur ne sont pas pris en charge.

XML

Pris en charge en tant que fonctionnalité préliminaire.

Les options de format de fichier spécifient le type de données contenues dans un fichier, ainsi que d’autres caractéristiques relatives au format des données. Les options de format de fichier que vous pouvez spécifier sont différentes selon le type de données que vous chargez. Snowflake fournit un ensemble complet d’options de format de fichier par défaut.

Formats de fichiers semi-structurés

Snowflake prend en charge nativement les données semi-structurées, ce qui signifie que les données semi-structurées peuvent être chargées dans des tables relationnelles sans nécessiter la définition préalable d’un schéma. Snowflake prend en charge le chargement de données semi-structurées directement dans des colonnes de type VARIANT (voir Types de données semi-structurées pour plus de détails).

Les formats de données semi-structurées actuellement pris en charge sont les suivants : JSON, Avro, ORC, Parquet ou XML :

  • Pour les données JSON, Avro, ORC et Parquet, chaque objet complet de niveau supérieur est chargé comme une ligne séparée dans la table. Chaque objet peut contenir des caractères de nouvelle ligne et des espaces tant que l’objet reste valide.

  • Pour les données XML, chaque élément de niveau supérieur est chargé comme une ligne séparée dans la table. Un élément est identifié par une balise de début et de fin du même nom.

Généralement, les tables utilisées pour stocker les données semi-structurées sont constituées d’une seule colonne VARIANT. Une fois les données chargées, vous pouvez interroger les données comme des données structurées. Vous pouvez également exécuter d’autres tâches, telles que l’extraction des valeurs et des objets issus de tableaux. Pour plus d’informations, voir la fonctionnalité de table FLATTEN.

Note

Les données semi-structurées peuvent être chargées dans des tables à colonnes multiples, mais les données semi-structurées doivent être stockées sous forme de champs dans un fichier structuré (par ex. un fichier CSV). Ensuite, les données peuvent être chargées dans une colonne spécifiée dans la table.

Formats de fichiers nommés

Snowflake prend en charge la création de formats de fichier nommé qui sont des objets de base de données encapsulant toutes les informations de format requises. Les formats de fichier nommé peuvent ensuite être utilisés comme entrée aux mêmes endroits où vous pouvez spécifier des options de format de fichier individuelles, aidant ainsi à simplifier le processus de chargement de données pour des données formatées de façon similaire.

Les formats de fichiers nommés sont facultatifs, mais sont recommandés lorsque vous prévoyez de charger régulièrement des données au format similaire.

Création d’un format de fichier nommé

Vous pouvez créer un format de fichier en utilisant l’interface Web ou SQL :

Snowsight:
  1. Sélectionnez Data » Databases.

  2. Localisez une base de données et sélectionnez le schéma auquel vous souhaitez ajouter le format de fichier.

  3. Sélectionnez Create » File Format.

  4. Complétez l’instruction SQL et sélectionnez Create File Format.

Classic Console:
  1. Sélectionnez Databases Onglet Bases de données » <nom_bd> » File Formats.

  2. Sélectionnez Create… et répondez aux invitations de la boîte de dialogue.

SQL:

CREATE FILE FORMAT

Pour obtenir des descriptions de toutes les options de format de fichier et des valeurs par défaut, voir CREATE FILE FORMAT.

Options de copie prises en charge

Les options de copie déterminent le comportement d’un chargement de données en ce qui concerne la gestion des erreurs, la taille maximale des données, etc.

Pour obtenir une description de toutes les options de copie et des valeurs par défaut, voir COPY INTO <table>.

Remplacement des options de format de fichier et de copie par défaut

Vous pouvez spécifier le comportement de chargement souhaité (c’est-à-dire remplacer les paramètres par défaut) dans l’un des emplacements suivants :

Dans la définition de la table:

Non recommandé.

Dans la définition de la zone de préparation nommée:

Non recommandé.

Directement dans l’instruction COPY INTO TABLE lors du chargement de données:

Définissez explicitement les options séparément. Pour plus d’informations, voir COPY INTO <table>.

Note

Ne spécifiez pas d’options de copie à l’aide des commandes CREATE STAGE, ALTER STAGE, CREATE TABLE ou ALTER TABLE. Nous vous recommandons d’utiliser la commande COPY INTO <table> pour spécifier les options de copie.

Si les options de format ou de copie de fichier sont spécifiées à plusieurs endroits, l’opération de chargement les applique avec l’ordre de préséance suivant :

  1. Instruction COPY INTO TABLE.

  2. Définition de la zone de préparation.

  3. Définition de la table.

Note

Notez que les options de format de fichier définies à plusieurs emplacements ne s’additionnent pas. Toutes les options définies à un endroit remplacent toutes les options (qu’elles soient identiques ou différentes) définies plus bas dans la hiérarchie.

Les options de copie définies dans plusieurs emplacements s’additionnent. Les options individuelles définies à un endroit remplacent les mêmes options définies plus bas dans l’ordre de priorité.