Importazione di dati da Amazon S3 nell'istanza database RDS per PostgreSQL - 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à.

Importazione di dati da Amazon S3 nell'istanza database RDS per PostgreSQL

Importa i dati dal bucket Amazon S3 utilizzando la funzione table_import_from_s3 dell'estensione aws_s3. Per informazioni di riferimento, consulta aws_s3.table_import_from_s3.

Nota

Gli esempi seguenti utilizzano il metodo del ruolo IAM per consentire l'accesso al bucket Amazon S3. Pertanto, le chiamate della funzione aws_s3.table_import_from_s3 non includono parametri di credenziali.

Di seguito viene illustrato un tipico esempio.

postgres=> SELECT aws_s3.table_import_from_s3( 't1', '', '(format csv)', :'s3_uri' );

I parametri sono i seguenti:

  • t1 – Il nome della tabella nell'istanza database PostgreSQL in cui copiare i dati.

  • '' – Un elenco opzionale di colonne nella tabella di database. Questo parametro può essere utilizzato per indicare quali colonne di dati S3 vanno in quali colonne della tabella. Se non viene specificata alcuna colonna, tutte le colonne vengono copiate nella tabella. Per un esempio di utilizzo di un elenco di colonne, consulta Importazione di un file Amazon S3 che utilizza un delimitatore personalizzato.

  • (format csv) – Argomenti COPY di PostgreSQL. La procedura di copia utilizza gli argomenti e il formato del comando COPY di PostgreSQL per importare i dati. Le scelte di formato includono valori separati da virgole (CSV), come mostrato in questo esempio, testo e file binario. Il valore predefinito è testo.

  • s3_uri – Una struttura contenente le informazioni che identificano il file Amazon S3. Per un esempio di utilizzo della funzione aws_commons.create_s3_uri per creare una struttura s3_uri, consulta Panoramica dell'importazione di dati dai dati di Amazon S3.

Per ulteriori informazioni su questa funzione, consulta aws_s3.table_import_from_s3.

La funzione restituisce aws_s3.table_import_from_s3. Per specificare altri tipi di file da importare da un bucket Amazon S3, consulta uno dei seguenti esempi.

Nota

L'importazione di un file da 0 byte genererà un errore.

Importazione di un file Amazon S3 che utilizza un delimitatore personalizzato

Il seguente esempio mostra come importare un file che utilizza un delimitatore personalizzato. Mostra anche come controllare dove inserire i dati nella tabella di database utilizzando il parametro column_list della funzione aws_s3.table_import_from_s3.

In questo esempio si presuppone che le seguenti informazioni siano organizzate in colonne delimitate da pipe nel file Amazon S3.

1|foo1|bar1|elephant1 2|foo2|bar2|elephant2 3|foo3|bar3|elephant3 4|foo4|bar4|elephant4 ...
Per importare un file che utilizza un delimitatore personalizzato
  1. Creare una tabella nel database per i dati importati.

    postgres=> CREATE TABLE test (a text, b text, c text, d text, e text);
  2. Utilizzare il seguente formato della funzione aws_s3.table_import_from_s3 per importare i dati dal file Amazon S3.

    Si può includere la chiamata inline di funzione aws_commons.create_s3_uri all'interno della chiamata di funzione aws_s3.table_import_from_s3 per specificare il file.

    postgres=> SELECT aws_s3.table_import_from_s3( 'test', 'a,b,d,e', 'DELIMITER ''|''', aws_commons.create_s3_uri('amzn-s3-demo-bucket', 'pipeDelimitedSampleFile', 'us-east-2') );

I dati sono ora nella tabella nelle seguenti colonne.

postgres=> SELECT * FROM test; a | b | c | d | e ---+------+---+---+------+----------- 1 | foo1 | | bar1 | elephant1 2 | foo2 | | bar2 | elephant2 3 | foo3 | | bar3 | elephant3 4 | foo4 | | bar4 | elephant4

Importazione di un file compresso (gzip) Amazon S3

Il seguente esempio mostra come importare da Amazon S3 un file compresso con gzip. Il file importato deve avere i seguenti metadati Amazon S3:

  • Chiave: Content-Encoding

  • Valore: gzip

Se carichi il file utilizzando il AWS Management Console, i metadati vengono in genere applicati dal sistema. Per informazioni sul caricamento di file su Amazon S3 utilizzando AWS Management Console l', la o l'API, AWS CLIconsulta Uploading objects nella Amazon Simple Storage Service User Guide.

Per ulteriori informazioni sui metadati di Amazon S3 e i dettagli sui metadati forniti dal sistema, consulta la sezione Modifica dei metadati degli oggetti nella console Amazon S3 nella Guida per l'utente di Amazon Simple Storage Service.

Importare il file gzip in RDS per un'istanza database PostgreSQL, come illustrato di seguito.

postgres=> CREATE TABLE test_gzip(id int, a text, b text, c text, d text); postgres=> SELECT aws_s3.table_import_from_s3( 'test_gzip', '', '(format csv)', 'amzn-s3-demo-bucket', 'test-data.gz', 'us-east-2' );

Importazione di un file Amazon S3 codificato

Il seguente esempio mostra come importare da Amazon S3 un file codificato con Windows-1252

postgres=> SELECT aws_s3.table_import_from_s3( 'test_table', '', 'encoding ''WIN1252''', aws_commons.create_s3_uri('amzn-s3-demo-bucket', 'SampleFile', 'us-east-2') );