View a markdown version of this page

COPIER avec TEMPLATE - Amazon Redshift

Amazon Redshift ne prendra plus en charge la création de nouveaux Python à UDFs partir du patch 198. UDFs Le Python existant continuera de fonctionner jusqu'au 30 juin 2026. Pour plus d’informations, consultez le billet de blog .

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.

COPIER avec TEMPLATE

Vous pouvez utiliser les modèles Redshift avec les commandes COPY pour simplifier la syntaxe des commandes et garantir la cohérence des opérations de chargement de données. Au lieu de spécifier les mêmes paramètres de mise en forme à plusieurs reprises, vous les définissez une fois dans un modèle et vous référencez le modèle dans vos commandes COPY. Lorsque vous utilisez un modèle, la commande COPY combine les paramètres du modèle avec tous les paramètres spécifiés directement dans la commande. Si le même paramètre apparaît à la fois dans le modèle et dans la commande, le paramètre de commande est prioritaire. Pour de plus amples informations, veuillez consulter CRÉER UN MODÈLE.

Les modèles pour la commande COPY peuvent être créés avec :

Pour une liste complète des paramètres pris en charge, voir COPY commande.

Autorisation obligatoire

Pour utiliser un modèle dans une commande COPY, vous devez disposer des éléments suivants :

  • Toutes les autorisations requises pour exécuter la commande COPY (voirAutorisations requises)

  • L'une des autorisations de modèle suivantes :

    • Privilèges de superutilisateur

    • Privilège USAGE sur le modèle et privilège USAGE sur le schéma contenant le modèle

Syntaxe

COPY target_table FROM 's3://...' authorization [ option, ...] USING TEMPLATE [database_name.][schema_name.]template_name;

Parameters

database_name

(Facultatif) Nom de la base de données dans laquelle le modèle existe. Si elle n'est pas spécifiée, la base de données actuelle est utilisée.

nom_schéma

(Facultatif) Nom du schéma dans lequel le modèle existe. S'il n'est pas spécifié, le modèle est recherché dans le chemin de recherche actuel.

nom_modèle

Nom du modèle à utiliser dans COPY.

Notes d’utilisation

  • Les paramètres spécifiques à la commande (source, destination, autorisation) doivent toujours être spécifiés dans la commande COPY.

  • Les modèles ne peuvent pas contenir de spécifications de fichier manifeste pour les commandes COPY.

Exemples

Les exemples suivants montrent comment créer un modèle et l'utiliser dans les commandes COPY :

CREATE TEMPLATE public.test_template FOR COPY AS CSV DELIMITER '|' IGNOREHEADER 1 MAXERROR 100; COPY public.target_table FROM 's3://amzn-s3-demo-bucket/staging-folder' IAM_ROLE 'arn:aws:iam::123456789012:role/MyLoadRoleName' USING TEMPLATE public.test_template;

Lorsqu'un paramètre existe à la fois dans le modèle et dans la commande, le paramètre de commande est prioritaire. Dans cet exemple, si le modèle public.test_template contient DELIMITER '|' mais que la commande COPY le spécifieDELIMITER ',', le séparateur de virgule (,) de la commande sera utilisé à la place du séparateur de canaux (|) du modèle.

COPY public.target_table FROM 's3://amzn-s3-demo-bucket/staging-folder' IAM_ROLE 'arn:aws:iam::123456789012:role/MyLoadRoleName' DELIMITER ',' USING TEMPLATE public.test_template;