チュートリアル: Azure Cosmos DB for NoSQL で Jupyter Notebook を作成してデータを分析および視覚化する (プレビュー)

適用対象: NoSQL

警告

Azure Cosmos DB の Jupyter Notebook 機能は、2024 年 3 月 30 日に廃止されます。Azure Cosmos DB アカウントから組み込みの Jupyter Notebook を使用することはできません。 Jupyter Notebook をサポートする Visual Studio Code、または任意のノートブック クライアントを使用することをお勧めします。

このチュートリアルでは、Azure Cosmos DB の Jupyter Notebooks 機能を使用して、サンプル小売データを Azure Cosmos DB for NoSQL アカウントにインポートする方法について説明します。 Azure Cosmos DB のマジック コマンドを使用してクエリを実行し、データを分析して、結果を視覚化する方法をご覧ください。

前提条件

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

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

  1. Azure Cosmos DB アカウントに移動して、[データ エクスプローラー] を開きます。

  2. [新しいノートブック] を選択します。

    Screenshot of the Data Explorer with the 'New Notebook' option highlighted.

  3. 確認のダイアログが表示されたら、[作成] を選択します。

    注意

    Jupyter Notebook を操作できるように、一時的なワークスペースが作成されます。 セッションの有効期限が切れると、ワークスペース内のすべてのノートブックが削除されます。

  4. ノートブックに使用するカーネルを選択します。

ヒント

新しいノートブックが作成され、その名前を VisualizeRetailData.ipynb などに変更できます。

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

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

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

    import azure.cosmos
    from azure.cosmos.partition_key import PartitionKey
    
  3. 組み込みの SDK を使用して RetailIngest という名前のデータベースを作成します。

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

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

    Screenshot of the 'Run' option in the menu.

マジック コマンドを使用してデータをインポートする

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

  2. コード セル内に、次のマジック コマンドを追加して、既存のコンテナーに、この URL から JSON データをアップロードします: https://cosmosnotebooksdata.blob.core.windows.net/notebookdata/websiteData.json

    %%upload --databaseName RetailIngest --containerName WebsiteMetrics --url https://cosmosnotebooksdata.blob.core.windows.net/notebookdata/websiteData.json
    
  3. [Run Active Cell] (アクティブ セルの実行) を選択すると、この特定のセルでのみコマンドが実行されます。

    Screenshot of the 'Run Active Cell' option in the menu.

    Note

    インポート コマンドの完了には 5 から 10 秒かかります。

  4. 実行コマンドからの出力を確認します。 2,654 個のドキュメントがインポートされたことを確認します。

    Documents successfully uploaded to WebsiteMetrics
    Total number of documents imported:
      Success: 2654
      Failure: 0
    Total time taken : 00:00:04 hours
    Total RUs consumed : 27309.660000001593
    

データを視覚化する

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

  2. コード セルで、SQL クエリを使用して Pandas DataFrame を設定します。

    %%sql --database RetailIngest --container WebsiteMetrics --output df_cosmos
    SELECT c.Action, c.Price as ItemRevenue, c.Country, c.Item FROM c
    
  3. [Run Active Cell] (アクティブ セルの実行) を選択すると、この特定のセルでのみコマンドが実行されます。

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

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

    df_cosmos.head(10)
    
  6. [Run Active Cell] (アクティブ セルの実行) を選択すると、この特定のセルでのみコマンドが実行されます。

  7. コマンドを実行した出力を確認します。

    アクション ItemRevenue 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
  8. 別の新しいコード セルを作成します。

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

    import pandas as pd
    pd.options.display.html.table_schema = True
    pd.options.display.max_rows = None
    
    df_cosmos.groupby("Item").size()
    
  10. [Run Active Cell] (アクティブ セルの実行) を選択すると、この特定のセルでのみコマンドが実行されます。

  11. 出力で、[折れ線グラフ] オプションを選択して、データの別の視覚化を表示します。

    Screenshot of the Pandas dataframe visualization for the data as a line chart.

ノートブックを保持する

  1. [ノートブック] セクションで、このチュートリアル用に作成したノートブックのコンテキスト メニューを開き、[ダウンロード] を選択します。

    Screenshot of the notebook context menu with the 'Download' option.

    ヒント

    作業内容を永続的に保存するには、セッションが終了する前に、ノートブックを GitHub リポジトリに保存するか、ノートブックをローカル コンピューターにダウンロードします。

次のステップ