Important
Azure Cosmos DB for PostgreSQL は提供終了パスにあり、新しいプロジェクトでは推奨されなくなりました。 代わりに、次の 2 つのサービスのいずれかを使用します。
PostgreSQL ワークロードの場合: Azure Database For PostgreSQL のエラスティック クラスター機能を使用して、オープンソースの Citus 拡張機能に含まれる水平スケールアウトおよび分散 PostgreSQL 機能を使用します。 移行ガイダンスについては、 Elastic Cluster を使用した Azure Database for PostgreSQL への移行に関するページを参照してください。
NoSQL ワークロードの場合は、99.999% 可用性サービス レベル アグリーメント (SLA)、インスタント 自動スケール、および複数のリージョン間の自動フェールオーバーを含む分散データベース ソリューションに対して Azure Cosmos DB for NoSQL を使用します。
COPY コマンドは、ファイルとデータベース テーブルの間でデータを移動するために使用されます。
COPY は、ディスクへのアクセスを必要とするサーバー ベースのコマンドであり、通常はサーバー管理者に限定されます。 ただし、Azure Cosmos DB for PostgreSQL は、サービスとしてのプラットフォーム (PaaS) ソリューションとして動作します。これは、ユーザーにスーパーユーザー特権が付与されていないことを意味します。 このため、COPY コマンドはプラットフォームでは完全にはサポートされていません。
代替手段である \COPY は、実行されるコンピューターのローカル ファイル システムと直接対話しやすくする、psql およびその他のクライアント インターフェイスで使用できるコマンドです。
Azure Blob Storage のサポート
pg_azure_storage 拡張機能は、Azure Blob Storage をデータ ソースとして利用して、ディスク アクセスの制限を解消します。 この拡張機能を有効にすると、Azure Blob Storage サポートがある組み込みの COPY コマンドも拡張されます。
github_users コマンドを使用して COPY テーブルにデータを読み込む:
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 形式 |
| SMS 送信 | 1 つのテキスト値を含むファイル (大きな JSON や XML など) |
注意
サポートされている構文とオプションは、Postgres Native COPY コマンドと同様に残りますが、次の例外があります:
FREEZE [ boolean ]HEADER MATCH
COPY TO構文はまだサポートされていません。\COPYはpsqlベースのコマンドであり、Azure Blob Storage 統合をサポートしていません。\COPYは、クラスターでのインポートやエクスポートの実行を許可しますが、ネットワーク経由でのファイルの移動やコピーが必要になります。
次の手順
pg_azure_storage 拡張機能の使用の詳細をご確認ください。