重要
对于新项目,不再支持 Cosmos DB Synapse Link。 请勿使用此功能。
本文介绍 Azure Synapse Link 当前支持用于Azure Cosmos DB的功能。
Azure Synapse支持
Azure Cosmos DB中有两种类型的容器:
- HTAP 容器 - 启用了Synapse Link的容器。 此容器具有事务存储和分析存储。
- OLTP 容器 - 未启用Synapse Link的容器。 此容器仅具有事务存储,不具备分析存储。
无需启用Synapse Link即可连接到Azure Cosmos DB容器。 在这种情况下,只能读取/写入事务存储。 下面是Azure Cosmos DB Synapse Link中当前支持的功能的列表。
| 类别 | 说明 | Apache Spark 池 | 无服务器 SQL 池 |
|---|---|---|---|
| 运行时支持 | 支持的Azure Synapse运行时访问Azure Cosmos DB | ✓ | ✓ |
| Azure Cosmos DB API 支持 | 支持的Azure Cosmos DB API 类型 | SQL/MongoDB | SQL/MongoDB |
| Object | 可以创建的表等对象,直接指向Azure Cosmos DB容器 | 数据帧、视图、表 | 视图 |
| 读取 | 可读取的Azure Cosmos DB容器的类型 | OLTP/HTAP | HTAP |
| 写入 | Azure Synapse运行时是否可以用于将数据写入Azure Cosmos DB容器 | 是 | 否 |
- 如果将数据从 Spark 写入Azure Cosmos DB容器,此过程将通过Azure Cosmos DB的事务存储进行。 它会影响Azure Cosmos DB的事务性能,方法是使用请求单位。
- 目前不支持通过外部表进行专用 SQL 池集成。
Spark 支持的代码生成操作
| 手势 | 说明 | OLTP(在线事务处理) | HTAP |
|---|---|---|---|
| 加载到 DataFrame | 加载数据并将其读取到 Spark 数据帧 | ✓ | ✓ |
| 创建 Spark 表 | 创建指向Azure Cosmos DB容器的表 | ✓ | ✓ |
| 将数据帧写入容器 | 将数据写入容器 | ✓ | ✓ |
| 从容器加载流式数据帧 | 使用Azure Cosmos DB更改源流式传输数据 | ✓ | ✓ |
| 将流式数据帧写入容器 | 使用Azure Cosmos DB更改源流式传输数据 | ✓ | ✓ |
无服务器 SQL 池支持的代码生成操作
| 手势 | 说明 | OLTP(在线事务处理) | HTAP |
|---|---|---|---|
| 浏览数据 | 使用熟悉的 T-SQL 语法和自动架构推理浏览容器中的数据 | X | ✓ |
| 创建视图并生成 BI 报表 | 创建 SQL 视图,以便通过无服务器 SQL 池直接访问 BI 容器 | X | ✓ |
| 联接不同的数据源以及Azure Cosmos DB数据 | 使用 CETAS 在Azure Blob 存储或Azure Data Lake Storage中存储从Azure Cosmos DB容器读取数据的查询结果 | X | ✓ |
后续步骤
- 了解如何连接 Synapse Link Azure Cosmos DB
Learn 如何使用 Spark 3 Learn 如何使用 Spark 2