你当前正在访问 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 命令来运行查询、分析数据和可视化结果。
先决条件
- 一个现有的适用于 NoSQL 的 Azure Cosmos DB 帐户。
- 如果你有现有的 Azure 订阅,请创建一个新帐户。
- 无 Azure 订阅? 可以免费试用 Azure Cosmos DB,无需信用卡。
创建新的 Notebook
在本部分,你将创建 Azure Cosmos 数据库和容器,并将零售数据导入该容器。
导航到你的 Azure Cosmos DB 帐户,打开“数据资源管理器”。
选择“新建笔记本”。
在出现的确认对话中,选择“创建”。
注意
将创建一个临时工作区,让你能够使用 Jupyter 笔记本。 会话过期后,将删除工作区中的所有笔记本。
选择要用于笔记本的内核。
提示
创建新笔记本后,可将其重命名,例如“VisualizeRetailData.ipynb”。
使用 SDK 创建数据库和容器
从默认代码单元格开始。
导入本教程所需的所有包。
import azure.cosmos from azure.cosmos.partition_key import PartitionKey
使用内置 SDK 创建名为“RetailIngest”的数据库。
database = cosmos_client.create_database_if_not_exists('RetailIngest')
使用
/CartID
分区键创建名为“WebsiteMetrics”的容器。container = database.create_container_if_not_exists(id='WebsiteMetrics', partition_key=PartitionKey(path='/CartID'))
选择“运行”以创建数据库和容器资源。
使用 magic 命令导入数据
添加一个新代码单元格。
在代码单元格中,将以下 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
选择“运行活动单元格”以仅运行此特定单元格中的命令。
注意
导入命令需要 5-10 秒才能完成。
观察运行命令的输出。 确保已导入 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
可视化数据
另创建一个新的代码单元格。
在代码单元格中,使用 SQL 查询填充 Pandas DataFrame。
%%sql --database RetailIngest --container WebsiteMetrics --output df_cosmos SELECT c.Action, c.Price as ItemRevenue, c.Country, c.Item FROM c
选择“运行活动单元格”以仅运行此特定单元格中的命令。
另创建一个新的代码单元格。
在代码单元格中,输出数据帧的前 10 项。
df_cosmos.head(10)
选择“运行活动单元格”以仅运行此特定单元格中的命令。
观察运行命令的输出。
操作 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 马耳他 绿色毛衣 另创建一个新的代码单元格。
在代码单元格中,导入 pandas 包以自定义数据帧的输出。
import pandas as pd pd.options.display.html.table_schema = True pd.options.display.max_rows = None df_cosmos.groupby("Item").size()
选择“运行活动单元格”以仅运行此特定单元格中的命令。
在输出中,选择“折线图”选项以查看数据的不同可视化效果。
保留笔记本
在“笔记本”部分,打开为本教程创建的笔记本的上下文菜单,然后选择“下载”。
提示
若要永久保存工作,请将笔记本保存到 GitHub 存储库,或在会话结束前将笔记本下载到本地计算机。