Exportieren von Abfragedaten mithilfe der Funktion aws_s3.query_export_to_s3 - Amazon Relational Database Service

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.

Voraussetzungen

Bevor Sie die aws_s3.query_export_to_s3-Funktion verwenden, müssen Sie die folgenden Voraussetzungen erfüllen:

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 Funktionsaufruf aws_commons.create_s3_uri wie folgt inline in den Funktionsaufruf aws_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'— Der options Parameter ist eine optionale Textzeichenfolge, die Postgre-Argumente enthält. SQL COPY 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 _partXX angefügt. XX stellt 2, dann 3 usw. dar. Angenommen, Sie geben den Pfad, in dem Sie Datendateien speichern, wie folgt an.

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 verwendet, um das kommagetrennte Wertformat () und einen CSV Doppelpunkt (:) anzugeben.

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