Azure Cosmos DB for PostgreSQL の COPY コマンド
COPY コマンドは、ファイルとデータベース テーブルの間でデータを移動するために使用されます。 COPY
は、ディスクへのアクセスを必要とするサーバー ベースのコマンドであり、通常はサーバー管理者に限定されます。 ただし、Azure Cosmos DB for PostgreSQL は、サービスとしてのプラットフォーム (PaaS) ソリューションとして動作します。これは、ユーザーにスーパーユーザー特権が付与されていないことを意味します。 このため、COPY
コマンドはプラットフォームでは完全にはサポートされていません。
代替手段である \COPY
は、実行されるコンピューターのローカル ファイル システムと直接対話しやすくする、psql
およびその他のクライアント インターフェイスで使用できるコマンドです。
Azure Blob Storage のサポート
pg_azure_storage
拡張機能は、Azure Blob Storage をデータ ソースとして利用して、ディスク アクセスの制限を解消します。 この拡張機能を有効にすると、Azure Blob Storage サポートがある組み込みの COPY
コマンドも拡張されます。
COPY
コマンドを使用して github_users
テーブルにデータを読み込む:
COPY github_users
FROM 'https://pgquickstart.blob.core.windows.net/github/users.csv.gz';
現在、この拡張機能は次のファイル形式をサポートしています。
format | description |
---|---|
csv | PostgreSQL COPY で使用されるコンマ区切りの値の形式 |
tsv | タブ区切りの値 (PostgreSQL COPY の既定形式) |
binary | バイナリ PostgreSQL COPY 形式 |
text | 1 つのテキスト値を含むファイル (大きな JSON や XML など) |
注意
サポートされている構文とオプションは、Postgres Native COPY コマンドと同様に残りますが、次の例外があります:
FREEZE [ boolean ]
HEADER MATCH
COPY TO
構文はまだサポートされていません。\COPY
はpsql
ベースのコマンドであり、Azure Blob Storage 統合をサポートしていません。\COPY
は、クラスターでのインポートやエクスポートの実行を許可しますが、ネットワーク経由でのファイルの移動やコピーが必要になります。
次の手順
pg_azure_storage 拡張機能の使用の詳細をご確認ください。