Azure Cosmos DB Playground:在浏览器中学习和实验查询
Source: Dev.to
交互式基于浏览器的环境,用于学习、测试和分享查询
Azure Cosmos DB Playground 是一个交互式、基于浏览器的工具,可用于学习和实验 Azure Cosmos DB SQL 查询——无需设置、安装或云费用。它运行在 Azure Cosmos DB vNext 仿真器上,背后使用开源的 codapi 项目。
该 Playground 适用于:
- 探索预加载的数据集和可直接运行的查询示例
- 粘贴或上传自己的 JSON 数据,以测试自定义场景
- 实时查看查询结果,并在运行时修改数据或查询
- 生成可分享的链接,捕获当前的数据集和查询
- 页面刷新后自动恢复上一次会话
- 将交互式、可运行的示例嵌入 HTML 文件,用于文档、博客或教程
注意: 这是一个实验性项目,并非 Microsoft 或 Azure 的官方产品。它旨在用于学习和分享,而非生产环境使用。
快速演示
入门
访问托管的 Playground 并立即开始实验:
部署您自己的实例
您可以在 Azure 上或使用 Docker Compose 在本地运行 playground。该项目已完全容器化;请遵循 GitHub 仓库中的部署说明来设置您自己的实例。
- HTTP(s) 访问配置: 请参阅 GitHub 说明以启用安全访问。
Playground 功能
- 预加载的数据集及示例查询
- 上传或粘贴自定义 JSON 数据
- 即时结果显示和实时编辑
- 可分享的 URL,保留状态
- 自动会话恢复
- 可嵌入的交互式示例
功能可能会演变——请查看 GitHub 仓库获取最新列表。
架构概览
+-------------------+ +-------------------+ +-------------------+
| User Browser | | nginx | | Codapi |
| (playground.html) | | (Reverse Proxy) | | (Sandbox Server) |
+-------------------+ +-------------------+ +-------------------+
|
v
+--------------------------+
| Ephemeral Query Container|
| (Python + Cosmos SDK) |
+--------------------------+
|
v
+--------------------------+
| Cosmos DB Emulator |
| (Docker Container) |
+--------------------------+
核心组件
Azure Cosmos DB vNext 仿真器
本地 Docker 容器,模拟 Azure Cosmos DB(SQL API)服务,使您能够在无需任何云资源的情况下实验查询和数据模型。
Codapi
一个轻量级沙盒服务器,用于交互式文档和代码示例。在演示环境中,Codapi:
- 为每次查询执行管理隔离的 Docker 容器
- 为前端提供 JavaScript 小部件(
codapi-js) - 在短暂的环境中执行用户代码,以确保隔离
查询执行流程
- nginx 为前端提供服务,并将 API 请求转发给 Codapi。
- 对于每一次查询运行,Codapi 会生成一个 临时查询 Docker 容器。
- 在该容器内部,Python 组件连接到长期运行的 Cosmos DB 仿真器。
- 创建一个临时的 Cosmos DB 容器,使用用户的数据进行种子初始化,执行查询并返回结果。
- 执行完毕后,临时的 Cosmos DB 容器和查询容器都会被清理。
限制
- 设计用于较小规模的数据集;在更大数据量下性能可能下降。
- 不适用于生产工作负载。
- 限制和约束可能会变化——请参阅 GitHub 仓库获取最新信息。
反馈与贡献
有建议或想要贡献?访问 GitHub 仓库,打开 issue,或提交 pull request。
查询愉快!