共用方式為


教學課程:使用 Visual Studio Code Jupyter 筆記本建立 Jupyter Notebook 來分析 Azure Cosmos DB for NoSQL 帳戶中的資料

適用於:NoSQL

本教學課程會逐步解說如何使用 Visual Studio Code Jupyter 筆記本與 Azure Cosmos DB for NoSQL 帳戶互動。 您將了解如何連線至您的帳戶、匯入資料及執行查詢。

必要條件

建立新的 Notebook

在本節中,您將建立 Azure Cosmos 資料庫、容器,並將零售資料匯入至容器。

  1. 打開 Visual Studio Code。
  2. 從命令選擇區 (Ctrl+Shift+P) 執行 Create: New Jupyter Notebook (建立:新增 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 筆記本中執行單元格。

將資料匯入容器

  1. 新增程式碼資料格

  2. 在程式碼資料格內,新增下列程式碼以從此 URL 上傳資料:<https://cosmosnotebooksdata.blob.core.windows.net/notebookdata/websiteData.json>

        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 項目
    0 已購買 19.99 北馬其頓 扣領襯衫
    1 已檢視 12.00 巴布亞紐幾內亞 項鍊
    2 已檢視 25.00 斯洛伐克 (斯洛伐克共和國) 羊毛衣
    3 已購買 14.00 塞內加爾 拖鞋
    4 已檢視 50.00 巴拿馬 牛仔短褲
    5 已檢視 14.00 塞內加爾 拖鞋
    6 已新增 14.00 塞內加爾 拖鞋
    7 已新增 50.00 巴拿馬 牛仔短褲
    8 已購買 33.00 巴勒斯坦領土 紅色上衣
    9 已檢視 30.00 馬爾他 綠色毛衣
  6. 建立另一個新的程式碼資料格。

  7. 在程式碼資料格中,匯入 pandas 套件以自訂資料框架的輸出。 執行此資料格。

    import pandas as pd    
    df_cosmos.groupby("Item").size().reset_index()
    
  8. 觀察執行命令的輸出。

    項目 Test
    0 拖鞋 66
    1 項鍊 55
    2 運動鞋 111
    45 風衣外套 56

下一步