Esportazione dei dati della query utilizzando la funzione aws_s3.query_export_to_s3 - Amazon Relational Database Service

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Esportazione dei dati della query utilizzando la funzione aws_s3.query_export_to_s3

Esporta i tuoi SQL dati Postgre in Amazon S3 chiamando la funzione. aws_s3.query_export_to_s3

Prerequisiti

Prima di utilizzare la funzione aws_s3.query_export_to_s3, assicurati di completare i seguenti prerequisiti:

Gli esempi seguenti utilizzano una tabella del database denominata sample_table. Questi esempi esportano i dati in un bucket chiamato amzn-s3-demo-bucket. La tabella e i dati di esempio vengono creati con le seguenti SQL istruzioni in 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');

Chiamare aws_s3.query_export_to_s3

Di seguito vengono illustrati le modalità di base per chiamare la funzione aws_s3.query_export_to_s3.

In questi esempi viene utilizzata la variabile s3_uri_1 per identificare una struttura contenente le informazioni che identificano il file Amazon S3. Utilizzare la funzione aws_commons.create_s3_uri per creare la struttura.

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

Anche se i parametri variano per le due chiamate di funzione aws_s3.query_export_to_s3 seguenti, i risultati sono gli stessi per questi esempi. Tutte le righe della sample_table tabella vengono esportate in un bucket chiamato 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');

I parametri sono descritti come segue:

  • 'SELECT * FROM sample_table'— Il primo parametro è una stringa di testo obbligatoria contenente una SQL query. Il SQL motore Postgre esegue questa query. I risultati della query vengono copiati nel bucket S3 identificato in altri parametri.

  • :'s3_uri_1' – Questo parametro è una struttura che identifica il file Amazon S3. In questo esempio viene utilizzata una variabile per identificare la struttura creata in precedenza. È invece possibile creare la struttura includendo la chiamata di funzione aws_commons.create_s3_uri in linea all'interno della chiamata di funzione aws_s3.query_export_to_s3 come segue.

    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'— Il options parametro è una stringa di testo opzionale contenente argomenti SQL COPY Postgre. Il processo di copia utilizza gli argomenti e il formato del comando SQLCOPYPostgre.

Se il file specificato non esiste nel bucket Amazon S3, viene creato. Se il file esiste già, viene sovrascritto. La sintassi per accedere ai dati esportati Amazon S3 è la seguente.

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

Esportazioni di dimensioni maggiori vengono archiviate in più file, ciascuno con una dimensione massima di circa 6 GB. I nomi di file aggiuntivi hanno lo stesso prefisso di file ma con l'aggiunta di _partXX. XX rappresenta 2, poi 3 e così via. Ad esempio, supponi di specificare il percorso in cui archivi i file di dati come segue.

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

Se l'esportazione deve creare tre file di dati, il bucket Amazon S3 contiene i seguenti file di dati.

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

Per il riferimento completo per questa funzione e altri modi per chiamarla, consulta aws_s3.query_export_to_s3. Per ulteriori informazioni sull'accesso ai file in Amazon S3, consulta Visualizzazione di un oggetto nella Guida per l'utente di Amazon Simple Storage Service.

Esportazione in un CSV file che utilizza un delimitatore personalizzato

Nell'esempio seguente viene illustrato come chiamare la funzione aws_s3.query_export_to_s3 per esportare i dati in un file che utilizza un delimitatore personalizzato. L'esempio utilizza gli argomenti del SQL COPY comando Postgre per specificare il formato del valore separato da virgole (CSV) e un delimitatore di due punti (:).

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

Esportazione in un file binario con codifica

Nell'esempio seguente viene illustrato come chiamare la funzione aws_s3.query_export_to_s3 per esportare i dati in un file binario con codifica Windows-1253.

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