Daten von Amazon S3 in Ihren Aurora SQL Postgre-DB-Cluster importieren - Amazon Aurora

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Daten von Amazon S3 in Ihren Aurora SQL Postgre-DB-Cluster importieren

Sie importieren Daten aus Ihrem Amazon-S3-Bucket mithilfe der table_import_from_s3-Funktion der aws_s3-Erweiterung. Referenzinformationen finden Sie unter aws_s3.table_import_from_s3.

Anmerkung

In den folgenden Beispielen wird die IAM Role-Methode verwendet, um den Zugriff auf den Amazon S3 S3-Bucket zu ermöglichen. Daher enthalten die aws_s3.table_import_from_s3-Funktionsaufrufe keine Berechtigungsnachweisparameter.

Nachfolgend ist ein typisches Beispiel aufgeführt.

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

Es werden folgende Parameter verwendet:

  • t1— Der Name für die Tabelle in der SQL , in die die Daten kopiert werden sollen.

  • '' – Eine optionale Liste mit Spalten in der Datenbanktabelle. Mithilfe dieses Parameters können Sie angeben, welche Spalten der S3-Daten in die Tabellenspalten übernommen werden sollen. Wenn keine Spalten angegeben sind, werden alle Spalten in die Tabelle kopiert. Ein Beispiel zum Verwenden einer Spaltenliste finden Sie unter Importieren einer Amazon S3-Datei, die ein benutzerdefiniertes Trennzeichen verwendet.

  • (format csv)— Postgre-Argumente SQLCOPY. Der Kopiervorgang verwendet die Argumente und das Format des SQLCOPYPostgre-Befehls, um die Daten zu importieren. Als Format stehen, wie in diesem Beispiel gezeigt, kommagetrennte Werte (CSV), Text und Binärformat zur Auswahl. Der Standard ist Text.

  • s3_uri – Eine Struktur mit den Informationen zum Identifizieren der Amazon S3-Datei. Ein Beispiel für die Verwendung der Funktion aws_commons.create_s3_uri zum Erstellen einer s3_uri-Struktur finden Sie unter Übersicht über den Import von Daten aus Amazon S3-Daten.

Weitere Informationen zu dieser Funktion finden Sie unter aws_s3.table_import_from_s3.

Die Funktion gibt aws_s3.table_import_from_s3 zurück. Weitere Informationen zum Angeben von anderen Dateien für den Import aus einem Amazon S3-Bucket finden Sie in einem der folgenden Beispiele.

Anmerkung

Beim Importieren einer Datei mit 0 Byte tritt ein Fehler auf.

Importieren einer Amazon S3-Datei, die ein benutzerdefiniertes Trennzeichen verwendet

Das folgende Beispiel zeigt, wie man eine Datei importiert, die ein benutzerdefiniertes Trennzeichen verwendet. Außerdem wird veranschaulicht, wie mit dem column_list-Parameter der Funktion aws_s3.table_import_from_s3 kontrolliert wird, wo die Daten in der Datenbanktabelle platziert werden.

Für dieses Beispiel wird angenommen, dass die folgenden Informationen in durch Pipe-Zeichen getrennte Spalten in der Amazon S3-Datei angeordnet sind.

1|foo1|bar1|elephant1 2|foo2|bar2|elephant2 3|foo3|bar3|elephant3 4|foo4|bar4|elephant4 ...
So importieren Sie eine Datei, die ein benutzerdefiniertes Trennzeichen verwendet:
  1. Erstellen Sie eine Tabelle in der Datenbank für die importierten Daten.

    postgres=> CREATE TABLE test (a text, b text, c text, d text, e text);
  2. Verwenden Sie die folgende Form der Funktion aws_s3.table_import_from_s3, um Daten aus der Amazon S3-Datei zu importieren.

    Zur Angabe der Datei können Sie auch den Funktionsaufruf aws_commons.create_s3_uri in den Funktionsaufruf aws_s3.table_import_from_s3 einbinden.

    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') );

Die Daten befinden sich nun in den folgenden Spalten der Tabelle.

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

Importieren einer Amazon S3-komprimierten Datei (gzip)

Das folgende Beispiel zeigt, wie eine mit gzip komprimierte Datei aus Amazon S3 importiert wird. Die Datei, die Sie importieren, muss die folgenden Amazon-S3-Metadaten aufweisen:

  • Schlüssel: Content-Encoding

  • Wert: gzip

Wenn Sie die Datei mit dem hochladen AWS Management Console, werden die Metadaten in der Regel vom System übernommen. Informationen zum Hochladen von Dateien auf Amazon S3 mit dem AWS Management Console, der AWS CLI, oderAPI, siehe Hochladen von Objekten im Amazon Simple Storage Service-Benutzerhandbuch.

Weitere Informationen zu Amazon-S3-Metadaten und zu vom System bereitgestellten Metadaten finden Sie unter Bearbeiten von Objektmetadaten in der Amazon-S3-Konsole im Benutzerhandbuch für Amazon Simple Storage Service.

Importieren Sie die Gzip-Datei wie folgt in Ihren Aurora SQL Postgre-DB-Cluster RDS .

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' );

Importieren einer kodierten Amazon S3-Datei

Das folgende Beispiel zeigt, wie eine Datei aus Amazon S3 mit Windows-1252-Kodierung importiert wird.

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') );