教程:使用 Apache Airflow DAG 运行 Fabric 项目

注意

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

目前,Fabric Apache Airflow 作业不支持专用网络和虚拟网络。

在本教程中,你将构建一个有向无环图(DAG),以运行包括 Microsoft Fabric 项目在内的内容。

  • Notebooks
  • dbt 作业
  • 复制作业
  • Spark 任务定义
  • Pipelines
  • 语义模型刷新
  • 用户数据函数

先决条件

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

  • 在 Apache Airflow 作业中,选择 “设置 ”齿轮按钮,选择 “环境配置”,并在数据工作流中 启用触发器 ,以允许使用可延迟的运算符。

    启用触发器的屏幕截图。

  • 若要使用 Fabric API 对 DAG 进行身份验证,可按照以下步骤使用以下任一方式:服务主体

    • 在 Fabric 中,选择 “设置”、“ 管理门户”、“ 租户设置”,并允许服务主体在构造租户上调用 Fabric 公共 API。

      启用了服务主体调用 Fabric 公共 API 的 Microsoft Fabric 管理门户设置的屏幕截图。

    • 在 Microsoft Entra ID 中, 创建服务主体。 保存以下值,供稍后用于 Apache Airflow 凭据:

    • 租户 ID

    • 客户端 ID

    • 机密

    • 授予服务主体适当的权限:

      1. 在 Microsoft Entra ID 中,在 应用注册下查找服务主体。
      2. 从菜单中选择 “管理” ,然后选择 “API 权限”。
      3. 选择“添加权限”,然后选择“Power BI 服务
      4. 选择“委托权限”。  
      5. 添加 Item.Read.AllItem.Execute.All。 (或者,也可以根据项类型添加读取和执行权限,如 DataPipeline.Execute.All、DataPipeline.Read.All、Notebook.Read.All 或 Notebook.Execute.All)。
      6. 最后,在将使用 Airflow 运行的项目所在的 工作区中,将服务主体添加为参与者

设置 Apache Airflow 连接

Apache Airflow 连接用于存储使用 Microsoft Fabric API 进行身份验证所需的凭据。 可以通过两种方式设置连接:

Fabric Apache Airflow 作业 UI

  1. “主页 ”栏上,选择“ 添加连接”。

    添加 Apache Airflow 连接的屏幕截图。

  2. 此时会打开一个弹出窗口,帮助你设置 Apache airflow Fabric 连接。 在本教程中,我们将使用服务主体。 遵循说明,并添加以下具体信息:

    • 连接 ID:连接 ID 的名称。
    • 描述: 连接说明
    • 端点: 您的 Fabric API 端点。 Ex. “https://api.fabric.microsoft.com"
    • 租户 ID: 租户 ID
    • 客户端 ID: 分配给应用的应用程序客户端 ID。
    • 客户端密码: 应用注册客户端密码。

    通过弹出窗口添加 Apache Airflow 连接的屏幕截图。

  3. 完成连接后,选择 “创建 ”。 还可以直接在 Airflow UI 中创建和管理 Microsoft Fabric 连接。 需要执行此操作才能定期刷新 SPN 机密。 如果使用 GIT 同步,以下说明将不起作用 - 在这种情况下,需要手动编辑 DAG。  

Apache Airflow UI

  1. 导航到 “查看 Airflow 连接 ”以添加新的 Apache Airflow 连接。

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

  2. 添加新连接并填写以下详细信息:

    • 连接 ID:连接 ID 的名称。

    • 连接类型:泛型

    • 登录: 分配给应用的应用程序(客户端)ID。

    • 密码: 上一步提取的刷新令牌。

    • 额外信息:此字段包含以下参数:

      • tenantId:(必填)请求路径中的 {tenant} 值可用于控制哪些用户可以登录到应用程序。
      • clientSecret:(可选,仅 Web 应用需要)应用注册的客户端密码。
      • scopes:(必需)应用访问 Microsoft Fabric API 所需的作用域的空格分隔字符串。

      复制以下 json 对象格式,更新值,删除注释,并将其粘贴到“额外”字段中。

      {
          "tenantId": "{tenant}",
          "scopes": "https://api.fabric.microsoft.com/Item.Execute.All https://api.fabric.microsoft.com/Item.Read.All offline_access",
          "clientSecret": "{client-secret}" // (Optional) NOTE: Only required for web apps.
      }
      

      为 Microsoft Fabric 设置 Apache Airflow 连接的屏幕截图。

  3. 选择“保存”。

