你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

教程:在 Azure Cosmos DB for NoSQL 中创建 Jupyter 笔记本以分析和可视化数据(预览版)

适用范围: NoSQL

警告

Azure Cosmos DB 的 Jupyter Notebook 功能将于 2024 年 3 月 30 日停用,届时将无法再通过 Azure Cosmos DB 帐户使用内置的 Jupyter 笔记本。 建议使用 Visual Studio Code 对 Jupyter 笔记本的支持或首选笔记本客户端。

本教程将介绍如何使用 Azure Cosmos DB 的 Jupyter Notebook 功能将示例零售数据导入 Azure Cosmos DB for NoSQL 帐户。 其中将会讲解如何使用 Azure Cosmos DB magic 命令来运行查询、分析数据和可视化结果。

先决条件

创建新的 Notebook

在本部分,你将创建 Azure Cosmos 数据库和容器,并将零售数据导入该容器。

  1. 导航到你的 Azure Cosmos DB 帐户,打开“数据资源管理器”。

  2. 选择“新建笔记本”。

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

  3. 在出现的确认对话中,选择“创建”。

    注意

    将创建一个临时工作区,让你能够使用 Jupyter 笔记本。 会话过期后,将删除工作区中的所有笔记本。

  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. 使用 /CartID 分区键创建名为“WebsiteMetrics”的容器。

    container = database.create_container_if_not_exists(id='WebsiteMetrics', partition_key=PartitionKey(path='/CartID'))
    
  5. 选择“运行”以创建数据库和容器资源。

    Screenshot of the 'Run' option in the menu.

使用 magic 命令导入数据

  1. 添加一个新代码单元格。

  2. 在代码单元格中,将以下 magic 命令添加到现有容器,从此 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. 选择“运行活动单元格”以仅运行此特定单元格中的命令。

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

    注意

    导入命令需要 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. 选择“运行活动单元格”以仅运行此特定单元格中的命令。

  4. 另创建一个新的代码单元格。

  5. 在代码单元格中,输出数据帧的前 10 项。

    df_cosmos.head(10)
    
  6. 选择“运行活动单元格”以仅运行此特定单元格中的命令。

  7. 观察运行命令的输出。

    操作 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 马耳他 绿色毛衣
  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. 选择“运行活动单元格”以仅运行此特定单元格中的命令。

  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 存储库,或在会话结束前将笔记本下载到本地计算机。

后续步骤