Options de mappage de colonnes - Amazon Redshift

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Options de mappage de colonnes

Par défaut, la commande COPY insère des valeurs dans les colonnes de la table cible dans le même ordre que les champs se trouvent dans les fichiers de données. Si l’ordre de la colonne par défaut ne fonctionne pas, vous pouvez spécifier une liste de colonnes ou utiliser des expressions JSONPath pour mapper des champs de données source aux colonnes cible.

Liste de colonnes

Vous pouvez spécifier une liste des noms de colonnes séparés par des virgules pour charger les champs de données source dans des colonnes cible spécifiques. Les colonnes peuvent être dans n’importe quel ordre dans l’instruction COPY, mais lors du chargement de fichiers plats, tels que dans un compartiment Amazon S3, leur ordre doit correspondre à celui des données sources.

Lors du chargement d’une table Amazon DynamoDB, l’ordre n’importe pas La commande COPY met en correspondance les noms d’attribut des éléments extraits de la table DynamoDB et les noms de colonne de la table Amazon Redshift. Pour plus d'informations, consultez Chargement de données à partir d’une table Amazon DynamoDB

Le format d’une liste de colonnes est le suivant.

COPY tablename (column1 [,column2, ...])

Si une colonne dans la table cible est absente de la liste de colonnes, la commande COPY charge l’expression DEFAULT de la colonne cible.

Si la colonne cible n’a pas de valeur par défaut, la commande COPY tente de charger NULL.

Si la commande COPY tente d’affecter NULL à une colonne qui est définie comme NOT NULL, elle échoue.

Si une colonne IDENTITY est incluse dans la liste de colonnes, EXPLICIT_IDS doit également être spécifié ; si une colonne IDENTITY n’est pas spécifiée, EXPLICIT_IDS ne peut pas être spécifié. Si aucune liste de la colonne n’est spécifiée, la commande se comporte comme si une liste de colonnes complète, dans l’ordre, a été spécifiée, avec les colonnes IDENTITY omises si EXPLICIT_IDS n’a pas non plus été spécifié.

Si une colonne est définie avec GENERATED BY DEFAULT AS IDENTITY, elle peut être copiée. Les valeurs sont générées ou mises à jour avec des valeurs que vous fournissez. L’option EXPLICIT_IDS n’est pas obligatoire. COPY ne met pas à jour le filigrane élevé d’identité. Pour plus d'informations, consultez GENERATED BY DEFAULT AS IDENTITY.

Fichier JSONPaths

Lors du chargement des fichiers de données au format JSON ou Avro, la commande COPY mappe automatiquement les éléments de données aux données source JSON ou Avro dans les colonnes de la table cible. Pour ce faire, elle met en correspondance les noms de champs du schéma Avro avec les noms de colonnes de la liste de tables ou de colonnes cible.

Dans certains cas, vos noms de colonnes et de champs ne correspondent pas, ou vous devez mapper à des niveaux plus profonds de la hiérarchie de données. Dans ces cas-là, vous pouvez utiliser un fichier JSONPaths pour mapper explicitement les éléments de données JSON ou Avro aux colonnes.

Pour plus d'informations, consultez Fichier JSONPaths.