创建 DAG 以触发 Microsoft Fabric 项运行

在 Apache Airflow 作业画布上,有三个磁贴。 选择 “运行结构”项目。 这将打开一个新的弹出窗口。 (未打开 DAG 时可访问)

用于运行 Fabric 项的画布磁贴的屏幕截图。

用于选择要运行的 Fabric 项目的弹出窗口截图。

  1. 使用下拉列表选择 Fabric 连接。 如果尚未创建连接,请选择 + 添加新的 Fabric 连接。

    弹出窗口的屏幕截图,选择要运行的 Fabric 项,其中突出显示了连接下拉列表。

  2. 然后,使用下拉列表选择工作区。

    在 DAG 设置弹出窗口中选择工作区的屏幕截图。

  3. 选择要运行的项类型。

    在 DAG 设置弹出窗口中选择项目类型的屏幕截图。

  4. 然后,选择要运行的项。

    用于选择要在 DAG 设置弹出窗口中运行的项的屏幕截图。

  5. 命名 DAG,然后配置最大超时时间,以及是否要启用 可延迟执行

    用于命名要在 DAG 设置弹出窗口中运行的 DAG 的屏幕截图。

  6. 选择 创建。 这将在编辑器中打开一个新的 DAG,供你查看和编辑。 然后,可以保存更改并运行 DAG。

    用于使用弹出窗口创建要运行 Fabric 提供程序的 DAG 的屏幕截图。

在 Fabric 管理的存储的“dags”文件夹中创建一个含以下代码的新 DAG 文件。 替换以下占位符:

  • fabric_conn_id:在上一步创建的连接 ID。
  • workspace_id:项所在的工作区 ID。
  • item_id:要运行项的 ID。 例如笔记本 ID 或管道 ID。
  • job_type:要运行的项的类型。 例如,对于笔记本,请使用“RunNotebook”,对于 Spark 作业定义,请使用“sparkjob”,对于管道使用“Pipeline”。 需要区分大小写。
  • wait_for_termination:如果设置为 True,则运算符会等待项运行完成,然后再继续执行下一个任务。
  • deferrable:如果设置为 True,则运算符可以在等待项运行完成时释放资源。
from airflow import DAG
from datetime import datetime
from apache_airflow_microsoft_fabric_plugin.operators.fabric import FabricRunItemOperator

with DAG(
  dag_id="Run_Fabric_Item",
  schedule_interval="@daily",
  start_date=datetime(2023, 8, 7),
  catchup=False,
) as dag:

  run_fabric_item = FabricRunItemOperator(
    task_id="run_fabric_item",
    fabric_conn_id="fabric_conn",
    workspace_id="<workspace_id>",
    item_id="<item_id>",
    job_type="<job_type>",
    wait_for_termination=True,
    deferrable=True,
  )

  run_fabric_item

监视 DAG

在 Apache Airflow 作业 UI 中

  1. 在 Fabric 托管存储中打开 DAG 文件时,“结果”会显示在底部。 选择箭头以查看 DAG 运行的结果。

    屏幕截图显示如何在 Apache Airflow 作业本身中查看 Apache Airflow DAG。

在 Apache Airflow UI 中

  1. 转到 Airflow UI,然后选择所创建的 DAG。

  2. 如果添加插件,会看到外部监视链接。 选择它可导航到项运行。

    通过外部链接查看 Apache Airflow DAG 的屏幕截图。

  3. Xcom 集成:触发 DAG 以查看 Xcom 选项卡中的任务输出。

    使用 Xcom 选项卡查看 Apache Airflow DAG 的屏幕截图。

快速入门:创建 Apache Airflow 作业Apache Airflow 作业工作区设置