Catégories :

Chargement et déchargement des données DDL

CREATE STAGE

Crée une nouvelle zone de préparation interne ou externe nommée à utiliser pour charger les données des fichiers dans des tables Snowflake et pour décharger les données des tables dans des fichiers :

Zone de préparation interne

Stocke les fichiers de données en interne dans Snowflake. Les zones de préparation internes peuvent être permanentes ou temporaires. Pour plus de détails, voir Choix d’une zone de préparation interne pour les fichiers locaux.

Zone de préparation externe

Fait référence à des fichiers de données stockés dans un emplacement à l’extérieur de Snowflake. Actuellement, les services de stockage Cloud suivants sont pris en charge :

  • Compartiments Amazon S3

  • Compartiments Google Cloud Storage

  • Conteneurs Microsoft Azure

L’emplacement de stockage peut être privé/protégé ou public.

Vous ne pouvez pas accéder aux données conservées dans les classes de stockage dans le Cloud d’archives qui doivent être restaurées avant de pouvoir être récupérées. Ces classes de stockage d’archives comprennent, par exemple, la classe de stockage Amazon S3 Glacier Flexible Retrieval ou Glacier Deep Archive, ou Microsoft Azure Archive Storage.

Une zone de préparation interne ou externe peut inclure une table de répertoire. Les tables de répertoires stockent un catalogue de fichiers en zone de préparation dans un stockage dans le Cloud.

Voir aussi :

DROP STAGE , ALTER STAGE , SHOW STAGES , DESCRIBE STAGE

PUT , COPY INTO <table>

COPY INTO <emplacement> , GET

Dans ce chapitre :

Syntaxe

-- Internal stage
CREATE [ OR REPLACE ] [ TEMPORARY ] STAGE [ IF NOT EXISTS ] <internal_stage_name>
    internalStageParams
    directoryTableParams
  [ FILE_FORMAT = ( { FORMAT_NAME = '<file_format_name>' | TYPE = { CSV | JSON | AVRO | ORC | PARQUET | XML } [ formatTypeOptions ] } ) ]
  [ COPY_OPTIONS = ( copyOptions ) ]
  [ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' , ... ] ) ]
  [ COMMENT = '<string_literal>' ]

-- External stage
CREATE [ OR REPLACE ] [ TEMPORARY ] STAGE [ IF NOT EXISTS ] <external_stage_name>
    externalStageParams
    directoryTableParams
  [ FILE_FORMAT = ( { FORMAT_NAME = '<file_format_name>' | TYPE = { CSV | JSON | AVRO | ORC | PARQUET | XML } [ formatTypeOptions ] } ) ]
  [ COPY_OPTIONS = ( copyOptions ) ]
  [ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' , ... ] ) ]
  [ COMMENT = '<string_literal>' ]

Où :

internalStageParams ::=
  [ ENCRYPTION = (TYPE = 'SNOWFLAKE_FULL' | TYPE = 'SNOWFLAKE_SSE') ]
externalStageParams (for Amazon S3) ::=
  URL = { 's3://<bucket>[/<path>/]' | 's3gov://<bucket>[/<path>/]' }

  [ { STORAGE_INTEGRATION = <integration_name> } | { CREDENTIALS = ( {  { AWS_KEY_ID = '<string>' AWS_SECRET_KEY = '<string>' [ AWS_TOKEN = '<string>' ] } | AWS_ROLE = '<string>'  } ) ) } ]
  [ ENCRYPTION = ( [ TYPE = 'AWS_CSE' ] [ MASTER_KEY = '<string>' ] |
                   [ TYPE = 'AWS_SSE_S3' ] |
                   [ TYPE = 'AWS_SSE_KMS' [ KMS_KEY_ID = '<string>' ] ] |
                   [ TYPE = 'NONE' ] ) ]
externalStageParams (for Google Cloud Storage) ::=
  URL = 'gcs://<bucket>[/<path>/]'
  [ STORAGE_INTEGRATION = <integration_name> ]
  [ ENCRYPTION = ( [ TYPE = 'GCS_SSE_KMS' ] [ KMS_KEY_ID = '<string>' ] | [ TYPE = 'NONE' ] ) ]
externalStageParams (for Microsoft Azure) ::=
  URL = 'azure://<account>.blob.core.windows.net/<container>[/<path>/]'
  [ { STORAGE_INTEGRATION = <integration_name> } | { CREDENTIALS = ( [ AZURE_SAS_TOKEN = '<string>' ] ) } ]
   [ ENCRYPTION = ( [ TYPE = 'AZURE_CSE' ] [ MASTER_KEY = '<string>' ] | [ TYPE = 'NONE' ] ) ]
directoryTableParams (for internal stages) ::=
  [ DIRECTORY = ( ENABLE = { TRUE | FALSE }
                  [ REFRESH_ON_CREATE =  { TRUE | FALSE } ] ) ]
directoryTableParams (for Amazon S3) ::=
  [ DIRECTORY = ( ENABLE = { TRUE | FALSE }
                  [ REFRESH_ON_CREATE =  { TRUE | FALSE } ]
                  [ AUTO_REFRESH = { TRUE | FALSE } ] ) ]
directoryTableParams (for Google Cloud Storage) ::=
  [ DIRECTORY = ( ENABLE = { TRUE | FALSE }
                  [ AUTO_REFRESH = { TRUE | FALSE } ]
                  [ REFRESH_ON_CREATE =  { TRUE | FALSE } ]
                  [ NOTIFICATION_INTEGRATION = '<notification_integration_name>' ] ) ]
directoryTableParams (for Microsoft Azure) ::=
  [ DIRECTORY = ( ENABLE = { TRUE | FALSE }
                  [ REFRESH_ON_CREATE =  { TRUE | FALSE } ]
                  [ AUTO_REFRESH = { TRUE | FALSE } ]
                  [ NOTIFICATION_INTEGRATION = '<notification_integration_name>' ] ) ]
formatTypeOptions ::=
-- If TYPE = CSV
     COMPRESSION = AUTO | GZIP | BZ2 | BROTLI | ZSTD | DEFLATE | RAW_DEFLATE | NONE
     RECORD_DELIMITER = '<character>' | NONE
     FIELD_DELIMITER = '<character>' | NONE
     FILE_EXTENSION = '<string>'
     SKIP_HEADER = <integer>
     SKIP_BLANK_LINES = TRUE | FALSE
     DATE_FORMAT = '<string>' | AUTO
     TIME_FORMAT = '<string>' | AUTO
     TIMESTAMP_FORMAT = '<string>' | AUTO
     BINARY_FORMAT = HEX | BASE64 | UTF8
     ESCAPE = '<character>' | NONE
     ESCAPE_UNENCLOSED_FIELD = '<character>' | NONE
     TRIM_SPACE = TRUE | FALSE
     FIELD_OPTIONALLY_ENCLOSED_BY = '<character>' | NONE
     NULL_IF = ( '<string>' [ , '<string>' ... ] )
     ERROR_ON_COLUMN_COUNT_MISMATCH = TRUE | FALSE
     REPLACE_INVALID_CHARACTERS = TRUE | FALSE
     EMPTY_FIELD_AS_NULL = TRUE | FALSE
     SKIP_BYTE_ORDER_MARK = TRUE | FALSE
     ENCODING = '<string>' | UTF8
-- If TYPE = JSON
     COMPRESSION = AUTO | GZIP | BZ2 | BROTLI | ZSTD | DEFLATE | RAW_DEFLATE | NONE
     DATE_FORMAT = '<string>' | AUTO
     TIME_FORMAT = '<string>' | AUTO
     TIMESTAMP_FORMAT = '<string>' | AUTO
     BINARY_FORMAT = HEX | BASE64 | UTF8
     TRIM_SPACE = TRUE | FALSE
     NULL_IF = ( '<string>' [ , '<string>' ... ] )
     FILE_EXTENSION = '<string>'
     ENABLE_OCTAL = TRUE | FALSE
     ALLOW_DUPLICATE = TRUE | FALSE
     STRIP_OUTER_ARRAY = TRUE | FALSE
     STRIP_NULL_VALUES = TRUE | FALSE
     REPLACE_INVALID_CHARACTERS = TRUE | FALSE
     IGNORE_UTF8_ERRORS = TRUE | FALSE
     SKIP_BYTE_ORDER_MARK = TRUE | FALSE
-- If TYPE = AVRO
     COMPRESSION = AUTO | GZIP | BROTLI | ZSTD | DEFLATE | RAW_DEFLATE | NONE
     TRIM_SPACE = TRUE | FALSE
     NULL_IF = ( '<string>' [ , '<string>' ... ] )
-- If TYPE = ORC
     TRIM_SPACE = TRUE | FALSE
     NULL_IF = ( '<string>' [ , '<string>' ... ] )
-- If TYPE = PARQUET
     COMPRESSION = AUTO | LZO | SNAPPY | NONE
     SNAPPY_COMPRESSION = TRUE | FALSE
     BINARY_AS_TEXT = TRUE | FALSE
     TRIM_SPACE = TRUE | FALSE
     NULL_IF = ( '<string>' [ , '<string>' ... ] )
-- If TYPE = XML
     COMPRESSION = AUTO | GZIP | BZ2 | BROTLI | ZSTD | DEFLATE | RAW_DEFLATE | NONE
     IGNORE_UTF8_ERRORS = TRUE | FALSE
     PRESERVE_SPACE = TRUE | FALSE
     STRIP_OUTER_ELEMENT = TRUE | FALSE
     DISABLE_SNOWFLAKE_DATA = TRUE | FALSE
     DISABLE_AUTO_CONVERT = TRUE | FALSE
     SKIP_BYTE_ORDER_MARK = TRUE | FALSE
copyOptions ::=
     ON_ERROR = { CONTINUE | SKIP_FILE | SKIP_FILE_<num> | 'SKIP_FILE_<num>%' | ABORT_STATEMENT }
     SIZE_LIMIT = <num>
     PURGE = TRUE | FALSE
     RETURN_FAILED_ONLY = TRUE | FALSE
     MATCH_BY_COLUMN_NAME = CASE_SENSITIVE | CASE_INSENSITIVE | NONE
     ENFORCE_LENGTH = TRUE | FALSE
     TRUNCATECOLUMNS = TRUE | FALSE
     FORCE = TRUE | FALSE

Paramètres requis

internal_stage_name ou . external_stage_name

Indique l’identificateur de la zone de préparation ; doit être unique pour le schéma dans lequel la zone de préparation est créée.

De plus, l’identificateur doit commencer par un caractère alphabétique et ne peut pas contenir d’espaces ou de caractères spéciaux à moins que toute la chaîne d’identificateur soit délimitée par des guillemets doubles (p. ex. "My object"). Les identificateurs entre guillemets doubles sont également sensibles à la casse.

Pour plus de détails, voir Exigences relatives à l’identificateur.

Note

Lors de la création d’une zone de préparation externe, une URL est également requise. Pour plus de détails, voir Paramètres de zone de préparation externe (dans ce chapitre).

Si une URL n’est pas spécifiée, Snowflake crée une zone de préparation interne par défaut.

Paramètres facultatifs

TEMPORARY

Spécifie que la zone de préparation créée est temporaire et sera détruite à la fin de la session dans laquelle elle a été créée. Remarque :

  • Lorsqu’une zone de préparation externe est détruite, seule la zone de préparation elle-même est détruite ; les fichiers de données ne sont pas supprimés.

  • Lorsqu’une zone de préparation temporaire interne est détruite, tous les fichiers de la zone de préparation sont purgés de Snowflake, quel que soit leur statut de chargement. Ceci empêche les fichiers préparés temporairement en interne d’utiliser le stockage de données et, par conséquent, d’accumuler des frais de stockage. Cependant, cela signifie également que les fichiers préparés ne peuvent pas être récupérés par Snowflake une fois que la zone de préparation est détruite.

    Astuce

    Si vous prévoyez de créer et d’utiliser des zones de préparation internes temporaires, vous devriez conserver des copies de vos fichiers de données à l’extérieur de Snowflake.

FILE_FORMAT = ( FORMAT_NAME = 'file_format_name' ) ou . FILE_FORMAT = ( TYPE = CSV | JSON | AVRO | ORC | PARQUET | XML [ ... ] )

Spécifie le format de fichier pour la zone de préparation, qui peut être, au choix :

FORMAT_NAME = 'file_format_name'

Spécifie un format de fichier nommé existant à utiliser pour la zone de préparation. Le format de fichier nommé détermine le type de format (CSV, JSON, etc.), ainsi que toute autre option de format, pour les fichiers de données chargés en utilisant cette zone de préparation. Pour plus de détails, voir CREATE FILE FORMAT.

TYPE = CSV | JSON | AVRO | ORC | PARQUET | XML [ ... ]

Spécifie le type de fichiers pour la zone de préparation :

  • Le chargement des données d’une zone de préparation (à l’aide de COPY INTO <table>) accepte tous les types de formats pris en charge.

  • Le déchargement des données dans une zone de préparation (à l’aide de COPY INTO <emplacement>) accepte les formats CSV, JSON ou PARQUET.

Si un type de format de fichier est spécifié, des options supplémentaires spécifiques au format peuvent être spécifiées. Pour plus de détails, voir Options de type de format (formatTypeOptions) (dans ce chapitre).

Par défaut : TYPE = CSV

Note

FORMAT_NAME et TYPE s’excluent mutuellement ; vous ne pouvez spécifier que l’un ou l’autre pour une zone de préparation.

COPY_OPTIONS = ( ... )

Spécifie une (ou plusieurs) options de copie pour la zone de préparation. Pour plus de détails, voir Options de copie (copyOptions) (dans ce chapitre).

TAG tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ]

