Fabric 中 Cosmos DB 的常见问题

本文解答了有关 Fabric 中的 Cosmos DB 的常见问题。

General

什么是 Fabric 中的 Cosmos DB?

Microsoft Fabric 是一个企业就绪的端到端数据平台。 Fabric 将数据移动、数据库、数据工程、数据科学、实时智能、BI 与 copilot 和应用程序开发统一。 不再需要从多个供应商单独将这些服务组合在一起。

Fabric 中的 Cosmos DB 是 AI 优化的 NoSQL 数据库,通过简化的体验自动配置为满足应用程序需求。 开发人员可以使用 Fabric 中的 Cosmos DB 轻松构建 AI 应用程序,而无需管理复杂的数据库设置。 Microsoft Fabric 中的 Cosmos DB 基于 Azure Cosmos DB,它为数据库提供动态缩放、高可用性和可靠性。

Cosmos DB 是分布式 NoSQL 数据库。 可以在 Fabric 中的 Cosmos DB 中存储半结构化或非结构化数据。 Cosmos DB in Fabric 可以与关系数据和 Fabric 中的 OneLake 中的数据一起使用,从而为应用程序启用统一的数据平台。

Cosmos DB 数据自动提供给 Fabric OneLake。 此集成提供 Cosmos DB 与 Fabric 平台的其余部分的深度集成,使无缝分析、实时智能、用户数据函数(UDF)、GraphQL、数据科学和 BI 与 Copilot 以及数据代理全部放在一个位置。

有关详细信息,请参阅 Fabric 中的 Cosmos DB

Fabric 中的 Cosmos DB 与 Azure Cosmos DB 有何不同?

Fabric 中的 Cosmos DB 使用与 Azure Cosmos DB 相同的基础引擎和基础结构,提供相同的性能、可靠性和可用性保证。 但存在关键的区别:

  • 集成:Fabric 中的 Cosmos DB 与 Microsoft Fabric 和 OneLake 紧密集成,为没有 ETL 管道的分析提供自动数据镜像。
  • 管理:Fabric 中的 Cosmos DB 通过优化的默认值提供简化的管理体验,减少了数据库管理复杂性。
  • 计费:使用情况以 Fabric 容量单位(OU)而不是 Azure 请求单位(RU)为单位,并通过 Fabric 容量计费。
  • 身份验证:Fabric 中的 Cosmos DB 以独占方式使用 Microsoft Entra 身份验证,没有主/辅助密钥。
  • 许可:需要 Power BI Premium、Fabric 容量或试用容量许可证。

有关详细信息,请参阅 Fabric 中的 Cosmos DB 概述计费和利用率

Fabric 中的 Cosmos DB 是否支持无架构数据?

是的。 通过 Fabric 中的 Cosmos DB,应用程序可以存储任意 JSON 文档,而无需架构定义或提示。 灵活的无架构数据模型非常适合半结构化或非结构化数据,并便于随时间推移发展数据模型。 数据立即可用于使用 NoSQL 查询语言进行查询。

有关详细信息,请参阅 Fabric 中的 Cosmos DB 概述

如何在 Fabric 中开始使用 Cosmos DB?

若要开始使用 Fabric 中的 Cosmos DB,请执行以下作:

  1. 确保拥有 Power BI Premium、Fabric 容量或试用容量许可证。
  2. 导航到 Fabric 门户并在工作区中创建新的 Cosmos DB 数据库。
  3. 创建用于存储数据的容器。
  4. 使用 Cosmos DB SDK 和 Microsoft Entra 身份验证连接到数据库。

有关分步指南,请参阅 快速入门:在 Microsoft Fabric 中创建 Cosmos DB 数据库

Connectivity

如何在 Fabric 中连接到 Cosmos DB?

Microsoft Fabric 公开了与 Cosmos DB 软件开发工具包(SDK)兼容的终结点。 这些 SDK 以及相应的 Azure 标识库应用于使用 Microsoft Entra 身份验证直接连接到数据库。 有关详细信息,请参阅 使用 Microsoft Entra ID 连接到 Microsoft Fabric 中的 Cosmos DB

Fabric 中的 Cosmos DB 支持哪些 Azure Cosmos DB SDK?

Fabric 中的 Cosmos DB 支持 Cosmos DB SDK,包括:

  • .NET SDK
  • Python SDK
  • Java SDK
  • JavaScript/Node.js SDK
  • GO SDK
  • Rust SDK
  • Apache Spark SDK

