与 Power BI 一起使用的数据默认存储在 Power BI 提供的内部存储中。 通过数据流与 Azure Data Lake Storage Gen2(ADLS Gen2)的集成,可以将数据流存储在组织的 Azure Data Lake Storage Gen2 帐户中。 此功能实质上允许你“自带存储”到 Power BI 数据流,并在租户或工作区级别建立连接。
使用 ADLS Gen 2 工作区或租户连接的原因
附加数据流后,Power BI 将配置并保存引用,以便现在可以将数据读取和写入自己的 ADLS Gen 2。 Power BI 以通用数据模型(CDM)格式存储数据,除了数据流本身生成的实际数据外,还捕获有关数据的元数据。 此功能可解锁许多强大的功能,并使数据以及 CDM 格式的关联元数据能够提供扩展性、自动化、监视和备份方案。 使此数据在自己的环境中可用且易于访问时,它使你能够将组织中创建的见解和数据民主化。 它还可让你能够创建具有各种复杂性的进一步解决方案。 解决方案可以是 POWER Platform、Azure 中的 CDM 感知自定义应用程序和解决方案,以及通过合作伙伴和独立软件供应商 (ISV) 生态系统提供的自定义应用程序和解决方案。 也可以创建应用程序来读取 CSV。 数据工程师、数据科学家和分析师现在可以处理、使用和重复使用 ADLS Gen 2 中策展的通用数据集。
可通过两种方法配置要使用的 ADLS Gen 2 存储:可以使用租户分配的 ADLS Gen 2 帐户,也可以在工作区级别自带 ADLS Gen 2 存储。
先决条件
若要自带 ADLS Gen 2 帐户,必须在存储帐户层拥有 “所有者” 权限。 资源组或订阅级别的权限将不起作用。 如果你是管理员,你仍必须为自己赋予“所有者”权限。 目前不支持防火墙后面的 ADLS Gen2 存储帐户。
必须使用已启用 分层命名空间(HNS) 创建存储帐户。
必须在与 Power BI 租户相同的Microsoft Entra 租户中创建存储帐户。
用户必须在存储帐户级别具有存储 Blob 数据所有者角色、存储 Blob 数据读取者角色和所有者角色(范围应为此资源,而不是继承)。 任何已应用的角色更改可能需要几分钟才能同步,并且必须先同步,然后才能在 Power BI 服务中完成以下步骤。
对于 Pro 工作区,存储帐户应与 Fabric 主区域位于同一区域。 对于高级工作区,存储帐户应与高级容量位于同一区域。
需要 TLS(传输层安全性)版本 1.2(或更高版本)来保护终结点。 使用低于 TLS 1.2 的 TLS 版本的 Web 浏览器和其他客户端应用程序将无法连接。
不支持通过多重身份验证(MFA)绑定 ADLS Gen 2 的数据流。
最后,可以从 管理门户连接到任何 ADLS Gen 2,但如果直接连接到工作区,必须先确保工作区中没有数据流,然后再连接。
注释
自带存储(Azure Data Lake Gen 2)在 Power BI 服务中不适用于美国政府 GCC 客户。 有关哪些功能可用以及哪些功能不可用的详细信息,请参阅 美国政府客户的 Power BI 功能可用性。
下表介绍了 ADLS Gen 2 和 Power BI 所需的 ADLS 和 Power BI 的权限:
| Action | ADLS 权限 | 最低 Power BI 权限 |
|---|---|---|
| 将 ADLS Gen 2 连接到 Power BI 租户 | 所有者 | Power BI 管理员 |
| 将 ADLS Gen 2 连接到工作区 | 所有者 | 工作区管理员 |
| 创建 Power BI 数据流,回写回连接的 ADLS 帐户 | 不適用 | 工作区参与者 |
| 使用 Power BI 数据流 | 不適用 | 工作区查看器 |
在工作区级别上连接到 Azure Data Lake Gen 2
导航到没有数据流的工作区。 选择“工作区设置”。 选择 “Azure 连接 ”选项卡,然后选择“ 存储 ”部分。
如果管理员已配置租户分配的 ADLS Gen 2 帐户, 则“使用默认 Azure 连接 ”选项可见。 可以使用两个选项:
- 选择名为 “使用默认 Azure 连接”的框,使用租户配置的 ADLS Gen 2 帐户,或
- 选择 “连接到 Azure ”以指向新的 Azure 存储帐户。
选择 “连接到 Azure”时,Power BI 将检索有权访问的 Azure 订阅列表。 填写下拉菜单。 然后选择启用了分层命名空间选项的有效 Azure 订阅、资源组和存储帐户,即 ADLS Gen2 标志。 用于连接到 Azure 的个人帐户仅使用一次,用于设置初始连接并授予 Power BI 服务帐户读取和写入数据的权限,之后不再需要原始用户帐户来保持连接活动状态。
选择所选内容后,选择“ 保存 ”,现在已成功将工作区连接到自己的 ADLS Gen2 帐户。 Power BI 会自动配置具有所需权限的存储帐户,并设置要在其中写入数据的 Power BI 文件系统。 此时,此工作区中的每个数据流数据都会直接写入此文件系统,该文件系统可用于其他 Azure 服务。 现在,你拥有所有组织或部门数据的单个源。
Azure 连接配置
配置 Azure 连接是一个可选设置,其中包含可选择性设置的更多属性:
- 租户级别存储,用于设置默认值和/或
- 工作区级存储,用于指定每个工作区的连接
如果要仅使用集中式 Data Lake,或者希望此存储成为默认选项,可以选择配置租户级存储。 我们不会自动开始使用默认设置,以允许配置灵活性,因此你可以灵活地配置在你认为合适的情况下使用此连接的工作区。 如果配置租户分配的 ADLS Gen 2 帐户,仍需将每个工作区配置为使用此默认选项。
可以选择或另外将工作区级存储权限配置为单独的选项,从而完全灵活地按工作区在工作区上设置特定的 ADLS Gen 2 帐户。
总之,如果允许租户级存储和工作区级存储权限,则工作区管理员可以选择使用默认 ADLS 连接,或选择配置与默认不同的另一个存储帐户。 如果未设置租户存储,则工作区管理员可以根据需要按工作区配置 ADLS 帐户。 最后,如果选择租户级存储并且不允许工作区级别存储,则工作区管理员可以选择将其数据流配置为使用此连接。
ADLS Gen 2 工作区连接的结构和格式
在 ADLS Gen 2 存储帐户中,所有数据流都存储在文件系统的 powerbi 容器中。
powerbi 容器的结构如下所示: <workspace name>/<dataflow name>/model.json<workspace name>/<dataflow name>/model.json.snapshots/<all snapshots><workspace name>/<dataflow name>/<table name>/<tablesnapshots>
数据流在 ADLS Gen 2 的文件夹层次结构中存储数据的位置,无论工作区是处于共享容量模式还是高级容量模式,都是相同的。
以下示例使用 Northwind Odata 示例的 Orders 表。
在上图中:
- model.json 是数据流的最新版本。
- model.json.snapshots 都是数据流的早期版本。 如果您需要早期版本的混搭或增量式设置,此历史记录将非常有用。
- tablename 是包含数据流刷新完成后生成的数据的文件夹。
我们仅写入此存储帐户,并且当前不会删除数据。 因此,即使在分离之后,我们也不会从 ADLS 帐户中删除,因此上述列表中提及的所有文件仍存储。
注释
数据流允许链接或引用其他数据流中的表。 在此类数据流中, model.json 文件可以引用同一工作区或其他工作区中另一个数据流的另一 model.json 。
在 ADLS Gen 2 存储帐户之间和在同一帐户内部移动文件
将数据流从一个 ADLS Gen2 存储帐户移到另一个存储帐户时,需要确保 更新model.json 文件中的路径以反映新位置。 这是因为 model.json 文件包含数据流的路径和数据的路径。 如果不更新路径,数据流将无法找到数据并导致权限错误。 若要更新路径,可以使用以下步骤:
- 在文本编辑器中打开 model.json 文件。
- 找到存储帐户 URL,并将其替换为新的存储帐户 URL。
- 保存文件。
- 覆盖 ADLS Gen2 存储帐户中的现有 model.json 文件。
ADLS Gen 2 工作区连接的扩展性
如果要将 ADLS Gen 2 连接到 Power BI,可以在工作区或租户级别执行此作。 请确保具有正确的访问级别。 有关详细信息,请参阅先决条件。
存储结构遵循通用数据模型格式。 访问 分析数据流的存储结构 以及 使用通用数据模型优化 Azure Data Lake Storage Gen2,详细了解存储结构和 CDM。
正确配置后,数据和元数据由您掌控。 许多应用程序都知道 CDM,并且可以使用 Azure、PowerApps 和 Power Automate 扩展数据。 还可以通过符合格式或读取原始数据来使用第三方生态系统。
从工作区或租户分离 Azure Data Lake Gen 2
若要在工作区级别删除连接,必须先确保删除工作区中的所有数据流。 删除所有数据流后,在工作区设置中选择“ 断开连接 ”。 这同样适用于租户,但必须先确保所有工作区也已与租户存储帐户断开连接,然后才能在租户级别断开连接。
禁用 Azure Data Lake Gen 2
在 管理门户中的 数据流下,可以禁用用户访问此功能,并禁止工作区管理员自带 Azure 存储。
从 Azure Data Lake Gen 2 还原
将数据流存储配置为使用 Azure Data Lake Gen 2 后,无法自动还原。 返回到 Power BI 托管存储的过程是手动的。
若要还原您对第二代(Gen 2)的迁移,需要删除您的数据流并在同一工作区中重新创建它们。 然后,由于我们不会从 ADLS Gen 2 中删除数据,因此请转到资源本身并清理数据。 该操作涉及以下步骤。
从 Power BI 导出数据流的副本。 或者,复制 model.json 文件。 model.json 文件存储在 ADLS 中。
删除数据流。
分离 ADLS。
使用导入重新创建数据流。 在导入之前,需要删除增量刷新数据(如果适用)。 可以通过删除 model.json 文件中的相关分区来完成此作。
配置刷新/重新创建增量刷新策略。
使用 ADLS Gen 2 连接器来连接数据
本文档的范围介绍了 ADLS Gen 2 数据流连接,而不是 Power BI ADLS Gen 2 连接器。 使用 ADLS Gen 2 连接器是一个单独的、可能是额外的方案。 ADLS 连接器只是使用 ADLS 作为数据源。 因此,使用 Power Query Online 查询数据不必采用 CDM 格式,它可以是客户想要的任何数据格式。 有关详细信息,请参阅 Azure Data Lake Storage Gen2。
相关内容
以下文章提供有关数据流和 Power BI 的详细信息: