次の方法で共有


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

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

[前提条件]

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

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

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

ヒント

新しいノートブックが作成されたら、保存して、たとえば 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 Country Item
    0 購入済み 19.99 マケドニア旧ユーゴスラビア共和国 Button-Up Shirt
    1 表示 12.00 パプアニューギニア Necklace
    2 表示 25.00 スロバキア (スロバキア共和国) Cardigan Sweater
    3 購入済み 14.00 セネガル Flip Flop Shoes
    4 表示 50.00 パナマ Denim Shorts
    5 表示 14.00 セネガル Flip Flop Shoes
    6 追加済み 14.00 セネガル Flip Flop Shoes
    7 追加済み 50.00 パナマ Denim Shorts
    8 購入済み 33.00 パレスチナ Red Top
    9 表示 30.00 マルタ Green Sweater
  6. 別の新しいコード セルを作成します。

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

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

    Item Test
    0 Flip Flop Shoes 66
    1 Necklace 55
    2 Athletic Shoes 111
    ... ... ...
    45 Windbreaker Jacket 56

次のステップ