Spécifie le nom de la balise et la valeur de la chaîne de la balise.

La valeur de la balise est toujours une chaîne de caractères et le nombre maximum de caractères pour la valeur de la balise est 256.

Pour plus de détails sur la spécification des balises dans une instruction, voir Quotas de balises pour les objets et les colonnes.

COMMENT = 'string_literal'

Spécifie un commentaire pour la zone de préparation.

Par défaut : aucune valeur

Paramètres de zone de préparation interne (internalStageParams)

[ ENCRYPTION = (TYPE = 'SNOWFLAKE_FULL' | TYPE = 'SNOWFLAKE_SSE') ]

Spécifie le type de chiffrement pris en charge pour tous les fichiers stockés dans la zone de préparation.

TYPE = ...

Indique le type de chiffrement utilisé. Les valeurs possibles sont les suivantes :

  • SNOWFLAKE_FULL : chiffrement côté client. Les fichiers sont chiffrés par un client lorsqu’il les charge sur la zone de préparation interne en utilisant PUT.

  • SNOWFLAKE_SSE : chiffrement côté serveur. Les fichiers sont chiffrés lorsqu’ils arrivent sur la zone de préparation.

    Spécifiez le chiffrement côté serveur si vous prévoyez d’interroger des URLs pré-signées pour vos fichiers en zone de préparation. Pour plus d’informations, voir Types d’URLs disponibles pour accéder aux fichiers.

Par défaut : SNOWFLAKE_FULL

Paramètres de zone de préparation externe (externalStageParams)

URL = 'cloud_specific_url'

Si ce paramètre est omis, Snowflake crée une zone de préparation interne

Important

  • Placez l’URL entre guillemets simples ('') afin que Snowflake puisse identifier la chaîne. Si les guillemets sont omis, les informations d’identification que vous fournissez peuvent être affichées en texte brut dans l’historique. Nous vous recommandons vivement de vérifier la syntaxe de l’instruction CREATE STAGE avant de l’exécuter.

    Lorsque vous créez une zone de préparation dans l’interface Web de Snowflake, l’interface inclut automatiquement des valeurs de champ entre guillemets, le cas échéant.

  • Ajoutez une barre oblique (/) à l’URL pour filtrer le chemin du dossier spécifié. Si la barre oblique est omise, tous les fichiers et dossiers commençant par le préfixe du chemin spécifié sont inclus.

    Notez que la barre oblique est nécessaire pour accéder aux fichiers de données non structurées et les récupérer dans la zone de préparation.

Amazon S3

URL = { 's3://{bucket}[/{path}/]' | 's3gov://{bucket}[/{path}/]' }

Spécifie l’URL de l’emplacement externe (compartiment S3 existant) utilisé pour stocker les fichiers de données pour le chargement/déchargement, où :

  • Le préfixe s3 fait référence au stockage S3 dans les régions publiques AWS.

    Le préfixe s3gov fait référence au stockage S3 dans les régions gouvernementales. Notez qu’actuellement, l’accès au stockage S3 dans les régions gouvernementales AWS à l’aide d’une intégration de stockage est limité aux comptes Snowflake hébergés sur AWS dans la même région gouvernementale. L’accès à votre stockage S3 à partir d’un compte hébergé en dehors de la région gouvernementale à l’aide d’identifiants directs est pris en charge.

  • bucket est le nom du compartiment S3.

  • path est un chemin facultatif respectant la casse pour les fichiers dans l’emplacement de stockage Cloud (c’est-à-dire que les fichiers ont des noms qui commencent par une chaîne en commun) qui limite l’ensemble de fichiers. Les chemins sont appelés préfixes ou dossiers selon les services de stockage Cloud.

Google Cloud Storage

URL = 'gcs://bucket[/path/]'

Spécifie l’URL de l’emplacement externe (compartiment GCS existant) utilisé pour stocker les fichiers de données pour le chargement/déchargement, où :

  • bucket est le nom du compartiment GCS.

  • path est un chemin facultatif respectant la casse pour les fichiers dans l’emplacement de stockage Cloud (c’est-à-dire que les fichiers ont des noms qui commencent par une chaîne en commun) qui limite l’ensemble de fichiers. Les chemins sont appelés préfixes ou dossiers selon les services de stockage Cloud.

Microsoft Azure

URL = 'azure://account.blob.core.windows.net/container[/path/]'

Spécifie l’URL de l’emplacement externe (conteneur Azure existant) utilisé pour stocker les fichiers de données pour le chargement, où :

  • account est le nom du compte Azure (par ex. myaccount). Utilisez le point de terminaison blob.core.windows.net pour tous les types de comptes de stockage Azure Blob pris en charge, dont Data Lake Storage Gen2.

    Notez qu’actuellement, l’accès au stockage Azure blob dans les régions gouvernementales à l’aide d’une intégration de stockage est limité aux comptes Snowflake hébergés sur dans la même région gouvernementale. L’accès à votre stockage blob à partir d’un compte hébergé en dehors de la région gouvernementale à l’aide d’identifiants directs est pris en charge.

  • container est le nom du conteneur Azure (par ex. mycontainer).

  • path est un chemin facultatif respectant la casse pour les fichiers dans l’emplacement de stockage Cloud (c’est-à-dire que les fichiers ont des noms qui commencent par une chaîne en commun) qui limite l’ensemble de fichiers. Les chemins sont appelés préfixes ou dossiers selon les services de stockage Cloud.

Par défaut : aucune valeur (une zone de préparation interne est créée)

STORAGE_INTEGRATION = integration_name ou . CREDENTIALS = ( cloud_specific_credentials )

Requis uniquement si l’emplacement de stockage est privé/protégé ; non requis pour les compartiments/conteneurs publics

Amazon S3

STORAGE_INTEGRATION = integration_name

Spécifie le nom de l’intégration de stockage utilisée pour déléguer la responsabilité de l’authentification pour le stockage en Cloud externe à une entité Gestion des identités et des accès Snowflake (IAM). Pour plus de détails, voir CREATE STORAGE INTEGRATION.

Note

  • Nous recommandons fortement l’utilisation d’intégrations de stockage. Cette option évite d’avoir à fournir des informations d’identification de stockage Cloud à l’aide du paramètre CREDENTIALS lors de la création de zones de préparation ou du chargement de données.

  • L’accès au stockage S3 dans les régions gouvernementales à l’aide d’une intégration de stockage est limité aux comptes Snowflake hébergés sur AWS dans la même région gouvernementale. L’accès à votre stockage S3 à partir d’un compte hébergé en dehors de la région gouvernementale à l’aide d’identifiants directs est pris en charge.

CREDENTIALS = ( AWS_KEY_ID = 'string' AWS_SECRET_KEY = 'string' [ AWS_TOKEN = 'string' ] ) ou . CREDENTIALS = ( AWS_ROLE = 'string' )

Spécifie les identifiants de connexion de sécurité pour se connecter à AWS et accéder au compartiment S3 privé/protégé dans lequel les fichiers à charger/décharger sont mis en zone de préparation. Pour plus d’informations, voir Configuration de l’accès sécurisé à Amazon S3.

Les informations d’identification que vous spécifiez varient selon que vous avez associé les autorisations d’accès Snowflake au compartiment à un utilisateur AWS IAM (Identity & Access Management) ou à un rôle :

  • Utilisateur IAM : les informations d’identification IAM sont requises. Les informations d’identification temporaires (alias « étendues ») sont générées par le service d’émission de jeton de sécurité AWS (STS) et se composent de trois éléments :

    • AWS_KEY_ID

    • AWS_SECRET_KEY

    • AWS_TOKEN

    Tous les trois sont nécessaires pour accéder à un compartiment privé/protégé. Au bout d’un certain temps, les informations d’identification temporaires expirent et ne peuvent plus être utilisées. Vous devez ensuite générer un nouvel ensemble d’informations d’identification temporaires valides.

    Important

    La commande COPY permet également d’utiliser des informations d’identification permanentes (alias « à long terme ») ; cependant, pour des raisons de sécurité, Snowflake vous déconseille de les utiliser. Si vous devez utiliser des identifiants permanents, Snowflake recommande de générer périodiquement de nouveaux identifiants permanents pour des zones de préparation externes.

  • Rôle IAM : n’indiquez pas d’identifiants de sécurité et de clés d’accès et, à la place, identifiez le rôle en utilisant AWS_ROLE et spécifiez le rôle AWS ARN (Amazon Resource Name).

Google Cloud Storage

STORAGE_INTEGRATION = integration_name

Spécifie le nom de l’intégration de stockage utilisée pour déléguer la responsabilité de l’authentification pour le stockage en Cloud externe à une entité Gestion des identités et des accès Snowflake (IAM). Pour plus de détails, voir CREATE STORAGE INTEGRATION.

Microsoft Azure

STORAGE_INTEGRATION = integration_name

Spécifie le nom de l’intégration de stockage utilisée pour déléguer la responsabilité de l’authentification pour le stockage en Cloud externe à une entité Gestion des identités et des accès Snowflake (IAM). Pour plus de détails, voir CREATE STORAGE INTEGRATION.

Note

  • Nous recommandons fortement l’utilisation d’intégrations de stockage. Cette option évite d’avoir à fournir des informations d’identification de stockage Cloud à l’aide du paramètre CREDENTIALS lors de la création de zones de préparation ou du chargement de données.

  • L’accès au stockage Azure blob dans les régions gouvernementales à l’aide d’une intégration de stockage est limité aux comptes Snowflake hébergés sur dans la même région gouvernementale. L’accès à votre stockage blob à partir d’un compte hébergé en dehors de la région gouvernementale à l’aide d’identifiants directs est pris en charge.

CREDENTIALS = ( AZURE_SAS_TOKEN = 'string' )

Spécifie la signature d’accès partagé (SAS) pour se connecter à Azure et accéder au conteneur privé/protégé dans lequel les fichiers contenant des données chargées sont mis en zone de préparation. Les informations d’identification sont générées par Azure.

Par défaut : aucune valeur (aucune information d’identification n’est fournie pour la zone de préparation externe)

ENCRYPTION = ( cloud_specific_encryption )

Nécessaire uniquement pour le chargement/déchargement dans des fichiers chiffrés ; inutile si l’emplacement de stockage et les fichiers ne sont pas chiffrés

Chargement des données

Modifie les paramètres de chiffrement utilisés pour décoder des fichiers chiffrés dans l’emplacement de stockage et extraire les données.

Déchargement des données

Spécifie les paramètres de chiffrement utilisés pour chiffrer les fichiers déchargés dans l’emplacement de stockage.

Amazon S3

ENCRYPTION = ( [ TYPE = 'AWS_CSE' ] [ MASTER_KEY = '<string>' ] | [ TYPE = 'AWS_SSE_S3' ] | [ TYPE = 'AWS_SSE_KMS' [ KMS_KEY_ID = '<string>' ] ] | [ TYPE = 'NONE' ] )

TYPE = ...

Indique le type de chiffrement utilisé. Les valeurs possibles sont les suivantes :

  • AWS_CSE : chiffrement côté client (nécessite une valeur MASTER_KEY). Actuellement, la clé maître côté client que vous fournissez ne peut être qu’une clé symétrique. Notez que, lorsqu’une valeur MASTER_KEY est fournie, Snowflake part du principe que TYPE = AWS_CSE (plus précisément, lorsqu’une valeur MASTER_KEY est fournie, TYPE n’est pas nécessaire).

  • AWS_SSE_S3 : chiffrement côté serveur qui ne nécessite aucun paramètre de chiffrement supplémentaire.

  • AWS_SSE_KMS : chiffrement côté serveur qui accepte une valeur KMS_KEY_ID facultative.

Pour plus d’informations sur les types de chiffrement, voir la documentation AWS pour le chiffrement côté client ou le chiffrement côté serveur.

  • NONE : pas de chiffrement.

MASTER_KEY = 'string' (s’applique uniquement au chiffrement AWS_CSE)

Spécifie la clé maître côté client qui a été utilisée pour chiffrer les fichiers dans le compartiment. La clé maître doit être une clé de 128 ou 256 bits codée au format Base64.

KMS_KEY_ID = 'string' (s’applique uniquement au chiffrement AWS_SSE_KMS)

