Exportation de données de requête à l'aide de la fonction aws_s3.query_export_to_s3 - Amazon Aurora

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.

Exportation de données de requête à l'aide de la fonction aws_s3.query_export_to_s3

Exportez vos données PostgreSQL vers Amazon S3 en appelant la fonction aws_s3.query_export_to_s3.

Prérequis

Avant d'utiliser la fonction aws_s3.query_export_to_s3, assurez-vous de remplir les conditions préalables suivantes :

Les exemples suivants utilisent une table de base de données appelée sample_table. Ces exemples exportent les données dans un compartiment appelé amzn-s3-demo-bucket. Les exemples de table et de données sont créés avec les instructions SQL suivantes dans psql.

psql=> CREATE TABLE sample_table (bid bigint PRIMARY KEY, name varchar(80)); psql=> INSERT INTO sample_table (bid,name) VALUES (1, 'Monday'), (2,'Tuesday'), (3, 'Wednesday');

Appel de aws_s3.query_export_to_s3

Ce qui suit montre les techniques de base permettant d'appeler la fonction aws_s3.query_export_to_s3.

Ces exemples utilisent la variable s3_uri_1 pour identifier une structure contenant les informations identifiant le fichier Amazon S3. Utilisez la fonction aws_commons.create_s3_uri pour créer la structure.

psql=> SELECT aws_commons.create_s3_uri( 'amzn-s3-demo-bucket', 'sample-filepath', 'us-west-2' ) AS s3_uri_1 \gset

Bien que les paramètres varient pour les deux appels de fonction aws_s3.query_export_to_s3 suivants, les résultats sont les mêmes pour ces exemples. Toutes les lignes de la table sample_table sont exportées dans un compartiment appelé amzn-s3-demo-bucket.

psql=> SELECT * FROM aws_s3.query_export_to_s3('SELECT * FROM sample_table', :'s3_uri_1'); psql=> SELECT * FROM aws_s3.query_export_to_s3('SELECT * FROM sample_table', :'s3_uri_1', options :='format text');

Les paramètres sont décrits comme suit :

  • 'SELECT * FROM sample_table' – Le premier paramètre est une chaîne de texte obligatoire contenant une requête SQL. Le moteur PostgreSQL exécute cette requête. Les résultats de la requête sont copiés dans le compartiment S3 identifié dans d'autres paramètres.

  • :'s3_uri_1' – Ce paramètre est une structure qui identifie le fichier Amazon S3. Cet exemple utilise une variable pour identifier la structure créée précédemment. Vous pouvez plutôt créer la structure en incluant l'appel de fonction aws_commons.create_s3_uri en ligne dans l'appel de fonction aws_s3.query_export_to_s3 comme suit.

    SELECT * from aws_s3.query_export_to_s3('select * from sample_table', aws_commons.create_s3_uri('amzn-s3-demo-bucket', 'sample-filepath', 'us-west-2') );
  • options :='format text' – Le paramètre options est une chaîne de texte facultative contenant des arguments COPY PostgreSQL. Le processus de copie utilise les arguments et le format de la commande PostgreSQL COPY.

Si le fichier spécifié n'existe pas dans le compartiment Amazon S3, il est créé. Si le fichier existe déjà, il est remplacé. La syntaxe d'accès aux données exportées dans Amazon S3 est la suivante.

s3-region://bucket-name[/path-prefix]/file-prefix

Les exportations les plus volumineuses sont stockées dans plusieurs fichiers, chacun ayant une taille maximale d'environ 6 Go. Les noms de fichiers supplémentaires ont le même préfixe de fichier mais en ajoutant _partXX. XX représente 2, puis 3, et ainsi de suite. Par exemple, supposons que vous spécifiiez le chemin d'accès où vous stockez les fichiers de données comme suit.

s3-us-west-2://amzn-s3-demo-bucket/my-prefix

Si l'exportation doit créer trois fichiers de données, le compartiment Amazon S3 contient les fichiers de données suivants.

s3-us-west-2://amzn-s3-demo-bucket/my-prefix s3-us-west-2://amzn-s3-demo-bucket/my-prefix_part2 s3-us-west-2://amzn-s3-demo-bucket/my-prefix_part3

Pour obtenir la référence complète de cette fonction et les moyens supplémentaires de l'appeler, veuillez consulter aws_s3.query_export_to_s3. Pour plus d'informations sur l'accès aux fichiers dans Amazon S3, consultez Afficher un objet dans le Guide de l'utilisateur Amazon Simple Storage Service.

Exportation vers un fichier CSV qui utilise un délimiteur personnalisé

L'exemple suivant montre comment appeler la fonction aws_s3.query_export_to_s3 pour exporter des données vers un fichier qui utilise un délimiteur personnalisé. L'exemple utilise les arguments de la commande PostgreSQL COPY pour spécifier le format CSV (valeur séparée par des virgules) et un délimiteur deux-points ( :).

SELECT * from aws_s3.query_export_to_s3('select * from basic_test', :'s3_uri_1', options :='format csv, delimiter $$:$$');

Exportation vers un fichier binaire avec encodage

L'exemple suivant montre comment appeler la fonction aws_s3.query_export_to_s3 pour exporter des données vers un fichier binaire ayant un encodage Windows-1253.

SELECT * from aws_s3.query_export_to_s3('select * from basic_test', :'s3_uri_1', options :='format binary, encoding WIN1253');