Verwenden des COPY Befehls mit Aurora Postgre SQL Limitless Database - 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.

Verwenden des COPY Befehls mit Aurora Postgre SQL Limitless Database

Sie können die Funktion\ copy im psql Hilfsprogramm verwenden, um Daten in Aurora Postgre SQL Limitless Database zu importieren und Daten aus dieser zu exportieren.

Verwenden des COPY Befehls zum Laden von Daten in die Aurora Postgre SQL Limitless Database

Aurora Postgre SQL Limitless Database ist mit der\ Copy-Funktion des psql Dienstprogramms zum Importieren von Daten kompatibel.

In Limitless Database wie in Aurora Postgre SQL wird Folgendes nicht unterstützt:

  • Direkter SSH Zugriff auf DB-Instances — Sie können keine Datendatei (z. B. im CSV-Format) auf den DB-Instance-Host kopieren und von der Datei COPY aus ausführen.

  • Lokale Dateien auf der DB-Instance verwenden — Verwenden Sie COPY ... FROM STDIN undCOPY ... TO STDOUT.

Der COPY Befehl in Postgre SQL bietet Optionen für die Arbeit mit lokalen Dateien (FROM/TO) und die Übertragung von Daten über eine Verbindung zwischen dem Client und dem Server (STDIN/STDOUT). Weitere Informationen finden Sie COPYin der Postgre-Dokumentation. SQL

Der \copy Befehl im SQL psql Postgre-Hilfsprogramm funktioniert mit lokalen Dateien auf dem Computer, auf dem Sie den psql Client ausführen. Er ruft den entsprechenden COPY ... FROM STDOUT Befehl COPY ... FROM STDIN oder auf dem Remote-Server (z. B. Limitless Database) auf, zu dem Sie eine Verbindung herstellen. Es liest Daten aus der lokalen Datei in STDIN oder schreibt von dort in sie. STDOUT

Daten in mehrere Dateien aufteilen

Daten werden auf mehreren Shards in der Aurora Postgre SQL Limitless Database gespeichert. Um das Laden von Daten zu beschleunigen\copy, können Sie Ihre Daten in mehrere Dateien aufteilen. Importieren Sie dann unabhängig für jede Datendatei, indem Sie separate \copy Befehle parallel ausführen.

Sie haben beispielsweise eine Eingabedatendatei im CSV Format mit 3 Millionen zu importierenden Zeilen. Sie können die Datei in Blöcke aufteilen, die jeweils 200.000 Zeilen (15 Blöcke) enthalten:

split -l200000 data.csv data_ --additional-suffix=.csv -d

Dies führt zu Dateien durch. data_00.csv data_14.csv Anschließend können Sie Daten mit 15 parallel \copy Befehlen importieren, zum Beispiel:

psql -h dbcluster.limitless-111122223333.aws-region.rds.amazonaws.com -U username -c "\copy test_table from '/tmp/data_00.csv';" postgres_limitless & psql -h dbcluster.limitless-111122223333.aws-region.rds.amazonaws.com -U username -c "\copy test_table FROM '/tmp/data_01.csv';" postgres_limitless & ... psql -h dbcluster.limitless-111122223333.aws-region.rds.amazonaws.com -U username -c "\copy test_table FROM '/tmp/data_13.csv';" postgres_limitless & psql -h dbcluster.limitless-111122223333.aws-region.rds.amazonaws.com -U username -c "\copy test_table FROM '/tmp/data_14.csv';" postgres_limitless

Mit dieser Technik wird dieselbe Datenmenge etwa zehnmal schneller importiert als mit einem einzigen \copy Befehl.

Verwenden Sie den COPY Befehl, um Limitless Database-Daten in eine Datei zu kopieren

Sie können den Befehl\ copy verwenden, um Daten aus einer unbegrenzten Tabelle in eine Datei zu kopieren, wie im folgenden Beispiel gezeigt:

postgres_limitless=> \copy test_table TO '/tmp/test_table.csv' DELIMITER ',' CSV HEADER;