Azure Cosmos DBのデータをPythonを使ってJSON形式でエクスポートする方法

2024/04/09に公開

やること

Azure Cosmos DBのデータをPythonを使ってJSON形式でエクスポートする

必要なパッケージのinstall

Cosmos DB とのやり取りには、Azure Cosmos DB の Python SDK が必要です。
以下のコマンドを使用してインストールを行う。

pip install azure-cosmos

code

以下のスクリプトは、Cosmos DB 内のすべてのコンテナからデータをクエリし、それぞれのコンテナ名をファイル名として使用してJSON形式でローカルに保存します

from azure.cosmos import CosmosClient, exceptions, PartitionKey
import json

# Cosmos DB 接続情報
url = "YOUR_COSMOS_DB_ACCOUNT_URL"
key = "YOUR_COSMOS_DB_ACCOUNT_KEY"
database_name = "YOUR_DATABASE_NAME"

# CosmosClient インスタンスの作成
client = CosmosClient(url, credential=key)

# データベースの取得
database = client.get_database_client(database_name)

# データベース内の全コンテナのリストを取得
containers_list = database.list_containers()
containers_names = [container['id'] for container in containers_list]

# 各コンテナからデータを取得し、ローカルに保存
for container_name in containers_names:
    container = database.get_container_client(container_name)
    
    # クエリの実行
    query = "SELECT * FROM c"
    items = list(container.query_items(query, enable_cross_partition_query=True))
    
    # データのローカルへの保存 (コンテナ名をファイル名に使用)
    file_name = f'{container_name}.json'
    with open(file_name, 'w') as f:
        json.dump(items, f)
    
    print(f"{container_name} のデータのエクスポートが完了しました。ファイル名: {file_name}")

print("全てのコンテナからのデータのエクスポートが完了しました。")

パラメータ

  • "YOUR_COSMOS_DB_ACCOUNT_URL": CosmosDBのURIに置き換えてください。
  • "YOUR_COSMOS_DB_ACCOUNT_KEY": CosmosDBのPRIMARY Keyに置き換えてください。
  • "YOUR_DATABASE_NAME": 対象のCosmosDBのデータベース名に置き換えてください。

注意

このスクリプトは Cosmos DB のデータを JSON 形式でエクスポートします。CSV 形式など他の形式で必要な場合は、データを適切な形式に変換する処理を追加してください。

ヘッドウォータース

Discussion