Spécifie éventuellement l’ID de la clé AWS gérée par KMS qui est utilisée pour chiffrer les fichiers déchargés dans le compartiment. Si aucune valeur n’est fournie, l’ID de votre clé KMS par défaut est utilisé pour chiffrer les fichiers au déchargement.

Notez que cette valeur est ignorée pour le chargement des données.

Google Cloud Storage

ENCRYPTION = ( [ TYPE = 'GCS_SSE_KMS' | 'NONE' ] [ KMS_KEY_ID = 'string' ] )

TYPE = ...

Indique le type de chiffrement utilisé. Les valeurs possibles sont les suivantes :

KMS_KEY_ID = 'string' (s’applique uniquement au chiffrement GCS_SSE_KMS)

Spécifie éventuellement l’ID de la clé gérée par Cloud KMS qui est utilisée pour chiffrer les fichiers déchargés dans le compartiment. Si aucune valeur n’est fournie, l’ID de votre clé KMS par défaut est utilisé pour chiffrer les fichiers au déchargement.

Notez que cette valeur est ignorée pour le chargement des données. L’opération de chargement doit réussir si le compte de service dispose des autorisations suffisantes pour déchiffrer les données dans le compartiment.

Microsoft Azure

ENCRYPTION = ( [ TYPE = 'AZURE_CSE' | 'NONE' ] [ MASTER_KEY = 'string' ] )

TYPE = ...

Indique le type de chiffrement utilisé. Les valeurs possibles sont les suivantes :

  • AZURE_CSE : chiffrement côté client (nécessite une valeur MASTER_KEY). Pour plus d’informations, voir les informations de chiffrement côté client dans la documentation Microsoft Azure.

  • NONE : pas de chiffrement.

MASTER_KEY = 'string' (s’applique uniquement au chiffrement AZURE_CSE)

Spécifie la clé maître côté client utilisée pour chiffrer ou déchiffrer les fichiers. La clé maître doit être une clé de 128 ou 256 bits codée au format Base64.

Paramètres de la table de répertoire (directoryTableParams)

ENABLE = TRUE | FALSE

Spécifie s’il faut ajouter une table de répertoire à la zone de préparation. Lorsque la valeur est TRUE, une table de répertoire est créée avec la zone de préparation.

Par défaut : FALSE

Zones de préparation externes

Amazon S3

REFRESH_ON_CREATE = TRUE | FALSE

Spécifie s’il faut actualiser automatiquement les métadonnées de la table de répertoire une fois, immédiatement après la création de la zone de préparation. L’actualisation des métadonnées de la table de répertoire synchronise les métadonnées avec la liste actuelle des fichiers de données dans le chemin de zone de préparation spécifié. Cette action est requise pour que les métadonnées enregistrent tout fichier de données existant dans la zone de préparation nommée spécifiée dans le paramètre URL =.

TRUE

Snowflake actualise automatiquement les métadonnées de la table de répertoire une fois, après la création de la zone de préparation.

Note

Si l’URL de stockage Cloud spécifié contient près d’un million de fichiers ou plus, nous vous recommandons de définir REFRESH_ON_CREATE = FALSE. Après avoir créé la zone de préparation, actualisez les métadonnées de la table de répertoire de manière incrémentielle en exécutant les instructions ALTER STAGE … REFRESH qui spécifient des sous-chemins dans l’emplacement de stockage (c’est-à-dire des sous-ensembles de fichiers à inclure dans l’actualisation) jusqu’à ce que les métadonnées incluent tous les fichiers de l’emplacement.

FALSE

Snowflake n’actualise pas automatiquement les métadonnées de la table de répertoire. Pour enregistrer des fichiers de données qui existent dans la zone de préparation, vous devez actualiser manuellement les métadonnées de la table de répertoire une fois à l’aide de ALTER STAGE … REFRESH.

Par défaut : TRUE

AUTO_REFRESH = TRUE | FALSE

Spécifie si Snowflake doit activer le déclenchement des actualisations automatiques des métadonnées de la table de répertoire lorsque de nouveaux fichiers de données ou des fichiers de données mis à jour sont disponibles dans la zone de préparation externe nommée spécifiée dans le paramètre [ WITH ] LOCATION =.

TRUE

Snowflake permet de déclencher des actualisations automatiques des métadonnées de la table de répertoire.

FALSE

Snowflake n’active pas le déclenchement d’actualisations automatiques des métadonnées de la table de répertoire. Vous devez actualiser manuellement les métadonnées de la table de répertoire de façon périodique avec ALTER STAGE … REFRESH pour synchroniser les métadonnées avec la liste actuelle des fichiers dans le chemin de la zone de préparation.

Par défaut : FALSE

Google Cloud Storage

REFRESH_ON_CREATE = TRUE | FALSE

Spécifie s’il faut actualiser automatiquement les métadonnées de la table de répertoire une fois, immédiatement après la création de la zone de préparation. L’actualisation des métadonnées de la table de répertoire synchronise les métadonnées avec la liste actuelle des fichiers de données dans le chemin de zone de préparation spécifié. Cette action est requise pour que les métadonnées enregistrent tout fichier de données existant dans la zone de préparation nommée spécifiée dans le paramètre URL =.

TRUE

Snowflake actualise automatiquement les métadonnées de la table de répertoire une fois, après la création de la zone de préparation.

Note

Si l’URL de stockage Cloud spécifié contient près d’un million de fichiers ou plus, nous vous recommandons de définir REFRESH_ON_CREATE = FALSE. Après avoir créé la zone de préparation, actualisez les métadonnées de la table de répertoire de manière incrémentielle en exécutant les instructions ALTER STAGE … REFRESH qui spécifient des sous-chemins dans l’emplacement de stockage (c’est-à-dire des sous-ensembles de fichiers à inclure dans l’actualisation) jusqu’à ce que les métadonnées incluent tous les fichiers de l’emplacement.

FALSE

Snowflake n’actualise pas automatiquement les métadonnées de la table de répertoire. Pour enregistrer des fichiers de données qui existent dans la zone de préparation, vous devez actualiser manuellement les métadonnées de la table de répertoire une fois à l’aide de ALTER STAGE … REFRESH.

Par défaut : TRUE

AUTO_REFRESH = TRUE | FALSE

Spécifie si Snowflake doit activer le déclenchement des actualisations automatiques des métadonnées de la table de répertoire lorsque de nouveaux fichiers de données ou des fichiers de données mis à jour sont disponibles dans la zone de préparation externe nommée spécifiée dans le paramètre [ WITH ] LOCATION =.

TRUE

Snowflake permet de déclencher des actualisations automatiques des métadonnées de la table de répertoire.

FALSE

Snowflake n’active pas le déclenchement d’actualisations automatiques des métadonnées de la table de répertoire. Vous devez actualiser manuellement les métadonnées de la table de répertoire de façon périodique avec ALTER STAGE … REFRESH pour synchroniser les métadonnées avec la liste actuelle des fichiers dans le chemin de la zone de préparation.

NOTIFICATION_INTEGRATION = '<nom_intégration_notification>'

Spécifie le nom de l’intégration de notification utilisée pour actualiser automatiquement les métadonnées de la table de répertoire à l’aide des notifications GCS Pub/Sub. Une intégration de notification est un objet Snowflake qui fournit une interface entre Snowflake et des services tiers de mise en file d’attente de messages dans le Cloud.

Microsoft Azure

REFRESH_ON_CREATE = TRUE | FALSE

Spécifie s’il faut actualiser automatiquement les métadonnées de la table de répertoire une fois, immédiatement après la création de la zone de préparation. L’actualisation des métadonnées de la table de répertoire synchronise les métadonnées avec la liste actuelle des fichiers de données dans le chemin de zone de préparation spécifié. Cette action est requise pour que les métadonnées enregistrent tout fichier de données existant dans la zone de préparation nommée spécifiée dans le paramètre URL =.

TRUE

Snowflake actualise automatiquement les métadonnées de la table de répertoire une fois, après la création de la zone de préparation.

Note

Si l’URL de stockage Cloud spécifié contient près d’un million de fichiers ou plus, nous vous recommandons de définir REFRESH_ON_CREATE = FALSE. Après avoir créé la zone de préparation, actualisez les métadonnées de la table de répertoire de manière incrémentielle en exécutant les instructions ALTER STAGE … REFRESH qui spécifient des sous-chemins dans l’emplacement de stockage (c’est-à-dire des sous-ensembles de fichiers à inclure dans l’actualisation) jusqu’à ce que les métadonnées incluent tous les fichiers de l’emplacement.

FALSE

Snowflake n’actualise pas automatiquement les métadonnées de la table de répertoire. Pour enregistrer des fichiers de données qui existent dans la zone de préparation, vous devez actualiser manuellement les métadonnées de la table de répertoire une fois à l’aide de ALTER STAGE … REFRESH.

Par défaut : TRUE

AUTO_REFRESH = TRUE | FALSE

Spécifie si Snowflake doit activer le déclenchement des actualisations automatiques des métadonnées de la table de répertoire lorsque de nouveaux fichiers de données ou des fichiers de données mis à jour sont disponibles dans la zone de préparation externe nommée spécifiée dans le paramètre [ WITH ] LOCATION =.

TRUE

Snowflake permet de déclencher des actualisations automatiques des métadonnées de la table de répertoire.

FALSE

Snowflake n’active pas le déclenchement d’actualisations automatiques des métadonnées de la table de répertoire. Vous devez actualiser manuellement les métadonnées de la table de répertoire de façon périodique avec ALTER STAGE … REFRESH pour synchroniser les métadonnées avec la liste actuelle des fichiers dans le chemin de la zone de préparation.

Par défaut : FALSE

NOTIFICATION_INTEGRATION = '<nom_intégration_notification>'

Spécifie le nom de l’intégration de notification utilisée pour actualiser automatiquement les métadonnées de la table de répertoire à l’aide des notifications Azure Event Grid. Une intégration de notification est un objet Snowflake qui fournit une interface entre Snowflake et des services tiers de mise en file d’attente de messages dans le Cloud.

Options de type de format (formatTypeOptions)

En fonction du type de format de fichier spécifié (FILE_FORMAT = ( TYPE = ... )), vous pouvez inclure une ou plusieurs des options suivantes, spécifiques au format (séparées par des espaces, des virgules ou de nouvelles lignes) :

TYPE = CSV

COMPRESSION = AUTO | GZIP | BZ2 | BROTLI | ZSTD | DEFLATE | RAW_DEFLATE | NONE
Utilisation

Chargement de données, déchargement de données et tables externes

Définition
  • Lors du chargement des données, spécifie l’algorithme de compression actuel pour le fichier de données. Snowflake utilise cette option pour détecter comment un fichier de données déjà compressé a été compressé afin que les données compressées dans le fichier puissent être extraites pour le chargement.

  • Lors du déchargement des données, compresse le fichier de données en utilisant l’algorithme de compression spécifié.

Valeurs

Valeurs prises en charge

Remarques

AUTO

Lors du chargement des données, l’algorithme de compression est détecté automatiquement, sauf pour les fichiers compressés par Brotli, qui ne peuvent actuellement pas être détectés automatiquement. Lors du déchargement des données, les fichiers sont automatiquement compressés en utilisant la valeur par défaut, qui est gzip.

GZIP

BZ2

BROTLI

Doit être spécifié lors du chargement/déchargement de fichiers compressés Brotli.

ZSTD

Zstandard v0.8 (et supérieur) est pris en charge.

DEFLATE

Fichiers compressés Deflate (avec en-tête zlib, RFC1950).

RAW_DEFLATE

Fichiers bruts compressés Deflate (sans en-tête, RFC1951).

NONE

Lors du chargement des données, indique que les fichiers n’ont pas été compressés. Lors du déchargement des données, spécifie que les fichiers déchargés ne sont pas compressés.

Par défaut

AUTO

RECORD_DELIMITER = 'character' | NONE
Utilisation

Chargement de données, déchargement de données et tables externes

Définition

Un ou plusieurs caractères à un octet ou à plusieurs octets qui séparent les enregistrements dans un fichier d’entrée (chargement de données) ou un fichier déchargé (déchargement de données). Accepte les séquences d’échappement courantes ou les caractères à un octet ou à plusieurs octets suivants :

Caractères à un octet

Valeurs octales (préfixées par \\) ou les valeurs hexadécimales (préfixées par \x ou 0x). Par exemple, pour les enregistrements délimités par le caractère accent circonflexe (^), spécifiez la valeur octale (\\136) ou hexadécimale (0x5e).

Caractères multi-octets

Valeurs hexagonales (préfixées par \x). Par exemple, pour les enregistrements délimités par le caractère cent (¢), spécifiez la valeur hexadécimale (\xC2\xA2).

Le délimiteur pour RECORD_DELIMITER ou FIELD_DELIMITER ne peut pas être une sous-chaîne du délimiteur pour l’autre option de format de fichier (par exemple FIELD_DELIMITER = 'aa' RECORD_DELIMITER = 'aabb').

Le délimiteur spécifié doit être un caractère UTF-8 valide et non une séquence aléatoire d’octets. Notez également que le délimiteur est limité à un maximum de 20 caractères.

