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.
Exportieren von Abfragedaten mithilfe der Funktion aws_s3.query_export_to_s3
Exportieren Sie Ihre SQL Postgre-Daten nach Amazon S3, indem Sie die aws_s3.query_export_to_s3 Funktion aufrufen.
Themen
Voraussetzungen
Bevor Sie die aws_s3.query_export_to_s3
-Funktion verwenden, müssen Sie die folgenden Voraussetzungen erfüllen:
-
Installieren Sie die erforderlichen SQL Postgre-Erweiterungen wie unter beschrieben. Übersicht über das Exportieren von Daten zu Amazon S3
-
Legen Sie fest, wohin die Daten nach Amazon S3 exportiert werden sollen, wie unter beschriebe Angeben des Amazon S3-Dateipfads für den Export.
-
Stellen Sie sicher, dass die Exportzugriff auf Amazon S3 hat (wie unter Einrichten des Zugriffs auf einen Amazon S3-Bucket beschrieben).
In den folgenden Beispielen wird eine Datenbanktabelle namens verwende sample_table
. In diesen Beispielen werden die Daten in einen Bucket mit dem Namen exportiert amzn-s3-demo-bucket
. Die Beispieltabelle und die Daten werden mit den folgenden SQL Anweisungen in psql erstellt.
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');
Aufruf von aws_s3.query_export_to_s3
Im Folgenden werden die grundlegenden Möglichkeiten zum Aufrufen der aws_s3.query_export_to_s3-Funktion dargestellt.
In diesen Beispielen wird die Variable s3_uri_1
zum Identifizieren einer Struktur verwendet, die die Informationen zur Identifizierung der Amazon S3-Datei enthält. Verwenden Sie die Funktion aws_commons.create_s3_uri, um die Struktur zu erstellen.
psql=> SELECT aws_commons.create_s3_uri( '
amzn-s3-demo-bucket
', 'sample-filepath', 'us-west-2' ) AS s3_uri_1 \gset
Obwohl die Parameter für die folgenden zwei aws_s3.query_export_to_s3
-Funktionsaufrufe unterschiedlich sind, sind die Ergebnisse für diese Beispiele identisch. Alle Zeilen der sample_table
Tabelle werden in einen Bucket namens exportiert 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');
Die Parameter werden wie folgt beschrieben:
-
'SELECT * FROM sample_table'
— Der erste Parameter ist eine erforderliche Textzeichenfolge, die eine SQL Abfrage enthält. Die SQL Postgre-Engine führt diese Abfrage aus. Die Ergebnisse der Abfrage werden in den S3-Bucket kopiert, der in anderen Parametern identifiziert wurde. -
:'s3_uri_1'
– Dieser Parameter ist eine Struktur, die die Datei Amazon S3 identifiziert. In diesem Beispiel wird die zuvor erstellte Struktur anhand einer Variablen identifiziert. Sie können die Struktur stattdessen erstellen, indem Sie den Funktionsaufrufaws_commons.create_s3_uri
wie folgt inline in den Funktionsaufrufaws_s3.query_export_to_s3
einschließen.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'
— Deroptions
Parameter ist eine optionale Textzeichenfolge, die Postgre-Argumente enthält. SQLCOPY
Der Kopiervorgang verwendet die Argumente und das Format des Postgre-Befehls. SQL COPY
Wenn die angegebene Datei nicht im Amazon S3-Bucket vorhanden ist, wird sie erstellt. Wenn die Datei bereits vorhanden ist, wird sie überschrieben. Die Syntax für den Zugriff auf die exportierten Daten in Amazon S3 ist die folgende.
s3-
region
://bucket-name
[/path-prefix
]/file-prefix
Größere Exporte werden in mehreren Dateien gespeichert, jeweils mit einer maximalen Größe von ca. 6 GB. Die zusätzlichen Dateinamen haben das gleiche Dateipräfix, aber mit _part
angefügt. XX
stellt 2, dann 3 usw. dar. Angenommen, Sie geben den Pfad, in dem Sie Datendateien speichern, wie folgt an.XX
s3-us-west-2://
amzn-s3-demo-bucket
/my-prefix
Wenn der Export drei Datendateien anlegen muss, enthält der Amazon S3-Bucket die folgenden Datendateien.
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
Die vollständige Referenz für diese Funktion und weitere Aufrufmöglichkeiten finden Sie unter aws_s3.query_export_to_s3. Weitere Informationen zum Zugriff auf Dateien in Amazon S3 finden Sie unter View an object im Amazon Simple Storage Service User Guide.
Exportieren in eine CSV Datei, die ein benutzerdefiniertes Trennzeichen verwendet
Das folgende Beispiel zeigt, wie die aws_s3.query_export_to_s3-Funktion zum Exportieren von Daten in eine Datei aufgerufen wird, die ein benutzerdefiniertes Trennzeichen verwendet. In diesem Beispiel werden Argumente des SQL COPY Befehls Postgre
SELECT * from aws_s3.query_export_to_s3('select * from basic_test', :'s3_uri_1', options :='format csv, delimiter $$:$$');
Exportieren in eine Binärdatei mit Codierung
Das folgende Beispiel zeigt, wie die aws_s3.query_export_to_s3-Funktion zum Exportieren von Daten in eine Binärdatei mit Windows-1253-Codierung aufgerufen wird.
SELECT * from aws_s3.query_export_to_s3('select * from basic_test', :'s3_uri_1', options :='format binary, encoding WIN1253');