Pythonでazure-cosmosを用いてAzure Cosmos DBデータベース内のコンテナにデータを挿入・登録する

スポンサーリンク

Pythonでazure-cosmosを用いてAzure Cosmos DBデータベース内のコンテナにデータを挿入・登録してみます。

この記事は「Pythonでazure-cosmosを用いてAzure Cosmos DBデータベース内にコンテナを作成する」という記事の続きでもあります。

なお、今回もazure-cosmosを用います。このライブラリ・モジュールはPythonの標準ライブラリではありませんので、事前にインストールする必要があります。

■Python

今回のPythonのバージョンは、「3.8.5」を使用しています。(Windows10)(pythonランチャーでの確認)

■仮想環境に入る

今回はazure-cosmosを用いてAzure Cosmos DBデータベース内のコンテナにデータを挿入・登録しますが、まずWindows10のコマンドプロンプトを起動します。

C:\Users\user_>cd azure-cosmos-example

作成後、上記のコマンドを入力し、Enterキーを押します。「cd」コマンドで「azure-cosmos-example」ディレクトリ内に移動します。

■仮想環境への切り替え

C:\Users\user_\azure-cosmos-example>.venv\Scripts\activate.bat

移動後、上記のコマンドを入力し、Enterキーを押します。仮想環境のディレクトリ内に作成された activateスクリプトを実行し、仮想環境に入ります。今回は仮想環境下でazure-cosmosをインストールしていますので、仮想環境に入ります。

(.venv) C:\Users\user_\azure-cosmos-example>

Enterキーを押すと、「(.venv)」と表示されます。これで仮想環境に入ることができました。

■azure-cosmosを用いてAzure Cosmos DBデータベース内にコンテナを作成する

仮想環境に入った後に「azure-cosmos-example」ディレクトリ内に「test_db_data.py」というスクリプトファイルを作成します。作成後、コードエディタを開き、ファイル内のコードを記述していきます。

■コード

from azure.cosmos import CosmosClient
URL = "URI"
KEY = "プライマリキー"
client = CosmosClient(URL, credential=KEY)
DATABASE_NAME = 'test_db'
database = client.get_database_client(DATABASE_NAME)
CONTAINER_NAME = 'test_1'
container = database.get_container_client(CONTAINER_NAME)

container.upsert_item({
    'id': 'item1',
    'test_Name':'田中',
    'test_model':'Model1'
    }
)

from importでazure.cosmosのCosmosClientを呼び出します。その後、URLとKEYという変数を定義し、その中にURLとプライマリキーを格納します。(読み取り/書き込みキーとURLの取得

その後、clientという変数を定義し、その中でCosmosClient()を用います。括弧内には、第1の引数,パラメータとしてURL変数を渡します。次に第2の引数,パラメータとしてKEYを渡します。これでCosmosClient の初期化を行います。

CosmosClient の初期化設定後、DATABASE_NAMEという変数を定義し、その中にデータベースの名前を格納します。今回は「Pythonでazure-cosmosを用いてAzure Cosmos DBデータベースを作成する」で作成した「test_db」を格納します。

格納後、databaseという変数を定義し、その中でclient.get_database_client()を用います。括弧内には引数,パラメータとしてDATABASE_NAME変数を渡します。これで既存のデータベース(test_db)を取得されます。取得された情報が、database変数に格納されます。

格納後、CONTAINER_NAMEという変数を定義し、その中にデータを挿入・登録するコンテナの名前を格納します。今回は「Pythonでazure-cosmosを用いてAzure Cosmos DBデータベース内にコンテナを作成する」で作成した「test_1」を格納します。

格納後、containerという変数を定義し、その中でdatabase.get_container_client()を用います。括弧内には引数,パラメータとしてCONTAINER_NAME変数を渡します。これで引数,パラメータで渡した変数内の情報(ID・名前)を持つコンテナーを取得し、container変数内に格納します。

格納後、container.upsert_item()を用います。括弧内には引数,パラメータとしてコンテナに追加する辞書(データ)を渡します。なお、コンテナに追加する各要素(アイテム)は、コンテナ内で要素(アイテム)を一意に識別するため”id”キーを含める必要がある。なお、今回は「test_Name」というキーを設けているが、これは「Pythonでazure-cosmosを用いてAzure Cosmos DBデータベース内にコンテナを作成する」際に、PartitionKey(パーティションキー)を設定しています。辞書(データ)を渡すと、これで指定された辞書(データ)をコンテナへ挿入・登録、または更新が行われます。

最後にコードを記述後、ファイルを保存します。

■実行・検証

保存後、コマンドプロンプト上で仮想環境に入った状態でスクリプトファイルを実行してみます。

(.venv) C:\Users\user_\azure-cosmos-example>python test_db_data.py

実行してみると、何も出力されませんが、これでデータベース内のコンテナに指定された辞書(データ)が挿入・登録されました。

挿入・登録後、「Microsoft Azure Portal」の「サインイン」からサインインを行い、「サービス」の「Azure Cosmos DB」へ移動します。移動後、「Azure Cosmos DB」のページが表示されますので、ページ内から作成したAzure Cosmos DBアカウントの名前をクリックします。クリックすると、Azure Cosmos DBアカウントの「概要」などが表示されます。表示された左メニューから「データ エクスプローラー」をクリックします。クリックすると、Azure Cosmos DBデータベース内のコンテナが確認でき、さらに今回挿入・登録したデータも確認できました。

なお、今回挿入・登録したデータには日本語の文字列も含まれていたが文字化けせずに挿入・登録が行えた。

コメント

タイトルとURLをコピーしました