次の方法で共有


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 構文はまだサポートされていません。

  • \COPYpsql ベースのコマンドであり、Azure Blob Storage 統合をサポートしていません。

  • \COPY は、クラスターでのインポートやエクスポートの実行を許可しますが、ネットワーク経由でのファイルの移動やコピーが必要になります。

次の手順

pg_azure_storage 拡張機能の使用の詳細をご確認ください。