Managed Airflow 概览

Managed Airflow(第 3 代) | Managed Airflow(第 2 代) | Managed Airflow(旧版第 1 代)

本页简要介绍了 Airflow 和 DAG,并介绍了 Managed Airflow 的功能和特性。

如需详细了解 Managed Airflow 版本中的新功能, 请参阅 版本说明

关于 Managed Airflow

Managed Airflow 是一项全代管式工作流编排服务,可帮助您创建、安排、监控和管理跨越多个云平台和本地数据中心的工作流流水线。

Managed Airflow 在常用的 Apache Airflow 开源项目的基础上构建而成,并 支持使用 Python 编程语言进行操作。

通过使用 Managed Airflow(而不是 Apache Airflow 的本地实例),您可以从 Airflow 的强大功能中获益,而不会产生安装或管理开销。借助 Managed Airflow,您可以快速创建 Managed Airflow 环境,并使用 Airflow 原生工具(例如功能强大的 Airflow 网页界面和命令行工具),从而全力专注于工作流,而无需管理基础架构。

Managed Airflow 版本之间的差异

如需详细了解 Managed Airflow 主要版本之间的差异,请参阅 Managed Service for Apache Airflow 版本控制概览

Airflow 和 Airflow DAG(工作流)

在数据分析中,工作流表示用于提取、转换、分析或利用数据的一系列任务。在 Airflow 中,工作流是使用 DAG(即“有向无环图”)创建的。

DAG 与任务之间的关系
图 1.DAG 与任务之间的关系

DAG DAG是要安排和运行的任务的集合,任务的组织方式反映了它们的关系和依赖项。DAG 是使用 Python 文件创建的,这些文件使用代码定义 DAG 结构。DAG 的用途是确保每项任务在正确的时间以正确的顺序执行。

DAG 中的每个任务 可以表示几乎任何事物,例如,一个任务可以执行以下任何功能:

  • 准备数据以进行提取
  • 监控 API
  • 发送电子邮件
  • 运行流水线

除了按计划运行 DAG 之外,您还可以手动或通过事件(例如 Cloud Storage 存储桶中的更改)触发 DAG。如需了解详情,请参阅安排和触发 DAG

如需详细了解 DAG 和 任务,请参阅 Apache Airflow 文档

Managed Airflow 环境

Managed Airflow 环境 是以 Google Kubernetes Engine 为基础的独立 Airflow 部署。它们使用 Airflow 内置的连接器与其他 Google Cloud 服务协同工作。您可以在任何 受支持的区域的单个 Google Cloud 项目中 创建一个或多个环境

Managed Airflow 会预配 Google Cloud 用于运行 工作流和所有 Airflow 组件的服务。环境的主要组件包括:

  • GKE 集群:Airflow 调度器、触发器和工作器等 Airflow 组件作为 GKE 工作负载 在为您的环境创建的单个集群中运行,并负责 处理和执行 DAG。

    集群还托管 Composer 代理和 Airflow 监控等其他 Managed Airflow 组件,帮助管理 Managed Airflow 环境、收集存储在 Cloud Logging 中的日志以及收集 上传到 Cloud Monitoring 的指标。

  • Airflow 网络服务器:Web 服务器运行 Apache Airflow 界面。

  • Airflow 数据库:数据库存储 Apache Airflow 元数据。

  • Cloud Storage 存储桶:Managed Airflow 会将 Cloud Storage 存储桶与您的环境相关联。 此存储桶也称为 环境的存储桶,用于存储相应环境的 DAG日志、自定义 插件和 数据。如需详细了解环境的 存储桶,请参阅 存储在 Cloud Storage 中的数据

如需深入了解环境的组成部分,请参阅 环境架构

Managed Airflow 界面

Managed Airflow 提供了用于管理环境、在环境中运行的 Airflow 实例以及各个 DAG 的界面。

例如,您可以创建和配置 Managed Airflow 环境,方法包括使用 Google Cloud 控制台、 Google Cloud CLI、Cloud Composer API或 Terraform。

再举一个例子,您可以通过 Google Cloud 控制台、原生 Airflow 界面或运行 Google Cloud CLI 和 Airflow CLI 命令管理 DAG

Managed Airflow 中的 Airflow 功能

使用 Managed Airflow 时,您可以管理和使用 Airflow 功能,例如:

  • Airflow DAG:您可以在 Google Cloud 控制台中或使用原生 Airflow 界面添加、更新、移除或触发 Airflow DAG。

  • Airflow 配置选项:您可以将 Airflow 配置选项从 Managed Airflow 使用的默认值更改为自定义值。在 Managed Airflow 中,某些配置选项被 屏蔽,您无法更改其值。

  • Airflow 连接

  • Airflow 界面

  • Airflow CLI

  • 自定义插件:您可以在 Managed Airflow 环境中安装 自定义 Airflow 插件,例如 自定义的内部 Apache Airflow 运算符、钩子、 传感器或接口。

  • Python 依赖项:您可以从环境中的 Python Package Index 或从私有软件包代码库(包括 Artifact Registry 代码库)安装 Python 依赖项。如果依赖项未包含在软件包索引中,您还可以使用插件。

  • 针对 DAG、Airflow 组件和 Managed Airflow 环境的日志记录和监控:

Managed Airflow 中的访问权限控制

您可以管理 Google Cloud 项目级安全性,还可以 分配 IAM 角色,以允许个别 用户修改或创建环境。如果某人无权访问您的项目,或者不具备适当的 Managed Airflow IAM 角色,则此人无法访问您的任何环境。

除了 IAM 之外,您还可以使用