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
Argomenti
Prerequisiti
Prima di utilizzare la funzione aws_s3.query_export_to_s3
, assicurati di completare i seguenti prerequisiti:
-
Installa le estensioni Postgre SQL richieste come descritto in. Panoramica dell'esportazione di dati in Amazon S3
-
Determina dove esportare i dati in Amazon S3 come descritto in Specifica del percorso del file Amazon S3 in cui eseguire l'esportazione.
-
Assicurati che l’istanza database abbia accesso di esportazione a Amazon S3 come descritto in Configurazione dell'accesso a un bucket Simple Storage Service (Amazon S3).
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 funzioneaws_commons.create_s3_uri
in linea all'interno della chiamata di funzioneaws_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'
— Iloptions
parametro è una stringa di testo opzionale contenente argomenti SQLCOPY
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 _part
. XX
rappresenta 2, poi 3 e così via. Ad esempio, supponi di specificare il percorso in cui archivi i file di dati come segue.XX
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
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');