適用対象: NoSQL
このチュートリアルでは、Visual Studio Code Jupyter ノートブックを使用して Azure Cosmos DB for NoSQL アカウントを操作する方法について説明します。 アカウントへの接続方法、データのインポート方法、クエリの実行方法について説明します。
前提条件
- 既存の Azure Cosmos DB for NoSQL アカウント。
- Azure サブスクリプションを既にお持ちの場合は、新しいアカウントを作成します。
- ノートブックを使用するには、Visual Studio Code をインストールし、環境を設定します。
新しいノートブックを作成する
このセクションでは、Azure Cosmos データベースとコンテナーを作成し、コンテナーに小売データをインポートします。
- Visual Studio Code を開きます。
- コマンド パレット (Ctrl+Shift+P) から Create: New Jupyter Notebook コマンドを使用するか、ワークスペースで新しい .ipynb ファイルを作成します。
ヒント
これで新しいノートブックが作成されたので、保存し、AnalyzeRetailData.ipynb のような名前を付けることができます。
SDK を使用してデータベースとコンテナーを作成する
既定のコード セルから開始します。
Azure.cosmos パッケージをインストールします。 続行前にこのセルを実行します。
%pip install azure.cosmosこのチュートリアルに必要なパッケージをすべてインポートします。
import azure.cosmos from azure.cosmos.partition_key import PartitionKey from azure.cosmos import CosmosClient最後に、CosmosClient の新しいインスタンスを作成します。
endpoint = "<FILL ME>" key = "<FILL ME>" cosmos_client = CosmosClient(url=endpoint, credential=key)組み込みの SDK を使用して RetailIngest という名前のデータベースを作成します。
database = cosmos_client.create_database_if_not_exists('RetailIngest')WebsiteMetrics という名前のコンテナーを
/CartIDのパーティション キーで作成します。container = database.create_container_if_not_exists(id='WebsiteMetrics', partition_key=PartitionKey(path='/CartID'))[実行] を選択して、データベースとコンテナー リソースを作成します。
データをコンテナーにインポートします
新しいコード セルを追加します
コード セル内で、コード
<https://cosmosnotebooksdata.blob.core.windows.net/notebookdata/websiteData.json>を追加し、この URL からデータをアップロードします。import urllib.request import json with urllib.request.urlopen("https://cosmosnotebooksdata.blob.core.windows.net/notebookdata/websiteData.json") as url: docs = json.loads(url.read().decode()) for doc in docs: container.upsert_item(doc)セルを実行します。 実行には 45 秒から 1 分かかります。
データの分析
別の新しいコード セルを作成します。
コード セルで、SQL クエリを使用して Pandas DataFrame を設定します。 このセルを実行します。
import pandas as pd from pandas import DataFrame QUERY = "SELECT c.Action, c.Price as ItemRevenue, c.Country, c.Item FROM c" results = container.query_items( query=QUERY, enable_cross_partition_query=True ) df_cosmos = pd.DataFrame(results)別の新しいコード セルを作成します。
コード セルで、データフレームから上位 10 個の項目を出力します。 このセルを実行します。
df_cosmos.head(10)コマンドを実行した出力を確認します。
アクション ItemRevenue 国 Item 0 購入済み 19.99 マケドニア旧ユーゴスラビア共和国 Button-Up シャツ 1 表示 12.00 パプアニューギニア Necklace 2 表示 25.00 スロバキア (スロバキア共和国) カーディガン セーター 3 購入済み 14.00 セネガル フリップフロップシューズ 4 表示 50.00 パナマ デニムショーツ 5 表示 14.00 セネガル フリップフロップシューズ 6 追加 14.00 セネガル フリップフロップシューズ 7 追加 50.00 パナマ デニムショーツ 8 購入済み 33.00 パレスチナ 赤い上 9 表示 30.00 マルタ グリーン セーター 別の新しいコード セルを作成します。
コード セルで pandas パッケージをインポートして、データフレームの出力をカスタマイズします。 このセルを実行します。
import pandas as pd df_cosmos.groupby("Item").size().reset_index()コマンドを実行した出力を確認します。
Item テスト 0 フリップフロップシューズ 66 1 Necklace 55 2 運動靴 111 [...] ... ... 45 ウィンドブレーカー ジャケット 56