将这些 SDK 与 Azure 标识库一起使用,以便Microsoft Entra 身份验证。 有关详细信息,请参阅 连接到 Fabric 中的 Cosmos DB

是否可以使用连接字符串或主键连接到 Fabric 中的 Cosmos DB?

否,不支持主密钥和辅助密钥。 必须使用 Microsoft Entra 标识(用户标识、服务主体或托管标识)进行身份验证。

有关详细信息,请参阅 Fabric 中 Cosmos DB 的身份验证

查询和数据作

可以使用哪些查询语言在 Fabric 中的 Cosmos DB 中查询数据?

Fabric 中的 Cosmos DB 主要支持 NoSQL 查询语言来查询数据。

NoSQL 查询语言提供功能强大的美国国家标准研究所(ANSI)结构化查询语言(SQL)等语法,用于处理 JSON 数据。 此语言旨在让用户熟悉 SQL 体验,同时支持 JSON 文档的灵活性和分层性。

Fabric 中 Cosmos DB 的内置镜像功能还支持使用 T-SQL 查询数据。 镜像和 SQL 分析终结点允许你使用熟悉的 T-SQL 语法来处理 Cosmos DB 数据,从而更轻松地与基于 SQL 的现有工作流和工具集成。

有关详细信息,请参阅 使用 NoSQL 查询语言

Fabric 中的 Cosmos DB 是否支持聚合函数?

是的。 Fabric 中的 Cosmos DB 支持通过 NoSQL 查询语言中的聚合函数(包括 COUNT、MAX、MIN、AVG 和 SUM)进行聚合。 可以在查询中使用这些函数对数据执行分析。

有关详细信息,请参阅 NoSQL 查询语言文档

Fabric 中的 Cosmos DB 是否支持 ACID 事务?

是的。 Fabric 中的 Cosmos DB 支持单个分区中的跨文档事务。 事务的范围限定为单个逻辑分区,并使用 ACID 语义(原子性、一致性、隔离性、持久性)作为“全部或无”执行,与其他并发执行作隔离。 如果发生异常,将回滚整个事务。

可以使用 SDK 中的事务批处理作执行事务。

有关详细信息,请参阅 Cosmos DB 事务

Fabric 中的 Cosmos DB 如何处理并发?

Fabric 中的 Cosmos DB 通过 HTTP 实体标记(ETags)支持乐观并发控制(OCC)。 每次更新文档时,每个资源都有一个在服务器上设置的 ETag。 ETag 可以与 If-Match 标头一起使用,以允许服务器决定是否应更新资源。 如果 ETag 不再为最新状态,则服务器会拒绝具有“HTTP 412 前置条件失败”响应代码的作,并且客户端必须重新引用资源才能获取当前的 ETag 值。

大多数 Cosmos DB SDK 包括用于管理乐观并发控制的类。 有关详细信息,请参阅 Cosmos DB 中的乐观并发控制

是否可以在 Fabric 中跨多个 Cosmos DB 数据库查询数据?

是的。 Fabric 中的 Cosmos DB 支持跨数据库查询,允许跨多个 Cosmos DB 数据库甚至同一 Fabric 工作区中的 SQL 数据库查询数据。 这种统一的查询体验使整个数据资产能够进行强大的分析。

有关详细信息,请参阅 Fabric 中的 Cosmos DB 中的跨数据库查询

数据复制和 OneLake 集成

将数据复制到 OneLake 在 Fabric 中的 Cosmos DB 中的工作原理是什么?

Fabric 数据库中的每个 Cosmos DB 都会以 Delta Parquet 格式自动将数据镜像到 OneLake。 此镜像几乎实时发生,无需任何其他配置或设置。 镜像数据立即可用于分析、数据科学、Power BI 报告和其他 Fabric 工作负载。

有关详细信息,请参阅 Fabric 中的 Cosmos DB 中的镜像 OneLake

将数据更改复制到 OneLake 需要多长时间?

从 Fabric 中的 Cosmos DB 到 OneLake 的数据复制几乎实时发生。 插入、更新和删除以最少的延迟进行复制,通常根据更改量在几秒钟内进行复制。

有关详细信息,请参阅 Fabric 中的 Cosmos DB 中的镜像 OneLake

是否可以禁用到 OneLake 的数据复制?

否。 将数据复制到 OneLake 是 Fabric 中 Cosmos DB 的核心功能,无法禁用。 Cosmos DB 容器中的所有数据将自动镜像到 Delta Parquet 格式的 OneLake。

