チュートリアル: Visual Studio Code の Jupyter Notebook を使用して Azure Cosmos DB for NoSQL アカウントのデータを分析する Jupyter Notebook を作成する

このチュートリアルでは、Visual Studio Code Jupyter ノートブックを使用して Azure Cosmos DB for NoSQL アカウントを操作する方法について説明します。 アカウントへの接続方法、データのインポート方法、クエリの実行方法について説明します。

Prerequisites

新しいノートブックを作成する

このセクションでは、Azure Cosmos データベースとコンテナーを作成し、コンテナーに小売データをインポートします。

  1. Visual Studio Codeを開く。
  2. コマンド パレット (Ctrl+Shift+P) から Create: New Jupyter Notebook コマンドを使用するか、ワークスペースで新しい .ipynb ファイルを作成します。

Tip

新しいノートブックが作成されたら、保存して、たとえば AnalyzeRetailData.ipynb などの名前を付けます。

SDK を使用してデータベースとコンテナーを作成する

  1. 既定のコード セルから開始します。

  2. Azure.cosmos パッケージをインストールします。 このセルを実行した後、次に進みます。

    %pip install azure.cosmos
    
  3. このチュートリアルに必要なパッケージをすべてインポートします。

    import azure.cosmos
    from azure.cosmos.partition_key import PartitionKey
    from azure.cosmos import CosmosClient
    
  4. CosmosClient の新しいインスタンスを作成します。

    endpoint = "<FILL ME>"
    key = "<FILL ME>"
    cosmos_client = CosmosClient(url=endpoint, credential=key)
    
  5. 組み込みの SDK を使用して RetailIngest という名前のデータベースを作成します。

    database = cosmos_client.create_database_if_not_exists('RetailIngest')
    
  6. WebsiteMetrics という名前のコンテナーを /CartID のパーティション キーで作成します。

    container = database.create_container_if_not_exists(id='WebsiteMetrics', partition_key=PartitionKey(path='/CartID'))
    
  7. [実行] を選択して、データベースとコンテナー リソースを作成します。

    Visual Studio Code の Jupyter Notebook でセルを実行する操作のスクリーンショット。

データをコンテナーにインポートする

  1. 新しいコード セルを追加します。

  2. コード セルで、コード <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)
    
  3. セルを実行します。 実行には 45 秒から 1 分かかります。

データの分析

  1. 別の新しいコード セルを作成します。

  2. コード セルで、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)
    
  3. 別の新しいコード セルを作成します。

  4. コード セルで、データフレームから上位 10 個の項目を出力します。 このセルを実行します。

    df_cosmos.head(10)
    
  5. コマンドを実行した出力を確認します。

    アクション ItemRevenue 項目
    0 購入済み 19.99 マケドニア ボタンアップシャツ
    1 表示 12.00 パプアニューギニア Necklace
    2 表示 25.00 スロバキア (スロバキア共和国) カーディガン セーター
    3 購入済み 14.00 Senegal フリップフロップシューズ
    4 表示 50.00 Panama デニムショーツ
    5 表示 14.00 Senegal フリップフロップシューズ
    6 追加済み 14.00 Senegal フリップフロップシューズ
    7 追加済み 50.00 Panama デニムショーツ
    8 購入済み 33.00 パレスチナ 赤色の上部
    9 表示 30.00 Malta グリーン セーター
  6. 別の新しいコード セルを作成します。

  7. コード セルで pandas パッケージをインポートして、データフレームの出力をカスタマイズします。 このセルを実行します。

    import pandas as pd    
    df_cosmos.groupby("Item").size().reset_index()
    
  8. コマンドを実行した出力を確認します。

    項目 Test
    0 フリップフロップシューズ 66
    1 Necklace 55
    2 運動靴 111
    [...] ... ...
    45 ウィンドブレーカー ジャケット 56

次のステップ