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

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 SQL données Postgre vers Amazon S3 en appelant la aws_s3.query_export_to_s3 fonction.

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. La table et les données d'exemple sont créées avec les SQL instructions 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 sample_table table sont exportées dans un bucket 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 SQL requête. Le SQL moteur Postgre 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 options paramètre est une chaîne de texte facultative contenant des SQL COPY arguments Postgre. Le processus de copie utilise les arguments et le format de la SQL COPY commande Postgre.

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 CSV fichier utilisant 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 SQL COPY commande Postgre pour spécifier le format de valeurs séparées par des virgules (CSV) et un séparateur de 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');