有关详细信息,请参阅 Fabric 中的 Cosmos DB 中的镜像 OneLake

Power BI 报表是否可以将 Direct Lake 模式与 Fabric 中的 Cosmos DB 配合使用?

是的。 在 OneLake 中,Cosmos DB 表存储为 v 排序的 Delta 表,该表支持 Power BI 中的 Direct Lake 模式。 这样就可以直接通过 Cosmos DB 数据报告高性能、低延迟的报告,而无需重复数据。

有关详细信息,请参阅 在 Fabric 中使用 Cosmos DB 创建报表

如何检查将数据复制到 OneLake 的状态?

可以通过导航到 Fabric 门户中数据库的复制部分来检查复制状态。 本部分显示有关复制的元数据,包括上次同步的状态以及可能发生的任何错误。

有关详细信息,请参阅 Fabric 中的 Cosmos DB 中的镜像 OneLake

吞吐量和性能

什么是 Fabric 中的 Cosmos DB 中的请求单位(RU) ?

请求单位(RU)是一种性能货币,用于抽象执行数据库作所需的系统资源(CPU、IOPS 和内存)。 所有数据库作(包括读取、写入、查询和更新)均以 RU 为单位。 例如,1 KB 项的点读取使用一个请求单位。

在 Fabric 中的 Cosmos DB 中,请求单位转换为 Fabric 容量单位(OU),以便进行计费和使用情况报告。

有关详细信息,请参阅 Fabric 中的 Cosmos DB 中的请求单位以及计费和利用率

自动缩放如何在 Fabric 中的 Cosmos DB 中工作?

Fabric 中的 Cosmos DB 中的所有容器都使用自动缩放预配的吞吐量。 借助自动缩放,容器会根据工作负荷需求自动缩放吞吐量,在最大配置的吞吐量(RU/秒)的 10% 和 100% 之间缩放。 当工作负荷处于空闲状态时,它会缩减到最大% 的 10%,以最大程度地降低成本。 当需求增加时,它立即纵向扩展,没有任何预热期。

在 Fabric 门户中创建的容器的默认自动缩放吞吐量为 5,000 RU/秒。 这可以使用 Cosmos DB SDK 在 1,000 到 50,000 RU/秒之间进行调整。

有关详细信息,请参阅 Fabric 中的 Cosmos DB 中的自动缩放吞吐量

是否可以使用无服务器或手动(标准)预配吞吐量而不是自动缩放?

否。 Fabric 中的 Cosmos DB 中的所有容器都必须使用自动缩放预配的吞吐量。 不支持无服务器和手动(标准)预配吞吐量。 通过 SDK 创建的容器必须在创建容器期间将吞吐量设置为自动缩放,否则将引发错误,指出“产品/服务类型仅限于帐户的自动缩放”。

有关详细信息,请参阅 Fabric 中 Cosmos DB 的限制

Cosmos DB in Fabric 中容器的吞吐量限制是什么?

  • 默认情况下,容器支持每秒 50,000 个请求单位(RU/秒)的最大自动缩放吞吐量。
  • 在 Fabric 门户中创建的容器会自动分配 5,000 RU/秒的最大自动缩放吞吐量。
  • 使用 SDK 创建的容器最多可以设置为 1,000 RU/秒,达到允许的最大自动缩放吞吐量。

通过提交支持票证可以增加超过 50,000 RU/秒的最大吞吐量。

有关详细信息,请参阅 Fabric 中 Cosmos DB 的限制

如何修改容器的吞吐量(RU/秒) ?

可以使用 Cosmos DB SDK 读取和更新容器上的自动缩放吞吐量。 使用 SDK 的吞吐量管理方法获取当前吞吐量并将其替换为新值。

有关代码示例,请参阅 Fabric 中的 Cosmos DB 中的自动缩放吞吐量

索引和搜索

Fabric 中的 Cosmos DB 支持哪些索引功能?

默认情况下,Fabric 中的 Cosmos DB 支持自动编制索引。 默认情况下,JSON 文档中的所有属性都会自动编制索引。 用户还可以定义自定义索引策略,以包括或排除特定路径、配置索引类型以及针对查询模式进行优化。

