将数据流存储配置为使用 Azure Data Lake Gen 2

默认情况下,Power BI 中使用的数据存储在由 Power BI 提供的内部存储中。 通过将数据流与 Azure Data Lake Storage Gen 2 (ADLS Gen2) 集成,可以将数据流存储在组织的 Azure Data Lake Storage Gen2 帐户中。 此功能实际上使你可以将自己的存储引入 Power BI 数据流,并在租户或工作区级别建立连接。

使用 ADLS Gen 2 工作区或租户连接的原因

附加数据流后,Power BI 配置并保存引用,以便你现在可以将数据读写到自己的 ADLS Gen 2。 Power BI 将数据存储为 Common Data Model (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 服务中完成以下步骤之前进行同步。

  • Power BI 工作区租户区域应与存储帐户区域相同。

  • 需要 TLS(传输层安全性)版本 1.2(或更高版本),以确保终结点的安全。 Web 浏览器和使用 TLS 1.2 之前的 TLS 版本的其他客户端应用程序将无法连接。

  • 不支持在多重身份验证 (MFA) 后将数据流与 ADLS Gen 2 连接。

  • 最后,你可以从管理门户连接到任何 ADLS Gen 2,但如果直接连接到工作区,则必须先确保工作区中没有数据流,然后再进行连接。

注意

在适用于美国政府 GCC 客户的 Power BI 服务中,自带存储 (Azure Data Lake Gen 2) 不可用。 有关哪些功能可用和不可用的详细信息,请参阅面向美国政府客户的 Power BI 功能可用性

下表描述了 ADLS 的权限以及 ADLS Gen 2 和 Power BI 所需的 Power BI 的权限:

操作 ADLS 权限 最低的 Power BI 权限
将 ADLS Gen 2 连接到 Power BI 租户 所有者 Power BI 管理员
将 ADLS Gen 2 连接到工作区 所有者 工作区管理员
创建写回到连接的 ADLS 帐户的 Power BI 数据流 不适用 工作区参与者
使用 Power BI 数据流 不适用 工作区查看器

在工作区级别连接到 Azure Data Lake Gen 2

导航到没有数据流的工作区。 选择“工作区设置”。 选择“Azure 连接”选项卡,然后选择“存储”部分。

Screenshot of the Workspace settings pane on the Azure connections tab.

如果管理员已经配置了租户分配的 ADLS Gen 2 帐户,则会显示“使用默认 Azure 连接”选项。 可以使用两个选项:

  • 通过选中名为“使用默认 Azure 连接”的框来使用租户配置的 ADLS Gen 2 帐户,或
  • 选择“连接到 Azure”以指向新的 Azure 存储帐户。

当选择“连接到 Azure”时,Power BI 会检索你有权访问的 Azure 订阅的列表。 填写下拉列表。 然后选择有效的 Azure 订阅、资源组和启用了分层命名空间选项(即 ADLS Gen2 标志)的存储帐户。 用于连接到 Azure 的个人帐户只使用一次,用于设置初始连接并授予 Power BI 服务帐户读取和写入数据的权限,之后不再需要原始用户帐户来保持连接活跃。

Screenshot of the Settings window after choosing Connecting to Azure.

选择所选内容后,选择“保存”,此时已成功将工作区连接到你自己的 ADLS Gen2 帐户。 Power BI 会自动为存储帐户配置所需权限,并设置将向其写入数据的 Power BI 文件系统。 此时,此工作区中每个数据流的数据都将直接写入该文件系统,该文件系统可与其他 Azure 服务配合使用。 现在拥有所有组织或部门数据的单一来源。

Azure 连接配置

配置 Azure 连接是一个可选设置,具有可选择设置的更多属性:

  • 租户级存储,以便设置默认值,和/或
  • 工作区级存储,以便指定每个工作区的连接

如果希望仅使用集中式数据湖或希望将此存储设置为默认选项,则可以选择配置租户级存储。 我们不会自动开始使用默认值来使配置更灵活,因此,你可以根据需要灵活地配置使用此连接的工作区。 如果你配置租户分配的 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>

无论工作区是位于共享容量还是 Premium 容量中,数据流将数据存储在 ADLS Gen 2 的文件夹层次结构中的位置都相同。

以下示例使用 Northwind Odata 示例的 Orders 表。

Screenshot of the file explorer showing an example using the Orders table of the Northwind Odata sample.

在上图中:

  • 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,可以在工作区或租户级别执行此操作。 请确保具有适当的访问级别。 请参阅先决条件,了解详细信息。

存储结构遵循 Common Data Model 格式。 若要详细了解存储结构和 CDM,请访问什么是分析数据流的存储结构使用 Common Data Model 来优化 Azure Data Lake Storage Gen2

正确配置后,数据和元数据将由你掌控。 许多应用程序都知道 CDM,并且可以使用 Azure、PowerApps 和 PowerAutomate 扩展数据。 还可以通过遵循格式或读取原始数据来使用第三方生态系统。

从工作区或租户分离 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 中的数据,请先前往资源本身并清除数据。 此操作涉及执行以下步骤。

  1. 从 Power BI 导出数据流的副本。 或者复制 model.js 文件。 model.js 文件存储在 ADLS 中。

  2. 删除数据流。

  3. 分离 ADLS。

  4. 通过使用导入来重新创建数据流。 需要在导入之前删除增量刷新数据(如适用)。 可以通过删除 model.json 文件上的相关分区来完成此操作。

  5. 配置刷新/重新创建的增量刷新策略。

通过使用 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 的详细信息: