注意
Apache Airflow 作业由 Apache Airflow 提供支持。
在当今由数据驱动的世界中,确保数据模型保持最新和准确对于制定明智的业务决策至关重要。 随着数据的增长,必须定期刷新这些模型,这样才能确保报表和仪表板反映最新信息。 手动刷新可能非常耗时且易出错,这时 Apache Airflow 的编排、调度和监视功能就发挥作用了。 借助 Airflow,组织可以自动执行 Power BI 语义模型的刷新过程,只需最少的手动干预,就能及时准确地更新数据。
本文介绍了将 Apache Airflow 与 Power BI 集成,以使用数据工作流自动刷新语义模型。 本文提供分步指南,用于设置环境、配置连接和创建工作流以无缝更新 Power BI 语义模型。
先决条件
若要开始,必须满足以下先决条件:
租户级管理员必须启用 “服务主体可以调用 Fabric 公共 API”:
- 转到 Microsoft Fabric 管理员门户,并导航到“租户设置”。
- 在“开发人员设置”下,展开“服务主体可以调用 Fabric 公共 API”部分。
- 切换“启用”按钮,然后选择“整个组织”或“特定安全组”。
- 选择“应用”。
创建服务主体。 需要在 Power BI 工作区中将服务主体添加为参与者。
添加 Apache Airflow 要求
导航到“设置”,然后选择“环境配置”。
在“Apache Airflow 要求”下,包含“airflow-powerbi-plugin”。
选择“应用”保存更改。
创建 Apache Airflow 连接以连接到 Power BI 工作区
选择“查看 Airflow 连接”以查看已配置的所有连接的列表。
添加新连接。 可以使用
Generic
连接类型。 存储以下字段:- 连接 ID:连接 ID。
- 连接类型:通用
- 登录:服务主体的客户端 ID。
- 密码:服务主体的客户端密码。
- 其他信息:{“tenantId”:服务主体的租户 ID。}
选择“保存”。
创建 Apache Airflow DAG
首先选择“新建 DAG 文件”卡。 然后,向文件分配名称并选择“创建”。
创建后,会显示样板 DAG 代码。 编辑文件以包含示例 DAG。 此 DAG 会同步触发 Power BI 语义模型刷新。 使用 Power BI 语义模型 ID 和工作区 ID 分别更新
dataset_id
和workspace_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
为 Power BI 创建插件文件(可选)
如果想要从 Airflow UI 启用到 Power BI 的外部监视链接,请执行以下步骤:
在“plugins”文件夹下创建新文件。
将下面提供的内容粘贴到文件中。
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,
]
- 完成后,会看到使用外部监视链接加载到 Power BI 语义模型刷新的 DAG。
监视数据工作流 DAG 并从 Apache Airflow UI 运行它
单击“保存”后,文件会自动加载到 Apache Airflow UI 中。 若要监视这些文件,请选择“在 Apache Airflow 中监视”按钮。