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.
Rubriques
Prérequis
Avant d'utiliser la fonction aws_s3.query_export_to_s3
, assurez-vous de remplir les conditions préalables suivantes :
-
Installez les SQL extensions Postgre requises comme décrit dansPrésentation de l'exportation de données vers Amazon S3.
-
Déterminez vers quel emplacement Amazon S3 exporter vos données comme décrit dans Spécification du chemin d'accès au fichier Amazon S3 vers lequel effectuer l'exportation.
-
Assurez-vous que l'instance de base de données dispose d'un accès à Amazon S3 comme décrit dans Configuration de l'accès à un compartiment Amazon S3.
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 fonctionaws_commons.create_s3_uri
en ligne dans l'appel de fonctionaws_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'
— Leoptions
paramètre est une chaîne de texte facultative contenant des SQLCOPY
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 _part
. 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.XX
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
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');