教程:使用 Apache Airflow 作业刷新 Power BI 语义模型

注意

Apache Airflow 作业由 Apache Airflow 提供支持。

在当今由数据驱动的世界中,确保数据模型保持最新和准确对于制定明智的业务决策至关重要。 随着数据的增长,必须定期刷新这些模型,这样才能确保报表和仪表板反映最新信息。 手动刷新可能非常耗时且易出错,这时 Apache Airflow 的编排、调度和监视功能就发挥作用了。 借助 Airflow,组织可以自动执行 Power BI 语义模型的刷新过程,只需最少的手动干预,就能及时准确地更新数据。

本文介绍了将 Apache Airflow 与 Power BI 集成,以使用数据工作流自动刷新语义模型。 本文提供分步指南,用于设置环境、配置连接和创建工作流以无缝更新 Power BI 语义模型。

先决条件

若要开始,必须满足以下先决条件:

添加 Apache Airflow 要求

  1. 导航到“设置”,然后选择“环境配置”。

  2. 在“Apache Airflow 要求”下,包含“airflow-powerbi-plugin”。

  3. 选择“应用”保存更改。

    “添加 Airflow 要求”的屏幕截图。

创建 Apache Airflow 连接以连接到 Power BI 工作区

  1. 选择“查看 Airflow 连接”以查看已配置的所有连接的列表。

    查看 Apache Airflow 连接的屏幕截图。

  2. 添加新连接。 可以使用 Generic 连接类型。 存储以下字段:

    • 连接 ID:连接 ID。
    • 连接类型:通用
    • 登录:服务主体的客户端 ID。
    • 密码:服务主体的客户端密码。
    • 其他信息:{“tenantId”:服务主体的租户 ID。}
  3. 选择“保存”。

创建 Apache Airflow DAG

  1. 首先选择“新建 DAG 文件”卡。 然后,向文件分配名称并选择“创建”。

  2. 创建后,会显示样板 DAG 代码。 编辑文件以包含示例 DAG。 此 DAG 会同步触发 Power BI 语义模型刷新。 使用 Power BI 语义模型 ID 和工作区 ID 分别更新 dataset_idworkspace_id 参数。

from datetime import datetime
# The DAG object
from airflow import DAG
from airflow.operators.bash import BashOperator
from airflow_powerbi_plugin.operators.powerbi import PowerBIDatasetRefreshOperator

with DAG(
        dag_id='refresh_dataset_powerbi',
        schedule_interval=None,
        start_date=datetime(2023, 8, 7),
        catchup=False,
        concurrency=20,
) as dag:

    # [START howto_operator_powerbi_refresh_dataset]
    dataset_refresh = PowerBIDatasetRefreshOperator(
        powerbi_conn_id= "powerbi_default",
        task_id="sync_dataset_refresh",
        dataset_id="<dataset_id>",
        group_id="<workspace_id>",
    )
    # [END howto_operator_powerbi_refresh_dataset]

    dataset_refresh

  1. 选择“保存”以保存文件。

    显示如何在 Microsoft Fabric 中保存 DAG 文件的屏幕截图。

为 Power BI 创建插件文件(可选)

如果想要从 Airflow UI 启用到 Power BI 的外部监视链接,请执行以下步骤:

  1. 在“plugins”文件夹下创建新文件。

  2. 将下面提供的内容粘贴到文件中。

from airflow.plugins_manager import AirflowPlugin

from airflow_powerbi_plugin.hooks.powerbi import PowerBIHook
from airflow_powerbi_plugin.operators.powerbi import PowerBILink

# Defining the plugin class
class AirflowExtraLinkPlugin(AirflowPlugin):
    """
    PowerBI plugin.
    """

    name = "powerbi_plugin"
    operator_extra_links = [
        PowerBILink(),
    ]
    hooks= [
        PowerBIHook,
    ]
  1. 完成后,会看到使用外部监视链接加载到 Power BI 语义模型刷新的 DAG。

监视数据工作流 DAG 并从 Apache Airflow UI 运行它

单击“保存”后,文件会自动加载到 Apache Airflow UI 中。 若要监视这些文件,请选择“在 Apache Airflow 中监视”按钮。

监视 Airflow DAG 的屏幕截图。

快速入门:创建 Apache Airflow 作业