本主题介绍 Azure Cosmos DB for NoSQL 数据提供程序的要求,以及在将 Azure Cosmos DB for NoSQL 数据提供程序用于虚拟表时如何配置和建议的最佳做法。
重要
- 预览功能不适合生产使用且功能可能受限。 这些功能在正式发布之前可用,以便客户能够提前访问并提供反馈。
- 我们期望更改此功能,因此请勿在生产中使用。 仅在测试和开发环境中使用。
- Microsoft 不支持此预览功能。 Microsoft Dynamics 365 技术支持将不能帮助您解决问题。 预览功能不适合生产使用且受单独的补充使用条款的约束。
什么是 Azure Cosmos DB?
Azure Cosmos DB 是 Microsoft 面向关键任务应用程序提供的全球分布式多模型数据库服务。 它提供丰富且熟悉的 SQL 查询功能,在架构灵活的 JSON 数据中具有一致的低延迟。 详细信息: Azure Cosmos DB 简介:用于 NoSQL 的 Azure Cosmos DB
要求
- 包含 Azure Cosmos DB 的 Azure 订阅。
- Azure Cosmos DB NoSQL 集合。
- Azure Cosmos DB 数据库类型应为 SQL。
数据类型映射
假设您在名为订单的集合中存在如下 JSON 结构的 Azure Cosmos DB 文档。
此表显示 Azure Cosmos DB for NoSQL 文档在 Orders 集合中与 Microsoft Dataverse 之间的数据类型映射。
| 用于 NoSQL 数据的 Azure Cosmos DB | Dataverse |
|---|---|
id |
主键 |
name |
单行文本 |
quantity |
整数 |
orderid |
单行文本 |
ordertype |
选择 |
amount |
十进制数字或货币 |
delivered |
Yes/No |
datetimeoffset |
日期和时间 |
注释
- 带有下划线(_)前缀的属性由 Azure Cosmos DB for NoSQL 生成。
- 在 Azure Cosmos DB for NoSQL 文档中配置为可选属性,且在 Dataverse 中映射为业务必需的属性将引发运行时错误。
- ID 属性值必须是 guid。
支持的 SQL 查询筛选
SQL 查询筛选支持以下运算符。
- 比较运算符:
<、、><=、>=!= - 逻辑运算符:
andor - 设置运算符:
innot in - 字符串运算符:
like、、contains、begins withends with
注释
like 运算符的用法将转换为等效contains/begins with/ends with运算符。 如 (Transact-SQL)主题中所述,Azure Cosmos DB for NoSQL 不支持模式参数。 Azure Cosmos DB for NoSQL 数据提供程序可以将单个特殊情况 Like('[aA]%') 转换为 BeginsWith('a') OR BeginsWith('A')。 请注意,Azure Cosmos DB for NoSQL 中的字符串比较区分大小写。
使用 Azure Cosmos DB for NoSQL 数据提供程序添加数据源
转到 AppSource,选择 立即获取,并按照说明在 v9x 或更高版本中将应用程序添加到您的环境中。
安装解决方案后,登录环境并转至设置>管理>虚拟实体数据源。
在操作工具栏中选择新建,在选择数据提供程序对话框中选择 Azure Cosmos DB for SQL API 数据提供程序,然后选择确定。
输入以下信息,然后选择保存并关闭。
列 Description 名称 键入用于描述数据源的名称。 集合名称 包含要显示在虚拟表中的集合的 Azure Cosmos DB 数据库 的名称。 授权密钥 Azure Cosmos DB 帐户的主密钥或次密钥。 您可在 Azure 管理门户的 Azure Cosmos DB 帐户下,通过密钥设置找到该密钥。 Uri Azure Cosmos DB 集合所在资源组的 URI。 URI 的格式类似于 https://contoso/documents.azure.com:443. 您可在 Azure 管理门户的 Azure Cosmos DB 帐户下,通过密钥设置找到该 URI。超时(以秒为单位) 输入等待 Azure Cosmos DB 服务响应的秒数,超过该时间将导致数据请求超时。例如输入 30 表示最多等待 30 秒后超时。 默认超时为 120 秒。
最佳实践和限制
- 使用 Azure Cosmos DB 作为数据源时,请注意以下事项:
- 每个 Azure Cosmos DB 数据源只能与单个虚拟表相关联。
- 可以将多个数据源连接到 Azure Cosmos DB 实例中的同一集合。
- 不能按表对集合中的数据进行分段。
- Azure Cosmos DB 数据库无需模式,但其中数据必须采用可预测的模式进行结构化。
- 尽管 Azure Cosmos DB for NoSQL 数据提供程序实现了投影、筛选和排序运算符的查询转换,但它不支持联接操作。
- 只能使用 Azure Cosmos DB for NoSQL 按单个列进行筛选。