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」ディレクトリ内に「db_data_delete.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.delete_item(item="item1",partition_key="田中")

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に対して、delete_item()を用います。括弧内には、第1の引数,パラメータとして削除するアイテムを表すID、名前もしくは辞書を渡します。今回は作成したコンテナ「test_1」内にitem1というIDが存在していますので、これを渡します。次に第2の引数,パラメータとして項目のパーティションキーの値を渡します。このパーティションキーは、「Pythonでazure-cosmosを用いてAzure Cosmos DBデータベース内にコンテナを作成する」で、PartitionKey(パーティションキー)を設定しましたが、これとは別で特定のアイテムのパーティションキーの値を設定しなければいけないので、今回は作成したコンテナ「test_1」内のデータとして挿入・登録した「田中」という値を渡します。

これでAzure Cosmos DBデータベース内のコンテナのデータを削除することができます。

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

■実行・検証

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

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

実行してみると、何も出力されませんが、これでデータベース内のコンテナのデータが削除されました。

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

コメント

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