Fabric 中的 Cosmos DB 支持多种索引类型:

  • 范围索引:支持对数值、字符串和日期类型的范围查询。
  • 空间索引:支持使用点、线条和多边形数据类型进行地理空间查询。
  • 复合索引:支持优化同时筛选或排序多个属性的查询。
  • 矢量索引:支持使用 DiskANN 或量化平面向量索引为 AI 应用程序编制索引和搜索矢量嵌入。
  • 全文索引:支持使用特定于语言的支持对文档进行全文索引和搜索。

有关详细信息,请参阅 Fabric 中的 Cosmos DB 中的索引矢量索引

如何自定义容器的索引策略?

可以在创建容器时自定义索引策略,或者稍后使用 Cosmos DB SDK 更新它们。 索引策略允许指定要包括或排除索引的路径、配置索引类型(范围、空间、复合),以及优化查询性能。

有关详细信息,请参阅 在 Fabric 中的 Cosmos DB 中自定义索引策略

Fabric 中的 Cosmos DB 是否支持矢量搜索?

是的。 Fabric 中的 Cosmos DB 支持矢量索引和搜索,支持具有相似性搜索功能的 AI 驱动的应用程序。 可以与 JSON 文档一起存储和索引矢量嵌入,并使用 DiskANN 或量化的平面向量索引执行高效的矢量搜索。

有关详细信息,请参阅 Fabric 中的 Cosmos DB 中的矢量索引混合搜索

安全性和合规性

如何在 Fabric 中的 Cosmos DB 中保护数据?

Fabric 中的 Cosmos DB 提供了多种安全功能,可帮助默认保护数据。 这些功能包括但不限于:

  • Microsoft用于安全访问的 Entra 身份验证
  • 静态和传输中的数据加密
  • 通过 Fabric 权限进行基于工作区的访问控制

有关详细信息,请参阅 Fabric 中 Cosmos DB 的安全性

如何在 Fabric 项目中为 Cosmos DB 设置用户权限?

Fabric 中的 Cosmos DB 继承用户 Fabric 工作区权限。 例如,如果用户具有工作区查看器权限,则他们对 Cosmos DB 项目具有只读访问权限。 目前,可以设置项级权限。 但是,它们将应用于工作区中的所有 Cosmos DB 工件。

有关详细信息,请参阅 Fabric 中 Cosmos DB 的限制

Fabric 中的 Cosmos DB 是否支持客户管理的密钥(CMK)?

否。 客户管理的密钥(CMK)加密目前不适用于 Fabric 中的 Cosmos DB。

Fabric 中的 Cosmos DB 是否支持专用链接?

Cosmos DB 项目级别当前不支持专用链接。 但是,专用链接在 Fabric 租户级别提供,以保护与 Fabric 服务的连接。

有关详细信息,请参阅 Fabric 中的专用链接

我的数据是否离开 Fabric 租户?

否。 Fabric 中的 Cosmos DB 中的所有数据都保留在 Fabric 租户和区域中。 到 OneLake 的数据复制发生在客户的环境中,不会离开租户边界。

计费和成本管理

与 Fabric 中的 Cosmos DB 相关的成本是多少?

Fabric 计算和存储使用量中的 Cosmos DB 使用容量单位(OU)通过构造容量计费。 Cosmos DB作使用的请求单位(RU)会自动转换为容量单位进行计费。 转换公式为:100 RU/s = 0.067 RU/hr。

有关详细信息,请参阅 Fabric 中 Cosmos DB 的计费和利用率

如何在构造消耗中监视 Cosmos DB?

可以使用 Microsoft Fabric 容量指标应用监视 Cosmos DB 消耗量。 此应用提供跨所有 Fabric 工作负荷(包括 Cosmos DB)的容量消耗的集中视图。 可以筛选应用以仅显示 Cosmos DB 相关活动并跟踪使用趋势。

有关详细信息,请参阅 Fabric 中 Cosmos DB 的计费和利用率 ,以及 监视 Fabric 中的 Cosmos DB

Fabric 中的 Cosmos DB 需要哪些许可选项?

在 Fabric 中使用 Cosmos DB 需要 Power BI Premium、Fabric 容量或试用容量。 使用情况根据 Fabric 容量中提供的容量单位(OU)进行度量。

有关许可证的详细信息,请参阅 Microsoft Fabric 许可证

可用性和区域

Fabric 中的 Cosmos DB 在何处可用?

Fabric 中的 Cosmos DB 在支持 Microsoft Fabric 的区域可用。 Cosmos DB 数据库位于 Fabric 工作区的区域,该区域基于容量区域。

有关受支持区域的当前列表,请参阅 Fabric 区域可用性