Accepte également une valeur de NONE.

Par défaut
Chargement des données

Caractère de nouvelle ligne. Notez que « nouvelle ligne » fait sens, de sorte que \r\n sera compris comme une nouvelle ligne pour les fichiers sur une plate-forme Windows.

Déchargement des données

Caractère de nouvelle ligne (\n).

FIELD_DELIMITER = 'character' | NONE
Utilisation

Chargement de données, déchargement de données et tables externes

Définition

Un ou plusieurs caractères à un octet ou à plusieurs octets qui séparent les champs d’un fichier d’entrée (chargement de données) ou d’un fichier déchargé (déchargement de données). Accepte les séquences d’échappement courantes ou les caractères à un octet ou à plusieurs octets suivants :

Caractères à un octet

Valeurs octales (préfixées par \\) ou les valeurs hexadécimales (préfixées par \x ou 0x). Par exemple, pour les enregistrements délimités par le caractère accent circonflexe (^), spécifiez la valeur octale (\\136) ou hexadécimale (0x5e).

Caractères multi-octets

Valeurs hexagonales (préfixées par \x). Par exemple, pour les enregistrements délimités par le caractère cent (¢), spécifiez la valeur hexadécimale (\xC2\xA2).

Le délimiteur pour RECORD_DELIMITER ou FIELD_DELIMITER ne peut pas être une sous-chaîne du délimiteur pour l’autre option de format de fichier (par exemple FIELD_DELIMITER = 'aa' RECORD_DELIMITER = 'aabb').

Le délimiteur spécifié doit être un caractère UTF-8 valide et non une séquence aléatoire d’octets. Notez également que le délimiteur est limité à un maximum de 20 caractères.

Accepte également une valeur de NONE.

Par défaut

virgule (,)

FILE_EXTENSION = 'string' | NONE
Utilisation

Déchargement des données uniquement

Définition

Spécifie l’extension des fichiers déchargés dans une zone de préparation. Accepte toute extension. L’utilisateur est chargé de spécifier une extension de fichier qui peut être lue par tout logiciel ou service désiré.

Par défaut

null, ce qui signifie que l’extension du fichier est déterminée par le type de format : .csv[compression], où compression est l’extension ajoutée par la méthode de compression, si COMPRESSION est défini.

Note

Si l’option de copie SINGLE est TRUE, alors la commande COPY décharge un fichier sans extension par défaut. Pour spécifier une extension de fichier, fournissez un nom et une extension de fichier dans le chemin internal_location ou external_location (par ex. copy into @stage/data.csv).

SKIP_HEADER = integer
Utilisation

Chargement de données et tables externes

Définition

Nombre de lignes au début du fichier à ignorer.

Notez que SKIP_HEADER n’utilise pas les valeurs RECORD_DELIMITER ou FIELD_DELIMITER pour déterminer la nature d’une ligne d’en-tête. Au lieu de cela, il ignore simplement le nombre spécifié de lignes délimitées par CRLF (retour chariot, saut de ligne) dans le fichier. RECORD_DELIMITER et FIELD_DELIMITER sont ensuite utilisés pour déterminer les lignes de données à charger.

Par défaut

0

SKIP_BLANK_LINES = TRUE | FALSE
Utilisation

Chargement de données et tables externes

Définition

Booléen qui indique d’ignorer toutes les lignes vides rencontrées dans les fichiers de données ; sinon, les lignes vides produisent une erreur de fin d’enregistrement (comportement par défaut).

Par défaut : FALSE

DATE_FORMAT = 'string' | AUTO
Utilisation

Chargement et déchargement des données

Définition

Définit le format des valeurs de date dans les fichiers de données (chargement des données) ou la table (déchargement des données). Si une valeur n’est pas spécifiée ou est AUTO, la valeur du paramètre DATE_INPUT_FORMAT (chargement de données) ou DATE_OUTPUT_FORMAT (déchargement de données) est utilisée.

Par défaut

AUTO

TIME_FORMAT = 'string' | AUTO
Utilisation

Chargement et déchargement des données

Définition

Définit le format des valeurs temporelles dans les fichiers de données (chargement des données) ou la table (déchargement des données). Si une valeur n’est pas spécifiée ou est AUTO, la valeur du paramètre TIME_INPUT_FORMAT (chargement de données) ou TIME_OUTPUT_FORMAT (déchargement de données) est utilisée.

Par défaut

AUTO

TIMESTAMP_FORMAT = string' | AUTO
Utilisation

Chargement et déchargement des données

Définition

Définit le format des valeurs d’horodatage dans les fichiers de données (chargement des données) ou la table (déchargement des données). Si une valeur n’est pas spécifiée ou est AUTO, la valeur du paramètre TIMESTAMP_INPUT_FORMAT (chargement de données) ou TIMESTAMP_OUTPUT_FORMAT (déchargement de données) est utilisée.

Par défaut

AUTO

BINARY_FORMAT = HEX | BASE64 | UTF8
Utilisation

Chargement et déchargement des données

Définition

Définit le format d’encodage pour l’entrée ou la sortie binaire. L’option peut être utilisée pour charger ou décharger des données à partir de colonnes binaires dans une table.

Par défaut

HEX

ESCAPE = 'character' | NONE
Utilisation

Chargement et déchargement des données

Définition

Chaîne de caractères à un octet utilisée comme caractère d’échappement pour les valeurs de champs délimitées ou non délimitées. Un caractère d’échappement appelle une autre interprétation sur les caractères suivants dans une séquence de caractères. Vous pouvez utiliser le caractère ESCAPE pour interpréter les instances du caractère FIELD_OPTIONALLY_ENCLOSED_BY ou dans les données comme des littéraux.

Accepte les séquences d’échappement, les valeurs octales ou les valeurs hexadécimales courantes.

Chargement des données

Spécifie le caractère d’échappement pour les champs délimités uniquement. Spécifiez le caractère utilisé pour délimiter les champs en définissant FIELD_OPTIONALLY_ENCLOSED_BY.

Note

Cette option de format de fichier ne prend en charge que les caractères à un seul octet. Notez que le codage des caractères UTF-8 représente les caractères ASCII d’ordre supérieur comme des caractères à plusieurs octets. Si votre fichier de données est codé avec le jeu de caractères UTF-8, vous ne pouvez pas spécifier un caractère ASCII d’ordre supérieur comme valeur d’option.

En outre, si vous spécifiez un caractère ASCII d’ordre élevé, nous vous recommandons de définir l’option de format de fichier ENCODING = 'string' comme codage de caractères pour vos fichiers de données afin de garantir la bonne interprétation du caractère.

Déchargement des données

Si cette option est activée, elle remplace le jeu de caractères d’échappement pour ESCAPE_UNENCLOSED_FIELD.

Par défaut

NONE

ESCAPE_UNENCLOSED_FIELD = 'character' | NONE
Utilisation

Chargement de données, déchargement de données et tables externes

Définition

Chaîne de caractères à un octet utilisée comme caractère d’échappement pour les valeurs de champs non délimitées uniquement. Un caractère d’échappement appelle une autre interprétation sur les caractères suivants dans une séquence de caractères. Vous pouvez utiliser le caractère ESCAPE pour interpréter les instances des caractères FIELD_DELIMITER ou RECORD_DELIMITER dans les données comme des littéraux. Le caractère d’échappement peut également être utilisé pour échapper les instances de lui-même dans les données.

Accepte les séquences d’échappement, les valeurs octales ou les valeurs hexadécimales courantes.

Chargement des données

Spécifie le caractère d’échappement pour les champs non délimités uniquement.

Note

  • La valeur par défaut est \\. Si une ligne d’un fichier de données se termine par une barre oblique inverse (\), ce caractère échappe le caractère de nouvelle ligne ou de retour chariot spécifié pour l’option de format de fichier RECORD_DELIMITER. Par conséquent, l’opération de chargement considère cette ligne et la suivante comme une seule ligne de données. Pour éviter ce problème, définissez la valeur sur NONE.

  • Cette option de format de fichier ne prend en charge que les caractères à un seul octet. Notez que le codage des caractères UTF-8 représente les caractères ASCII d’ordre supérieur comme des caractères à plusieurs octets. Si votre fichier de données est codé avec le jeu de caractères UTF-8, vous ne pouvez pas spécifier un caractère ASCII d’ordre supérieur comme valeur d’option.

    En outre, si vous spécifiez un caractère ASCII d’ordre élevé, nous vous recommandons de définir l’option de format de fichier ENCODING = 'string' comme codage de caractères pour vos fichiers de données afin de garantir la bonne interprétation du caractère.

Déchargement des données

Si ESCAPE est défini, le jeu de caractères d’échappement pour cette option de format de fichier l’emporte sur cette option.

Par défaut

barre oblique inverse (\\)

TRIM_SPACE = TRUE | FALSE
Utilisation

Chargement de données et tables externes

Définition

Booléen qui spécifie s’il faut supprimer les espaces blancs des champs.

Par exemple, si votre logiciel de base de données externe contient des champs entre guillemets, mais insère un espace d’en-tête, Snowflake lit l’espace d’en-tête plutôt que le caractère guillemet comme début du champ (c’est-à-dire que les guillemets sont interprétés comme faisant partie de la chaîne des données du champ). Définissez cette option sur TRUE pour supprimer les espaces indésirables pendant le chargement des données.

Comme autre exemple, si les espaces d’en-tête ou de fin entourent des guillemets qui délimitent les chaînes de caractères, vous pouvez supprimer les espaces environnants en utilisant cette option et le caractère guillemet en utilisant l’option FIELD_OPTIONALLY_ENCLOSED_BY. Notez que tous les espaces entre les guillemets sont préservés. Par exemple, en supposant que FIELD_DELIMITER = '|' et FIELD_OPTIONALLY_ENCLOSED_BY = '"' :

|"Hello world"|    /* loads as */  >Hello world<
|" Hello world "|  /* loads as */  > Hello world <
| "Hello world" |  /* loads as */  >Hello world<

(les parenthèses dans cet exemple ne sont pas chargées ; elles sont utilisées pour délimiter le début et la fin des chaînes chargées)

Par défaut

FALSE

FIELD_OPTIONALLY_ENCLOSED_BY = 'character' | NONE
Utilisation

Chargement de données, déchargement de données et tables externes

Définition

