COPY-Befehl in Azure Cosmos DB for PostgreSQL
Mit dem COPY-Befehl werden Daten zwischen Dateien und Datenbanktabellen verschoben. COPY
ist ein serverbasierter Befehl, der Zugriff auf den Datenträger erfordert, der in der Regel auf Serveradministratoren beschränkt ist. Azure Cosmos DB for PostgreSQL wird jedoch als PaaS-(Platform-as-a-Service-)Lösung ausgeführt, was bedeutet, dass Benutzern keine Superuserberechtigungen gewährt werden. COPY
der Befehl wird daher auf der Plattform nicht vollständig unterstützt.
Alternativ ist \COPY
ein Befehl, der in psql
und anderen Clientschnittstellen verfügbar ist und der die direkte Interaktion mit dem lokalen Dateisystem des Computers ermöglicht, auf dem er ausgeführt wird.
Azure Blob Storage-Support
Die Erweiterung pg_azure_storage
überwindet die Datenträgerzugriffsbeschränkungen, indem Azure Blob Storage als Datenquelle genutzt wird. Wenn die Erweiterung aktiviert ist, verbessert sie auch den integrierten COPY
-Befehl mit Azure Blob Storage-Support.
Laden von Daten in eine COPY
-Tabelle mithilfe des github_users
-Befehls:
COPY github_users
FROM 'https://pgquickstart.blob.core.windows.net/github/users.csv.gz';
Die Erweiterung unterstützt derzeit die folgenden Dateiformate:
format | description |
---|---|
csv | Durch Komma getrenntes Format für Werte, das von PostgreSQL COPY verwendet wird |
tsv | Durch Tabstopp getrennte Werte – das Standardformat PostgreSQL COPY |
BINARY | Format Binary PostgreSQL COPY |
text | Datei mit einem einzelnen Textwert (z. B. große JSON oder XML) |
Hinweis
Syntax und Optionen, die unterstützt werden, bleiben mit folgenden Ausnahmen dem Postgres Native COPY-Befehl gleich:
FREEZE [ boolean ]
HEADER MATCH
Die Syntax „
COPY TO
“ wird nicht unterstützt.\COPY
ist ein aufpsql
basierender Befehl, der die Azure Blob Storage-Integration nicht unterstützt.\COPY
ermöglicht das Ausführen von Import\Export im Cluster, erfordert jedoch das Verschieben/Kopieren von Dateien über das Netzwerk.
Nächste Schritte
Erfahren Sie mehr über die Verwendung der Erweiterung „pg_azure_storage“.