我的 Cosmos DB 数据库位于哪个区域?

Cosmos DB 数据库位于 Fabric 工作区的区域。 工作区区域由分配给它的容量确定,该容量显示在“许可证信息”页下的“工作区设置”中。

有关详细信息,请参阅 Fabric 区域可用性

Fabric 中的 Cosmos DB 是否支持多区域部署?

Fabric 数据库中的 Cosmos DB 部署在单个区域(Fabric 工作区的区域)。 目前不支持多区域部署。 但是,底层基础结构在区域内提供高可用性。

有关详细信息,请参阅 Fabric 中 Cosmos DB 的限制

Fabric 中的 Cosmos DB 是否支持可用性区域?

是的。 Cosmos DB 跨可用性区域部署所有资源,从而在受支持的区域中提供增强的复原能力和高可用性。

有关详细信息,请参阅 Fabric 可用性区域支持

限制和配额

可以在 Cosmos DB 数据库中创建多少个容器?

默认情况下,数据库最多支持 25 个容器。 可以通过提交支持票证来增加此限制。

有关详细信息,请参阅 Fabric 中 Cosmos DB 的限制

Fabric 中的 Cosmos DB 是否支持存储过程、触发器和用户定义的函数?

否。 Cosmos DB 存储过程、触发器和用户定义的函数(UDF)当前在 Fabric 中的 Cosmos DB 中不受支持。

有关详细信息,请参阅 Fabric 中 Cosmos DB 的限制

是否可以在 Fabric 中重命名 Cosmos DB 项目?

否。 Fabric 中的 Cosmos DB 目前不支持项目重命名。

有关详细信息,请参阅 Fabric 中 Cosmos DB 的限制

JSON 数据大小是否有任何限制?

Cosmos DB 中的文档限制为 2 MB。

从镜像 SQL 分析终结点查询时,将截断文档内大于 8 KB 的 JSON 字符串。 解决方法是在 Fabric Lakehouse 中创建镜像数据库的快捷方式,或使用 Spark 查询数据。

有关详细信息,请参阅 Fabric 中 Cosmos DB 的限制

开发和集成

能否将 Fabric 中的 Cosmos DB 与笔记本和 Spark 配合使用?

是的。 可以使用 Fabric 笔记本直接与 Fabric 中的 Cosmos DB 中的数据交互。 此外,Fabric 中的 Cosmos DB 中的数据会自动镜像到 Delta Parquet 格式的 OneLake,使其可从 Apache Spark 笔记本访问。 可以使用 Spark 对 Cosmos DB 数据执行分析、数据科学工作流和机器学习作。

有关详细信息,请参阅 Fabric 中的 Cosmos DB 中的镜像 OneLake ,或者将 Spark 与 Fabric 中的 Cosmos DB 配合使用 ,或者 将 Fabric 笔记本与 Fabric 中的 Cosmos DB 配合使用

如何在 Power BI 的 Fabric 数据中使用 Cosmos DB?

可以使用 Direct Lake 模式直接在 Fabric 数据中通过 Cosmos DB 创建 Power BI 报表。 OneLake 中的镜像数据以 v 排序的 Delta 表的形式存储,可实现高性能报告,而无需重复数据。

有关详细信息,请参阅 在 Fabric 中使用 Cosmos DB 创建报表

Fabric 中的 Cosmos DB 是否支持持续集成和部署(CI/CD)?

是的。 可以使用 Fabric 的部署管道和 Git 集成在 Fabric 中实现 Cosmos DB 的 CI/CD 工作流。 这样,就可以对数据库架构、配置和部署自动化进行版本控制。

有关详细信息,请参阅 Fabric 中 Cosmos DB 的持续集成和部署

是否可以将数据从 Azure Cosmos DB 迁移到 Fabric 中的 Cosmos DB?

是的。 可以使用各种方法将数据从 Azure Cosmos DB 迁移到 Fabric 中的 Cosmos DB,包括:

  • Azure 数据工厂或结构数据工厂管道
  • SDK 中的 Azure Cosmos DB 批量导入功能
  • 用于大规模数据迁移的 Apache Spark
  • 使用 SDK 的自定义迁移脚本
  • Azure Cosmos DB 桌面数据迁移工具

迁移过程涉及从 Azure Cosmos DB 导出数据,并使用兼容 SDK 和连接字符串将数据导入 Fabric 中的 Cosmos DB,并使用 Microsoft Entra 身份验证。