Caractère utilisé pour délimiter des chaînes. La valeur peut être NONE, un caractère guillemet simple (') ou un caractère guillemet double ("). Pour utiliser le caractère guillemet simple, utilisez la représentation octale ou hexadécimale (0x27) ou le double échappement en guillemet simple ('').

Lorsqu’un champ contient ce caractère, effectuez un échappement en utilisant le même caractère. Par exemple, si la valeur est le caractère de guillemet double et qu’un champ contient la chaîne A "B" C, effectuez un échappement des guillemets doubles comme suit :

A ""B"" C

Par défaut

NONE

NULL_IF = ( 'string1' [ , 'string2' , ... ] )
Utilisation

Chargement de données, déchargement de données et tables externes

Définition

Chaîne utilisée pour les conversions entrante et sortante de SQL NULL :

  • Lors du chargement des données, Snowflake remplace ces valeurs de la source de chargement des données par SQL NULL. Pour spécifier plus d’une chaîne, mettez la liste des chaînes entre parenthèses et utilisez des virgules pour séparer chaque valeur.

    Notez que Snowflake convertit toutes les instances de la valeur en NULL, quel que soit le type de données. Par exemple, si 2 est spécifié comme valeur, toutes les instances de 2 sous forme de chaîne ou de nombre sont converties.

    Par exemple :

    NULL_IF = ('\\N', 'NULL', 'NUL', '')

    Notez que cette option peut inclure des chaînes vides.

  • Lors du déchargement des données, Snowflake convertit les valeurs NULL SQL vers la première valeur de la liste.

Par défaut

\\N (c.-à-d. NULL, qui suppose que la valeur ESCAPE_UNENCLOSED_FIELD est \\)

ERROR_ON_COLUMN_COUNT_MISMATCH = TRUE | FALSE
Utilisation

Chargement des données uniquement

Définition

Booléen qui spécifie s’il faut générer une erreur d’analyse si le nombre de colonnes délimitées (c’est-à-dire de champs) dans un fichier d’entrée ne correspond pas au nombre de colonnes de la table correspondante.

Si ce paramètre est réglé sur FALSE, aucune erreur n’est générée et le chargement continue. Si le fichier est chargé correctement :

  • Si le fichier d’entrée contient des enregistrements contenant plus de champs que de colonnes dans la table, les champs correspondants sont chargés par ordre d’occurrence dans le fichier et les autres champs ne sont pas chargés.

  • Si le fichier d’entrée contient des enregistrements avec moins de champs que de colonnes dans la table, les colonnes qui ne correspondent pas dans la table sont chargées avec des valeurs NULL.

Cette option suppose que tous les enregistrements du fichier d’entrée ont la même longueur (c’est-à-dire qu’un fichier contenant des enregistrements de longueur variable renvoie une erreur quelle que soit la valeur spécifiée pour ce paramètre).

Par défaut

TRUE

Note

Lors de la transformation des données pendant le chargement (c’est-à-dire, en utilisant une requête comme source pour la commande COPY), cette option est ignorée. Il n’est pas nécessaire que vos fichiers de données aient le même nombre et le même ordre de colonnes que votre table cible.

REPLACE_INVALID_CHARACTERS = TRUE | FALSE
Utilisation

Chargement des données uniquement

Définition

Booléen qui spécifie s’il faut remplacer les caractères UTF-8 non valides par le caractère de remplacement Unicode ().

S’il est défini sur TRUE, Snowflake remplace les caractères UTF-8 non valides par le caractère de remplacement Unicode.

Si FALSE est défini, l’opération de chargement génère une erreur lorsqu’un codage de caractères UTF-8 non valide est détecté.

Par défaut

FALSE

EMPTY_FIELD_AS_NULL = TRUE | FALSE
Utilisation

Chargement de données, déchargement de données et tables externes

Définition
  • Lors du chargement de données, spécifie s’il faut insérer SQL NULL pour les champs vides dans un fichier d’entrée, qui sont représentés par deux délimiteurs successifs (par ex., ,,).

    Si l’option est définie sur FALSE, Snowflake essaie de placer un champ vide dans le type de colonne correspondant. Une chaîne vide est insérée dans les colonnes de type STRING. Pour les autres types de colonne, la commande COPY produit une erreur.

  • Lors du déchargement des données, cette option est utilisée en combinaison avec FIELD_OPTIONALLY_ENCLOSED_BY. Lorsque FIELD_OPTIONALLY_ENCLOSED_BY = NONE, le paramètre EMPTY_FIELD_AS_NULL = FALSE spécifie de décharger les chaînes vides dans les tables pour vider les valeurs de chaîne sans guillemets entourant les valeurs de champ.

    S’il est défini sur TRUE, FIELD_OPTIONALLY_ENCLOSED_BY doit spécifier un caractère pour entourer les chaînes.

Par défaut

TRUE

SKIP_BYTE_ORDER_MARK = TRUE | FALSE
Utilisation

Chargement des données uniquement

Définition

Booléen qui spécifie s’il faut ignorer le BOM (marque d’ordre d’octet), s’il est présent dans un fichier de données. Une marque BOM est un code de caractère placé au début d’un fichier de données qui définit l’ordre des octets et la forme de l’encodage.

S’il est réglé sur FALSE, Snowflake reconnaît n’importe quel BOM dans les fichiers de données, ce qui pourrait entraîner une erreur BOM ou une fusion dans la première colonne du tableau.

Par défaut

TRUE

ENCODING = 'string'
Utilisation

Chargement de données et tables externes

Définition

Chaîne (constante) qui spécifie le jeu de caractères des données sources lors du chargement des données dans une table.

Jeu de caractères

Valeur ENCODING 

Langues acceptées

Remarques

Big5

BIG5

Chinois traditionnel

EUC-JP

EUCJP

Japonais

EUC-KR

EUCKR

Coréen

GB18030

GB18030

Chinois

IBM420

IBM420

Arabe

IBM424

IBM424

Hébreu

ISO-2022-CN

ISO2022CN

Chinois simplifié

ISO-2022-JP

ISO2022JP

Japonais

ISO-2022-KR

ISO2022KR

Coréen

ISO-8859-1

ISO88591

Allemand, anglais, danois, français, italien, norvégien, néerlandais, portugais, suédois

ISO-8859-2

ISO88592

Tchèque, hongrois, polonais, roumain

ISO-8859-5

ISO88595

Russe

ISO-8859-6

ISO88596

Arabe

ISO-8859-7

ISO88597

Grec

ISO-8859-8

ISO88598

Hébreu

ISO-8859-9

ISO88599

Turc

ISO-8859-15

ISO885915

Allemand, anglais, danois, français, italien, norvégien, néerlandais, portugais, suédois

Identique à ISO-8859-1 à l’exception des 8 caractères, y compris le symbole monétaire Euro.

KOI8-R

KOI8R

Russe

Shift_JIS

SHIFTJIS

Japonais

UTF-8

UTF8

Toutes les langues

Pour charger des données à partir de fichiers délimités (CSV, TSV, etc.), UTF-8 est la valeur par défaut. . . Pour charger des données à partir de tous les autres formats de fichier pris en charge (JSON, Avro, etc.), ainsi que pour décharger des données, UTF-8 est le seul jeu de caractères pris en charge.

UTF-16

UTF16

Toutes les langues

UTF-16BE

UTF16BE

Toutes les langues

UTF-16LE

UTF16LE

Toutes les langues

UTF-32

UTF32

Toutes les langues

UTF-32BE

UTF32BE

Toutes les langues

UTF-32LE

UTF32LE

Toutes les langues

windows-1250

WINDOWS1250

Tchèque, hongrois, polonais, roumain

windows-1251

WINDOWS1251

Russe

windows-1252

WINDOWS1252

Allemand, anglais, danois, français, italien, norvégien, néerlandais, portugais, suédois

windows-1253

WINDOWS1253

Grec

windows-1254

WINDOWS1254

Turc

windows-1255

WINDOWS1255

Hébreu

windows-1256

WINDOWS1256

Arabe

Par défaut

UTF8

Note

Snowflake stocke toutes les données en interne dans le jeu de caractères UTF-8. Les données sont converties en UTF-8 avant d’être chargées dans Snowflake.

TYPE = JSON

COMPRESSION = AUTO | GZIP | BZ2 | BROTLI | ZSTD | DEFLATE | RAW_DEFLATE | NONE
Utilisation

Chargement de données et tables externes

Définition
  • Lors du chargement des données, spécifie l’algorithme de compression actuel pour le fichier de données. Snowflake utilise cette option pour détecter comment un fichier de données déjà compressé a été compressé afin que les données compressées dans le fichier puissent être extraites pour le chargement.

  • Lors du déchargement des données, compresse le fichier de données en utilisant l’algorithme de compression spécifié.

Valeurs

Valeurs prises en charge

Remarques

AUTO

Lors du chargement des données, l’algorithme de compression est détecté automatiquement, sauf pour les fichiers compressés par Brotli, qui ne peuvent actuellement pas être détectés automatiquement. Lors du déchargement des données, les fichiers sont automatiquement compressés en utilisant la valeur par défaut, qui est gzip.

GZIP

BZ2

BROTLI

Doit être spécifié lors du chargement/déchargement de fichiers compressés Brotli.

ZSTD

Zstandard v0.8 (et supérieur) est pris en charge.

DEFLATE

Fichiers compressés Deflate (avec en-tête zlib, RFC1950).

RAW_DEFLATE

Fichiers bruts compressés Deflate (sans en-tête, RFC1951).

NONE

Lors du chargement des données, indique que les fichiers n’ont pas été compressés. Lors du déchargement des données, spécifie que les fichiers déchargés ne sont pas compressés.

Par défaut

AUTO

DATE_FORMAT = 'string' | AUTO
Utilisation

Chargement des données uniquement

Définition

Définit le format des valeurs de chaîne de date dans les fichiers de données. Si une valeur n’est pas spécifiée ou est AUTO, la valeur du paramètre DATE_INPUT_FORMAT est utilisée.

Cette option de format de fichier s’applique uniquement aux actions suivantes :

  • Chargement des données JSON dans des colonnes séparées en utilisant l’option de copie MATCH_BY_COLUMN_NAME.

  • Chargement des données JSON dans des colonnes distinctes en spécifiant une requête dans l’instruction COPY (c’est-à-dire une transformation COPY).

Par défaut

AUTO

TIME_FORMAT = 'string' | AUTO
Utilisation

Chargement des données uniquement

Définition

Définit le format des valeurs de la chaîne de temps dans les fichiers de données. Si une valeur n’est pas spécifiée ou est AUTO, la valeur du paramètre TIME_INPUT_FORMAT est utilisée.

Cette option de format de fichier s’applique uniquement aux actions suivantes :

  • Chargement des données JSON dans des colonnes séparées en utilisant l’option de copie MATCH_BY_COLUMN_NAME.

  • Chargement des données JSON dans des colonnes distinctes en spécifiant une requête dans l’instruction COPY (c’est-à-dire une transformation COPY).

Par défaut

AUTO

TIMESTAMP_FORMAT = string' | AUTO
Utilisation

Chargement des données uniquement

Définition

Définit le format des valeurs de chaîne d’horodatage dans les fichiers de données. Si une valeur n’est pas spécifiée ou est AUTO, la valeur du paramètre TIMESTAMP_INPUT_FORMAT est utilisée.

Cette option de format de fichier s’applique uniquement aux actions suivantes :

  • Chargement des données JSON dans des colonnes séparées en utilisant l’option de copie MATCH_BY_COLUMN_NAME.

  • Chargement des données JSON dans des colonnes distinctes en spécifiant une requête dans l’instruction COPY (c’est-à-dire une transformation COPY).

Par défaut

AUTO

BINARY_FORMAT = HEX | BASE64 | UTF8
Utilisation

Chargement des données uniquement

Définition

Définit le format d’encodage des valeurs de chaînes binaires dans les fichiers de données. L’option peut être utilisée pour charger des données à partir de colonnes binaires dans une table.

Cette option de format de fichier s’applique uniquement aux actions suivantes :

  • Chargement des données JSON dans des colonnes séparées en utilisant l’option de copie MATCH_BY_COLUMN_NAME.

  • Chargement des données JSON dans des colonnes distinctes en spécifiant une requête dans l’instruction COPY (c’est-à-dire une transformation COPY).

Par défaut

HEX

TRIM_SPACE = TRUE | FALSE
Utilisation

Chargement des données uniquement

Définition

Booléen qui spécifie s’il faut supprimer les espaces blancs de début et de fin des chaînes.

Par exemple, si votre logiciel de base de données externe contient des champs entre guillemets, mais insère un espace d’en-tête, Snowflake lit l’espace d’en-tête plutôt que le caractère guillemet comme début du champ (c’est-à-dire que les guillemets sont interprétés comme faisant partie de la chaîne des données du champ). Définissez cette option sur TRUE pour supprimer les espaces indésirables pendant le chargement des données.

Cette option de format de fichier est appliquée aux actions suivantes uniquement lors du chargement de données JSON dans des colonnes séparées à l’aide de l’option de copie MATCH_BY_COLUMN_NAME.

Par défaut

FALSE

NULL_IF = ( 'string1' [ , 'string2' , ... ] )
Utilisation

Chargement des données uniquement

Définition

Chaîne utilisée pour les conversions entrante et sortante de SQL NULL. Snowflake remplace ces chaînes de la source de chargement des données par SQL NULL. Pour spécifier plus d’une chaîne, mettez la liste des chaînes entre parenthèses et utilisez des virgules pour séparer chaque valeur.

Cette option de format de fichier est appliquée aux actions suivantes uniquement lors du chargement de données JSON dans des colonnes séparées à l’aide de l’option de copie MATCH_BY_COLUMN_NAME.

Notez que Snowflake convertit toutes les instances de la valeur en NULL, quel que soit le type de données. Par exemple, si 2 est spécifié comme valeur, toutes les instances de 2 sous forme de chaîne ou de nombre sont converties.

Par exemple :

NULL_IF = ('\\N', 'NULL', 'NUL', '')

Notez que cette option peut inclure des chaînes vides.

Par défaut

\\N (c.-à-d. NULL, qui suppose que la valeur ESCAPE_UNENCLOSED_FIELD est \\)

FILE_EXTENSION = 'string' | NONE
Utilisation

Déchargement des données uniquement

Définition

Spécifie l’extension des fichiers déchargés dans une zone de préparation. Accepte toute extension. L’utilisateur est chargé de spécifier une extension de fichier qui peut être lue par tout logiciel ou service désiré.

Par défaut

null, ce qui signifie que l’extension du fichier est déterminée par le type de format : .json[compression], où compression est l’extension ajoutée par la méthode de compression, si COMPRESSION est défini.

ENABLE_OCTAL = TRUE | FALSE
Utilisation

Chargement des données uniquement

Définition

Booléen qui permet d’analyser les nombres octaux.

Par défaut

FALSE

ALLOW_DUPLICATE = TRUE | FALSE
Utilisation

Chargement de données et tables externes

Définition

Booléen qui indique d’autoriser les noms de champs d’objets dupliqués (seul le dernier sera conservé).

Par défaut

FALSE

STRIP_OUTER_ARRAY = TRUE | FALSE
Utilisation

Chargement de données et tables externes

Définition

Booléen qui demande à l’analyseur JSON de supprimer les crochets extérieurs (comme [ ]).

Par défaut

FALSE

STRIP_NULL_VALUES = TRUE | FALSE
Utilisation

Chargement de données et tables externes

Définition

Booléen qui demande à l’analyseur JSON de supprimer les champs d’objets ou les éléments de tableau contenant des valeurs null. Par exemple, lorsque défini sur TRUE :

Avant

Après

[null]

[]

[null,null,3]

[,,3]

{"a":null,"b":null,"c":123}

{"c":123}

{"a":[1,null,2],"b":{"x":null,"y":88}}

{"a":[1,,2],"b":{"y":88}}

Par défaut

FALSE

REPLACE_INVALID_CHARACTERS = TRUE | FALSE
Utilisation

Chargement des données uniquement

Définition

Booléen qui spécifie s’il faut remplacer les caractères UTF-8 non valides par le caractère de remplacement Unicode (). L’option de copie permet de remplacer un caractère par un autre.

Valeurs

S’il est défini sur TRUE, Snowflake remplace les caractères UTF-8 non valides par le caractère de remplacement Unicode.

Si FALSE est défini, l’opération de chargement génère une erreur lorsqu’un codage de caractères UTF-8 non valide est détecté.

Par défaut

FALSE

IGNORE_UTF8_ERRORS = TRUE | FALSE
Utilisation

Chargement des données uniquement

Définition

Booléen qui spécifie si les erreurs d’encodage UTF-8 produisent des conditions d’erreur. Si ce paramètre est réglé sur TRUE, toute séquence UTF-8 non valide est remplacée discrètement par le caractère Unicode U+FFFD (c.-à-d. un « caractère de remplacement »).

Note

Cette option de copie supprime tous les caractères nonUTF-8 pendant le chargement des données, mais il n’y a aucune garantie de remplacement de caractères un à un. Nous recommandons d’utiliser plutôt l’option de copie REPLACE_INVALID_CHARACTERS .

Par défaut

FALSE

SKIP_BYTE_ORDER_MARK = TRUE | FALSE
Utilisation

Chargement des données uniquement

Définition

Booléen qui spécifie s’il faut ignorer le BOM (marque d’ordre d’octet), s’il est présent dans un fichier de données. Une marque BOM est un code de caractère placé au début d’un fichier de données qui définit l’ordre des octets et la forme de l’encodage.

S’il est réglé sur FALSE, Snowflake reconnaît n’importe quel BOM dans les fichiers de données, ce qui pourrait entraîner une erreur BOM ou une fusion dans la première colonne du tableau.

Par défaut

TRUE

TYPE = AVRO

COMPRESSION = AUTO | GZIP | BROTLI | ZSTD | DEFLATE | RAW_DEFLATE | NONE
Utilisation

Chargement des données uniquement

Définition
  • Lors du chargement des données, spécifie l’algorithme de compression actuel pour le fichier de données. Snowflake utilise cette option pour détecter comment un fichier de données déjà compressé a été compressé afin que les données compressées dans le fichier puissent être extraites pour le chargement.

  • Lors du déchargement des données, compresse le fichier de données en utilisant l’algorithme de compression spécifié.

Valeurs

Valeurs prises en charge

Remarques

AUTO

Lors du chargement des données, l’algorithme de compression est détecté automatiquement, sauf pour les fichiers compressés par Brotli, qui ne peuvent actuellement pas être détectés automatiquement. Lors du déchargement des données, les fichiers sont automatiquement compressés en utilisant la valeur par défaut, qui est gzip.

GZIP

BROTLI

Doit être spécifié lors du chargement/déchargement de fichiers compressés Brotli.

ZSTD

Zstandard v0.8 (et supérieur) est pris en charge.

DEFLATE

Fichiers compressés Deflate (avec en-tête zlib, RFC1950).

RAW_DEFLATE

Fichiers bruts compressés Deflate (sans en-tête, RFC1951).

NONE

Lors du chargement des données, indique que les fichiers n’ont pas été compressés. Lors du déchargement des données, spécifie que les fichiers déchargés ne sont pas compressés.

Par défaut

AUTO

TRIM_SPACE = TRUE | FALSE
Utilisation

Chargement des données uniquement

Définition

Booléen qui spécifie s’il faut supprimer les espaces blancs de début et de fin des chaînes.

Par exemple, si votre logiciel de base de données externe contient des champs entre guillemets, mais insère un espace d’en-tête, Snowflake lit l’espace d’en-tête plutôt que le caractère guillemet comme début du champ (c’est-à-dire que les guillemets sont interprétés comme faisant partie de la chaîne des données du champ). Définissez cette option sur TRUE pour supprimer les espaces indésirables pendant le chargement des données.

Cette option de format de fichier est appliquée aux actions suivantes uniquement lors du chargement de données Avro dans des colonnes séparées à l’aide de l’option de copie MATCH_BY_COLUMN_NAME.

Par défaut

FALSE

NULL_IF = ( 'string1' [ , 'string2' , ... ] )
Utilisation

Chargement des données uniquement

Définition

Chaîne utilisée pour les conversions entrante et sortante de SQL NULL. Snowflake remplace ces chaînes de la source de chargement des données par SQL NULL. Pour spécifier plus d’une chaîne, mettez la liste des chaînes entre parenthèses et utilisez des virgules pour séparer chaque valeur.

Cette option de format de fichier est appliquée aux actions suivantes uniquement lors du chargement de données Avro dans des colonnes séparées à l’aide de l’option de copie MATCH_BY_COLUMN_NAME.

Notez que Snowflake convertit toutes les instances de la valeur en NULL, quel que soit le type de données. Par exemple, si 2 est spécifié comme valeur, toutes les instances de 2 sous forme de chaîne ou de nombre sont converties.

Par exemple :

NULL_IF = ('\\N', 'NULL', 'NUL', '')

Notez que cette option peut inclure des chaînes vides.

Par défaut

\\N (c.-à-d. NULL, qui suppose que la valeur ESCAPE_UNENCLOSED_FIELD est \\)

TYPE = ORC

TRIM_SPACE = TRUE | FALSE
Utilisation

Chargement de données et tables externes

Définition

Booléen qui spécifie s’il faut supprimer les espaces blancs de début et de fin des chaînes.

Par exemple, si votre logiciel de base de données externe contient des champs entre guillemets, mais insère un espace d’en-tête, Snowflake lit l’espace d’en-tête plutôt que le caractère guillemet comme début du champ (c’est-à-dire que les guillemets sont interprétés comme faisant partie de la chaîne des données du champ). Définissez cette option sur TRUE pour supprimer les espaces indésirables pendant le chargement des données.

Cette option de format de fichier est appliquée aux actions suivantes uniquement lors du chargement des données Orc dans des colonnes séparées à l’aide de l’option de copie MATCH_BY_COLUMN_NAME.

Par défaut

FALSE

NULL_IF = ( 'string1' [ , 'string2' , ... ] )
Utilisation

Chargement de données et tables externes

Définition

Chaîne utilisée pour les conversions entrante et sortante de SQL NULL. Snowflake remplace ces chaînes de la source de chargement des données par SQL NULL. Pour spécifier plus d’une chaîne, mettez la liste des chaînes entre parenthèses et utilisez des virgules pour séparer chaque valeur.

Cette option de format de fichier est appliquée aux actions suivantes uniquement lors du chargement des données Orc dans des colonnes séparées à l’aide de l’option de copie MATCH_BY_COLUMN_NAME.

Notez que Snowflake convertit toutes les instances de la valeur en NULL, quel que soit le type de données. Par exemple, si 2 est spécifié comme valeur, toutes les instances de 2 sous forme de chaîne ou de nombre sont converties.

Par exemple :

NULL_IF = ('\\N', 'NULL', 'NUL', '')

Notez que cette option peut inclure des chaînes vides.

Par défaut

\\N (c.-à-d. NULL, qui suppose que la valeur ESCAPE_UNENCLOSED_FIELD est \\)

TYPE = PARQUET

COMPRESSION = AUTO | LZO | SNAPPY | NONE
Utilisation

Chargement de données, déchargement de données et tables externes

Définition

  • Lors du chargement des données, spécifie l’algorithme de compression actuel pour les colonnes des fichiers Parquet.

  • Lors du déchargement des données, compresse le fichier de données en utilisant l’algorithme de compression spécifié.

Valeurs

Valeurs prises en charge

Remarques

AUTO

Lors du chargement des données, l’algorithme de compression est détecté automatiquement. Prend en charge les algorithmes de compression suivants : Brotli, gzip, Lempel–Ziv–Oberhumer (LZO), LZ4, Snappy ou Zstandard v0.8 (et versions ultérieures). . Lors du déchargement des données, les fichiers déchargés sont compressés en utilisant l’algorithme de compression Snappy par défaut.

LZO

Lors du déchargement des données, les fichiers sont compressés à l’aide de l’algorithme Snappy par défaut. Si vous déchargez des données dans des fichiers LZO compressés, spécifiez cette valeur.

SNAPPY

Lors du déchargement des données, les fichiers sont compressés à l’aide de l’algorithme Snappy par défaut. Vous pouvez spécifier cette valeur en option.

NONE

Lors du chargement des données, indique que les fichiers n’ont pas été compressés. Lors du déchargement des données, spécifie que les fichiers déchargés ne sont pas compressés.

Par défaut

AUTO

SNAPPY_COMPRESSION = TRUE | FALSE
Utilisation

Déchargement des données uniquement

AUTO | Les fichiers déchargés sont compressés à l’aide de l’algorithme de compression Snappy par défaut. SNAPPY | Peut être spécifié lors du déchargement de fichiers compressés par Snappy. NONE | Lors du chargement des données, indique que les fichiers n’ont pas été compressés. Lors du déchargement des données, spécifie que les fichiers déchargés ne sont pas compressés.

Définition

Booléen qui spécifie si les fichiers déchargés sont compressés en utilisant l’algorithme SNAPPY.

Note

Obsolète. Utilisez plutôt COMPRESSION = SNAPPY.

Limites

Uniquement pris en charge pour les opérations de déchargement de données.

Par défaut

TRUE

BINARY_AS_TEXT = TRUE | FALSE
Utilisation

Chargement de données et tables externes

Définition

Booléen qui spécifie s’il faut interpréter les colonnes sans type de données logiques défini comme du texte UTF-8. Lorsqu’il est réglé sur FALSE, Snowflake interprète ces colonnes comme des données binaires.

Par défaut

TRUE

TRIM_SPACE = TRUE | FALSE
Utilisation

Chargement des données uniquement

Définition

Booléen qui spécifie s’il faut supprimer les espaces blancs de début et de fin des chaînes.

Par exemple, si votre logiciel de base de données externe contient des champs entre guillemets, mais insère un espace d’en-tête, Snowflake lit l’espace d’en-tête plutôt que le caractère guillemet comme début du champ (c’est-à-dire que les guillemets sont interprétés comme faisant partie de la chaîne des données du champ). Définissez cette option sur TRUE pour supprimer les espaces indésirables pendant le chargement des données.

Cette option de format de fichier est appliquée aux actions suivantes uniquement lors du chargement de données Parquet dans des colonnes séparées à l’aide de l’option de copie MATCH_BY_COLUMN_NAME.

Par défaut

FALSE

NULL_IF = ( 'string1' [ , 'string2' , ... ] )
Utilisation

Chargement des données uniquement

Définition

Chaîne utilisée pour les conversions entrante et sortante de SQL NULL. Snowflake remplace ces chaînes de la source de chargement des données par SQL NULL. Pour spécifier plus d’une chaîne, mettez la liste des chaînes entre parenthèses et utilisez des virgules pour séparer chaque valeur.

Cette option de format de fichier est appliquée aux actions suivantes uniquement lors du chargement de données Parquet dans des colonnes séparées à l’aide de l’option de copie MATCH_BY_COLUMN_NAME.

Notez que Snowflake convertit toutes les instances de la valeur en NULL, quel que soit le type de données. Par exemple, si 2 est spécifié comme valeur, toutes les instances de 2 sous forme de chaîne ou de nombre sont converties.

Par exemple :

NULL_IF = ('\\N', 'NULL', 'NUL', '')

Notez que cette option peut inclure des chaînes vides.

Par défaut

\\N (c.-à-d. NULL, qui suppose que la valeur ESCAPE_UNENCLOSED_FIELD est \\)

TYPE = XML

COMPRESSION = AUTO | GZIP | BZ2 | BROTLI | ZSTD | DEFLATE | RAW_DEFLATE | NONE
Utilisation

Chargement des données uniquement

Définition
  • Lors du chargement des données, spécifie l’algorithme de compression actuel pour le fichier de données. Snowflake utilise cette option pour détecter comment un fichier de données déjà compressé a été compressé afin que les données compressées dans le fichier puissent être extraites pour le chargement.

  • Lors du déchargement des données, compresse le fichier de données en utilisant l’algorithme de compression spécifié.

Valeurs

Valeurs prises en charge

Remarques

AUTO

Lors du chargement des données, l’algorithme de compression est détecté automatiquement, sauf pour les fichiers compressés par Brotli, qui ne peuvent actuellement pas être détectés automatiquement. Lors du déchargement des données, les fichiers sont automatiquement compressés en utilisant la valeur par défaut, qui est gzip.

GZIP

BZ2

BROTLI

Doit être spécifié lors du chargement/déchargement de fichiers compressés Brotli.

ZSTD

Zstandard v0.8 (et supérieur) est pris en charge.

DEFLATE

Fichiers compressés Deflate (avec en-tête zlib, RFC1950).

RAW_DEFLATE

Fichiers bruts compressés Deflate (sans en-tête, RFC1951).

NONE

Lors du chargement des données, indique que les fichiers n’ont pas été compressés. Lors du déchargement des données, spécifie que les fichiers déchargés ne sont pas compressés.

Par défaut

AUTO

IGNORE_UTF8_ERRORS = TRUE | FALSE
Utilisation

Chargement des données uniquement

Définition

Booléen qui spécifie si les erreurs d’encodage UTF-8 produisent des conditions d’erreur. Si ce paramètre est réglé sur TRUE, toute séquence UTF-8 non valide est remplacée discrètement par un caractère Unicode U+FFFD (c.-à-d. un « caractère de remplacement »).

Par défaut

FALSE

PRESERVE_SPACE = TRUE | FALSE
Utilisation

Chargement des données uniquement

Définition

Booléen qui spécifie si l’analyseur XML préserve les espaces d’en-tête et de fin dans le contenu des éléments.

Par défaut

FALSE

STRIP_OUTER_ELEMENT = TRUE | FALSE
Utilisation

Chargement des données uniquement

Définition

Booléen qui spécifie si l’analyseur XML supprime l’élément externe XML, exposant les éléments de 2e niveau comme des documents séparés.

Par défaut

FALSE

DISABLE_SNOWFLAKE_DATA = TRUE | FALSE
Utilisation

Chargement des données uniquement

Définition

Booléen qui spécifie si l’analyseur XML désactive la reconnaissance des balises de données semi-structurées Snowflake.

Par défaut

FALSE

DISABLE_AUTO_CONVERT = TRUE | FALSE
Utilisation

Chargement des données uniquement

Définition

Booléen qui spécifie si l’analyseur XML désactive la conversion automatique des valeurs numériques et booléennes du texte en représentation native.

Par défaut

FALSE

SKIP_BYTE_ORDER_MARK = TRUE | FALSE
Utilisation

Chargement des données uniquement

Définition

Booléen qui spécifie s’il faut sauter n’importe quel BOM (marque d’ordre d’octet) présent dans un fichier d’entrée. Une marque BOM est un code de caractère placé au début d’un fichier de données qui définit l’ordre des octets et la forme de l’encodage.

S’il est réglé sur FALSE, Snowflake reconnaît n’importe quel BOM dans les fichiers de données, ce qui pourrait entraîner une erreur BOM ou une fusion dans la première colonne du tableau.

Par défaut

TRUE

Options de copie (copyOptions)

Vous pouvez spécifier une ou plusieurs des options de copie suivantes (séparées par des espaces, des virgules ou de nouvelles lignes) :

ON_ERROR = CONTINUE | SKIP_FILE | SKIP_FILE_num | 'SKIP_FILE_num%' | ABORT_STATEMENT
Utilisation

Chargement des données uniquement

Définition

Chaîne (constante) qui spécifie le traitement des erreurs pour l’opération de chargement.

Important

Examinez attentivement la valeur de l’option de copie ON_ERROR. La valeur par défaut est appropriée dans les scénarios courants, mais n’est pas toujours la meilleure option.

Valeurs

Valeurs prises en charge

Remarques

CONTINUE

Continuer à charger le fichier si des erreurs sont trouvées. L’instruction COPY renvoie un message d’erreur pour un maximum d’une erreur trouvée par fichier de données.

Notez que la différence entre les valeurs des colonnes ROWS_PARSED et ROWS_LOADED représente le nombre de lignes qui incluent les erreurs détectées. Cependant, chacune de ces lignes peut contenir plusieurs erreurs. Pour voir toutes les erreurs dans les fichiers de données, utilisez le paramètre VALIDATION_MODE ou interrogez la fonction VALIDATE.

SKIP_FILE

Ignorez un fichier lorsqu’une erreur est trouvée.

Notez que l’action SKIP_FILE met en mémoire tampon un fichier entier, que des erreurs soient trouvées ou non. Pour cette raison, SKIP_FILE est plus lent que CONTINUE ou ABORT_STATEMENT. Ignorer des fichiers volumineux en raison d’un petit nombre d’erreurs pourrait entraîner des retards et des crédits gaspillés. Lorsque vous chargez un grand nombre d’enregistrements à partir de fichiers qui n’ont pas de délimitation logique (par exemple, les fichiers ont été générés automatiquement à des intervalles approximatifs), envisagez de spécifier CONTINUE à la place.

Modèles complémentaires :

SKIP_FILE_num (par ex. SKIP_FILE_10)

Ignorez le fichier lorsque le nombre de lignes d’erreurs trouvées dans le fichier est égal ou supérieur au nombre spécifié.

'SKIP_FILE_num%' (par ex. 'SKIP_FILE_10%')

Ignorez un fichier lorsque le pourcentage de lignes d’erreurs trouvées dans le fichier dépasse le pourcentage spécifié.

ABORT_STATEMENT

Abandonnez l’opération de chargement si une erreur est trouvée dans un fichier de données.

Notez que l’opération de chargement n’est pas abandonnée si le fichier de données est introuvable (par exemple, parce qu’il n’existe pas ou n’est pas accessible), sauf lorsque les fichiers de données explicitement spécifiés dans le paramètre FILES sont introuvables.

  • Les comportements suivants s’appliquent à cette option de copie :

    • Toutes les valeurs ON_ERROR fonctionnent comme prévu lors du chargement de fichiers de données structurées (CSV, TSV, etc.) avec des erreurs d’analyse ou de transformation.

      Cependant, les fichiers de données semi-structurées (JSON, Avro, ORC, Parquet ou XML) ne prennent pas en charge la même sémantique de comportement que les fichiers de données structurées pour les valeurs ON_ERROR suivantes : CONTINUE, SKIP_FILE_num, ou 'SKIP_FILE_num%' en raison de la conception de ces types de formats.

    • Données Parquet et ORC uniquement. Quand ON_ERROR est réglé sur CONTINUE, SKIP_FILE_num, ou 'SKIP_FILE_num%', toute erreur d’analyse entraîne le saut du fichier de données. Toute erreur de conversion ou de transformation suit le comportement par défaut de ABORT_STATEMENT (instructions COPY INTO <table>) ou SKIP_FILE (Snowpipe), quelle que soit la valeur de l’option sélectionnée.

    • Données JSON, XML et Avro uniquement. Lorsque ON_ERROR est défini sur CONTINUE, SKIP_FILE_num, ou 'SKIP_FILE_num%', tous les enregistrements jusqu’à celui qui contient l’erreur d’analyse sont chargés, mais le reste des enregistrements du fichier de données est ignoré. Toute erreur de conversion ou de transformation suit le comportement par défaut de COPY (ABORT_STATEMENT) ou Snowpipe (SKIP_FILE), quelle que soit la valeur de l’option sélectionnée.

Par défaut
Chargement en lot à l’aide de COPY

ABORT_STATEMENT

Snowpipe

SKIP_FILE

SIZE_LIMIT = num
Utilisation

Chargement des données uniquement

Définition

Nombre (> 0) qui spécifie la taille maximale (en octets) des données à charger pour une instruction COPY donnée. Lorsque le seuil est dépassé, l’opération COPY interrompt le chargement des fichiers. Cette option est couramment utilisée pour charger un groupe commun de fichiers en utilisant plusieurs instructions COPY. Pour chaque instruction, la charge de données continue jusqu’à ce que le SIZE_LIMIT spécifié soit dépassé, avant de passer à l’instruction suivante.

Par exemple, supposons que des fichiers dans un chemin d’accès de zone de préparation présentent chacun une taille de 10 MB. Si plusieurs instructions COPY établissent SIZE_LIMIT à 25000000 (25 MB), chacune chargerait 3 fichiers. En d’autres termes, chaque opération COPY serait interrompue après le dépassement du seuil SIZE_LIMIT.

Notez qu’au moins un fichier est chargé, quelle que soit la valeur spécifiée pour SIZE_LIMIT à moins qu’il n’y ait aucun fichier à charger.

Par défaut

null (aucune limite de taille)

PURGE = TRUE | FALSE
Utilisation

Chargement des données uniquement

Définition

Booléen qui spécifie s’il faut supprimer automatiquement les fichiers de données de la zone de préparation une fois que les données ont été chargées avec succès.

Si cette option est définie sur TRUE, nous faisons de notre mieux pour supprimer les fichiers de données chargés avec succès. Si l’opération de purge échoue pour une raison quelconque, aucune erreur n’est renvoyée actuellement. Nous vous recommandons de répertorier périodiquement les fichiers mis en zone de préparation (à l’aide de LIST) et de supprimer manuellement les fichiers correctement chargés, le cas échéant.

Par défaut

FALSE

RETURN_FAILED_ONLY = TRUE | FALSE
Utilisation

Chargement des données uniquement

Définition

Booléen qui spécifie s’il faut renvoyer uniquement les fichiers qui n’ont pas réussi à se charger dans le résultat de l’instruction.

Par défaut

FALSE

MATCH_BY_COLUMN_NAME = CASE_SENSITIVE | CASE_INSENSITIVE | NONE
Utilisation

Chargement des données uniquement

Définition

Chaîne qui spécifie si elle doit charger des données semi-structurées dans des colonnes de la table cible qui correspondent aux colonnes correspondantes représentées dans les données.

Cette option de copie est prise en charge pour les formats de données suivants :

  • JSON

  • Avro

  • ORC

  • Parquet

Pour qu’une colonne corresponde, les critères suivants doivent être remplis :

  • La colonne représentée dans les données doit avoir exactement le même nom que la colonne de la table. L’option de copie prend en charge la casse pour les noms de colonne. L’ordre des colonnes n’a pas d’importance.

  • La colonne de la table doit avoir un type de données compatible avec les valeurs de la colonne représentée dans les données. Par exemple, la chaîne, le nombre et les valeurs booléennes peuvent tous être chargés dans une colonne de variantes.

Valeurs
CASE_SENSITIVE | CASE_INSENSITIVE

Chargez des données semi-structurées dans des colonnes de la table cible qui correspondent aux colonnes correspondantes représentées dans les données. Les noms de colonne sont sensibles à la casse (CASE_SENSITIVE) ou ne sont pas sensibles à la casse (CASE_INSENSITIVE).

L’opération COPY vérifie qu’au moins une colonne de la table cible correspond à une colonne représentée dans les fichiers de données. Si une correspondance est trouvée, les valeurs des fichiers de données sont chargées dans la ou les colonnes. Si aucune correspondance n’est trouvée, un ensemble de valeurs NULL pour chaque enregistrement des fichiers est chargé dans la table.

Note

  • Si des colonnes supplémentaires non correspondantes sont présentes dans les fichiers de données, les valeurs de ces colonnes ne sont pas chargées.

  • Si des colonnes non correspondantes supplémentaires sont présentes dans la table cible, l’opération COPY insère des valeurs NULL dans ces colonnes. Ces colonnes doivent prendre en charge les valeurs NULL.

  • L’instruction COPY ne permet pas de spécifier une requête pour transformer davantage les données pendant le chargement (c’est-à-dire transformation COPY).

NONE

L’opération COPY charge les données semi-structurées dans une colonne variante ou, si une requête est incluse dans l’instruction COPY, transforme les données.

Note

Les limitations suivantes s’appliquent actuellement :

  • MATCH_BY_COLUMN_NAME ne peut pas être utilisé avec le paramètre VALIDATION_MODE dans une instruction COPY pour valider les données de zone de préparation plutôt que de les charger dans la table cible.

  • Données Parquet uniquement. Lorsque MATCH_BY_COLUMN_NAME est défini sur CASE_SENSITIVE ou CASE_INSENSITIVE, une valeur de colonne vide (par exemple "col1": "") génère une erreur.

Par défaut

NONE

ENFORCE_LENGTH = TRUE | FALSE
Utilisation

Chargement des données uniquement

Définition

Syntaxe alternative pour TRUNCATECOLUMNS avec logique inverse (pour assurer une compatibilité avec les autres systèmes)

Booléen qui spécifie s’il faut tronquer les chaînes de texte qui dépassent la longueur de colonne cible :

  • Si TRUE, l’instruction COPY produit une erreur si une chaîne chargée dépasse la longueur de la colonne cible.

  • Si FALSE, les chaînes sont automatiquement tronquées suivant la longueur de colonne cible.

Cette option de copie prend en charge les données CSV, ainsi que les valeurs de chaîne dans les données semi-structurées lorsqu’elles sont chargées dans des colonnes séparées dans des tables relationnelles.

Note

  • Si la longueur de la colonne de la chaîne de caractères cible est réglée au maximum (par exemple, VARCHAR (16777216)), une chaîne entrante ne peut pas dépasser cette longueur ; sinon, la commande COPY produit une erreur.

  • Ce paramètre est fonctionnellement équivalent à TRUNCATECOLUMNS, mais a le comportement inverse. Il est fourni pour assurer une compatibilité avec d’autres bases de données. Il n’est nécessaire d’inclure qu’un seul de ces deux paramètres dans une instruction COPY pour produire le résultat souhaité.

Par défaut

TRUE

TRUNCATECOLUMNS = TRUE | FALSE
Utilisation

Chargement des données uniquement

Définition

Syntaxe alternative pour ENFORCE_LENGTH avec logique inverse (pour assurer une compatibilité avec les autres systèmes)

Booléen qui spécifie s’il faut tronquer les chaînes de texte qui dépassent la longueur de colonne cible :

  • Si TRUE, les chaînes sont automatiquement tronquées suivant la longueur de colonne cible.

  • Si FALSE, l’instruction COPY produit une erreur si une chaîne chargée dépasse la longueur de la colonne cible.

Cette option de copie prend en charge les données CSV, ainsi que les valeurs de chaîne dans les données semi-structurées lorsqu’elles sont chargées dans des colonnes séparées dans des tables relationnelles.

Note

  • Si la longueur de la colonne de la chaîne de caractères cible est réglée au maximum (par exemple, VARCHAR (16777216)), une chaîne entrante ne peut pas dépasser cette longueur ; sinon, la commande COPY produit une erreur.

  • Ce paramètre est fonctionnellement équivalent à ENFORCE_LENGTH, mais a le comportement inverse. Il est fourni pour assurer une compatibilité avec d’autres bases de données. Il n’est nécessaire d’inclure qu’un seul de ces deux paramètres dans une instruction COPY pour produire le résultat souhaité.

Par défaut

FALSE

FORCE = TRUE | FALSE
Utilisation

Chargement des données uniquement

Définition

Booléen qui demande de charger tous les fichiers, qu’ils aient été chargés précédemment ou non et qu’ils n’aient pas changé depuis leur chargement. Notez que cette option recharge les fichiers, dupliquant potentiellement les données dans une table.

Par défaut

FALSE

Exigences en matière de contrôle d’accès

Un rôle utilisé pour exécuter cette commande SQL doit avoir les privilèges suivants définis au minimum ainsi :

Privilège

Objet

Remarques

USAGE

Intégration de stockage

Requis uniquement si vous accédez à un service de stockage Cloud à l’aide d’une intégration de stockage.

CREATE STAGE

Schéma

USAGE

Format de fichier

Requis uniquement si vous faites référence à un format de fichier nommé dans la définition de la zone de préparation.

Notez que l’exploitation d’un objet dans un schéma requiert également le privilège USAGE sur la base de données et le schéma parents.

Pour obtenir des instructions sur la création d’un rôle personnalisé avec un ensemble spécifique de privilèges, voir Création de rôles personnalisés.

Pour des informations générales sur les rôles et les privilèges accordés pour effectuer des actions SQL sur des objets sécurisables, voir Contrôle d’accès dans Snowflake.

Notes sur l’utilisation

Prudence

Recréer une zone de préparation (en utilisant CREATE OR REPLACE STAGE) a les résultats supplémentaires suivants, potentiellement indésirables :

  • La table de répertoire existante pour la zone de préparation, le cas échéant, est détruite. Si la zone de préparation est recréée avec une table de répertoire, le répertoire est vide par défaut.

  • Cela rompt l’association entre la zone de préparation et toute table externe qui y fait référence.

    Ceci est dû au fait qu’une table externe se lie à une zone de préparation en utilisant un ID caché plutôt que le nom de la zone de préparation. En coulisse, la syntaxe CREATE OR REPLACE détruit un objet et le recrée avec un ID caché différent.

    Si vous devez recréer une zone de préparation après qu’elle a été liée à une ou plusieurs tables externes, vous devez recréer chacune des tables externes (en utilisant CREATE OR REPLACE EXTERNAL TABLE) pour rétablir l’association. Appelez la fonction GET_DDL pour récupérer une instruction DDL afin de recréer chacune des tables externes.

  • Tous les canaux qui font référence à la zone de préparation cessent de charger les données. Le statut d’exécution des canaux devient STOPPED_STAGE_DROPPED. Pour reprendre le chargement des données, ces objets canal doivent être recréés (en utilisant la syntaxe CREATE OR REPLACE PIPE).

  • CREATE STAGE ne vérifie pas si l’URL ou les identifiants de connexion spécifiés sont valides. Si les informations d’identification ne sont pas valides, lorsque vous tentez d’utiliser la zone de préparation, le système renvoie une erreur.

  • Si vous faites référence à un format de fichier dans l’espace de noms actuel, vous pouvez omettre les guillemets simples autour de l’identifiant de format.

  • Concernant les métadonnées :

    Attention

    Les clients doivent s’assurer qu’aucune donnée personnelle (autre que pour un objet utilisateur), donnée sensible, donnée à exportation contrôlée ou autre donnée réglementée n’est saisie comme métadonnée lors de l’utilisation du service Snowflake. Pour plus d’informations, voir Champs de métadonnées dans Snowflake.

Exemples

Zones de préparation internes

Créez une zone de préparation interne avec le type de format de fichier par défaut (CSV) :

  • Toutes les options de format de fichier par défaut CSV correspondantes sont utilisées.

  • Toutes les options de copie par défaut sont utilisées, à l’exception de ON_ERROR. Si une commande COPY INTO <table> qui fait référence à cette zone de préparation rencontre une erreur de données sur l’un des enregistrements, elle ignore le fichier.

CREATE STAGE my_int_stage
  COPY_OPTIONS = (ON_ERROR='skip_file');

Similaire à l’exemple précédent, mais spécifiez le chiffrement côté serveur pour la zone de préparation :

CREATE STAGE my_int_stage
  ENCRYPTION = (TYPE = 'SNOWFLAKE_SSE')
  COPY_OPTIONS = (ON_ERROR='skip_file');

Créez une zone de préparation interne temporaire avec toutes les mêmes propriétés que dans l’exemple précédent, à l’exception de l’option de copie permettant d’ignorer les fichiers en cas d’erreur :

CREATE TEMPORARY STAGE my_temp_int_stage;

Créez une zone de préparation interne temporaire qui fait référence à un format de fichier nommé my_csv_format (créé à l’aide de la commande CREATE FILE FORMAT) :

CREATE TEMPORARY STAGE my_int_stage
  FILE_FORMAT = my_csv_format;

Lorsque vous faites référence à la zone de préparation dans une instruction COPY INTO <table> , les options de format de fichier sont automatiquement définies.

Créez une zone de préparation interne qui comprend une table de répertoire. La zone de préparation fait référence à un format de fichier nommé myformat :

CREATE STAGE mystage
  DIRECTORY = (ENABLE = TRUE)
  FILE_FORMAT = myformat;

Zones de préparation externes

Amazon S3

Créez une zone de préparation externe en utilisant un compartiment S3 privé/protégé nommé load avec un chemin de dossier nommé files. Un accès sécurisé au compartiment S3 est fourni via l’intégration de stockage myint :

CREATE STAGE my_ext_stage
  URL='s3://load/files/'
  STORAGE_INTEGRATION = myint;

Créez une zone de préparation externe en utilisant un compartiment S3 privé/protégé nommé load avec un chemin de dossier nommé files. Les autorisations d’accès Snowflake pour le compartiment S3 sont associées à un utilisateur IAM ; par conséquent, des identifiants IAM sont requis :

CREATE STAGE my_ext_stage1
  URL='s3://load/files/'
  CREDENTIALS=(AWS_KEY_ID='1a2b3c' AWS_SECRET_KEY='4x5y6z');

Notez que les valeurs AWS_KEY_ID et AWS_SECRET_KEY utilisées dans cet exemple ne sont données qu’à titre indicatif.

Créez une zone de préparation externe en utilisant un compartiment S3 nommé load avec un chemin de dossier nommé encrypted_files et un chiffrement côté client (type de chiffrement par défaut) avec la clé maître pour déchiffrer/chiffrer les fichiers stockés dans le compartiment :

CREATE STAGE my_ext_stage2
  URL='s3://load/encrypted_files/'
  CREDENTIALS=(AWS_KEY_ID='1a2b3c' AWS_SECRET_KEY='4x5y6z')
  ENCRYPTION=(MASTER_KEY = 'eSx...');

Créez une zone de préparation externe en utilisant un compartiment S3 nommé load avec un chemin de dossier nommé encrypted_files et un chiffrement AWS_SSE_KMS côté serveur avec l’ID pour que la clé maître déchiffre/chiffre les fichiers stockés dans le compartiment :

CREATE STAGE my_ext_stage3
  URL='s3://load/encrypted_files/'
  CREDENTIALS=(AWS_KEY_ID='1a2b3c' AWS_SECRET_KEY='4x5y6z')
  ENCRYPTION=(TYPE='AWS_SSE_KMS' KMS_KEY_ID = 'aws/key');

Même exemple que l’exemple précédent, sauf que les autorisations d’accès Snowflake sur le compartiment S3 sont associées à un rôle IAM au lieu d’un utilisateur IAM. Notez que les informations d’identification sont traitées séparément des autres paramètres de la zone de préparation tels que ENCRYPTION. La prise en charge de ces autres paramètres est identique quel que soit l’identifiant de connexion utilisé pour accéder à votre compartiment S3 externe :

CREATE STAGE my_ext_stage3
  URL='s3://load/encrypted_files/'
  CREDENTIALS=(AWS_ROLE='arn:aws:iam::001234567890:role/mysnowflakerole')
  ENCRYPTION=(TYPE='AWS_SSE_KMS' KMS_KEY_ID = 'aws/key');

Créez une zone de préparation avec une table de répertoire dans le schéma actif pour la session de l’utilisateur. L’URL de stockage Cloud inclut le chemin files. La zone de préparation fait référence à une intégration de stockage nommée my_storage_int :

CREATE STAGE mystage
  URL='s3://load/files/'
  STORAGE_INTEGRATION = my_storage_int
  DIRECTORY = (
    ENABLE = true
    AUTO_REFRESH = true
  );

Google Cloud Storage

Créez une zone de préparation externe en utilisant un compartiment GCS privé/protégé nommé load avec un chemin de dossier nommé files. L’accès sécurisé au compartiment GCS est fourni via l’intégration de stockage myint :

CREATE STAGE my_ext_stage
  URL='gcs://load/files/'
  STORAGE_INTEGRATION = myint;

Créez une zone de préparation nommée mystage avec une table de répertoire dans le schéma actif pour la session de l’utilisateur. L’URL de stockage Cloud inclut le chemin files. La zone de préparation fait référence à une intégration de stockage nommée my_storage_int :

CREATE STAGE mystage
  URL='gcs://load/files/'
  STORAGE_INTEGRATION = my_storage_int
  DIRECTORY = (
    ENABLE = true
    AUTO_REFRESH = true
    NOTIFICATION_INTEGRATION = 'MY_NOTIFICATION_INT'
  );

Microsoft Azure

Créez une zone de préparation externe en utilisant un conteneur Azure privé/protégé nommé load avec un chemin de dossier nommé files. L’accès sécurisé au conteneur est fourni via l’intégration de stockage myint :

CREATE STAGE my_ext_stage
  URL='azure://myaccount.blob.core.windows.net/load/files/'
  STORAGE_INTEGRATION = myint;

Créez une zone de préparation externe en utilisant un compte de stockage Azure nommé myaccount et un conteneur nommé mycontainer avec un chemin de dossier nommé files et le chiffrement côté client activé. La zone de préparation fait référence à un format de fichier nommé my_csv_format :

CREATE STAGE mystage
  URL='azure://myaccount.blob.core.windows.net/mycontainer/files/'
  CREDENTIALS=(AZURE_SAS_TOKEN='?sv=2016-05-31&ss=b&srt=sco&sp=rwdl&se=2018-06-27T10:05:50Z&st=2017-06-27T02:05:50Z&spr=https,http&sig=bgqQwoXwxzuD2GJfagRg7VOS8hzNr3QLT7rhS8OFRLQ%3D')
  ENCRYPTION=(TYPE='AZURE_CSE' MASTER_KEY = 'kPx...')
  FILE_FORMAT = my_csv_format;

(Les valeurs AZURE_SAS_TOKEN et MASTER_KEY utilisées dans cet exemple ne sont pas des valeurs réelles ; elles sont fournies à titre indicatif seulement.)

Créez une zone de préparation avec une table de répertoire dans le schéma actif pour la session de l’utilisateur. L’URL de stockage Cloud inclut le chemin files. La zone de préparation fait référence à une intégration de stockage nommée my_storage_int :

CREATE STAGE mystage
  URL='azure://myaccount.blob.core.windows.net/load/files/'
  STORAGE_INTEGRATION = my_storage_int
  DIRECTORY = (
    ENABLE = true
    AUTO_REFRESH = true
    NOTIFICATION_INTEGRATION = 'MY_NOTIFICATION_INT'
  );
Revenir au début