Cloud Composer 概览

Cloud Composer 1 |Cloud Composer 2 |Cloud Composer 3

本页面简要介绍了 Airflow 和 DAG,并介绍了 Cloud Composer 的特性和功能

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

Cloud Composer 简介

Cloud Composer 是一项全代管式工作流编排服务 您可以创建、安排、监控和管理工作流流水线 跨多种云环境和本地数据中心的网络。

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

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

Cloud Composer 版本之间的差异

要详细了解 Cloud Composer,请参阅 Cloud Composer 版本控制概览

Airflow 和 Airflow DAG(工作流)

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

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

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

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

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

除了按时间表运行 DAG 之外,您还可以手动触发 DAG, 来响应事件,例如 Cloud Storage 中的 存储桶。如需了解详情,请参阅触发 DAG

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

Cloud Composer 环境

Cloud Composer 环境是独立的 Airflow 部署基于 Google Kubernetes Engine 的解决方案。可与其他 Google Cloud 服务搭配使用 和 Google Cloud 服务。您可以 在单个 Google Cloud 中创建一个或多个环境 项目(位于任何受支持的区域中)。

Cloud Composer 预配 Google Cloud 服务, 你的工作流和所有 Airflow 组件一个主要组件 环境:

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

    该集群还托管 其他 Cloud Composer 组件,例如 Composer Agent 和 Airflow Monitoring,用于帮助管理 Cloud Composer 收集日志以存储在 Cloud Logging 中,并收集 上传到 Cloud Monitoring。

  • Airflow Web 服务器:该 Web 服务器用于运行 Apache Airflow 界面。

  • Airflow 数据库:该数据库包含 Apache Airflow 元数据。

  • Cloud Storage 存储桶:Cloud Composer 关联对象 Cloud Storage 存储桶与您的环境相关联。 此存储桶(也称为环境的存储桶)用于存储 DAGlogs、custom 插件、 和环境数据如需详细了解环境的 存储桶 存储在 Cloud Storage 中的数据

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

Cloud Composer 接口

Cloud Composer 提供了各种界面 在环境和各个 DAG 中运行的 Airflow 实例。

例如,您可以创建和配置 Cloud Composer 环境, Google Cloud CLI、Cloud Composer API 或 Terraform。

再例如,您可以从以下位置管理 DAG: Google Cloud 控制台或原生 Airflow 界面 Google Cloud CLI 和 Airflow CLI 命令

Cloud Composer 中的 Airflow 功能

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

Cloud Composer 中的访问权限控制

您可以在 Google Cloud 项目级别管理安全性, 分配 IAM 角色,以便允许 修改或创建环境的权限。如果某人没有访问权限 或者没有适当的 Cloud Composer IAM 角色,则此人无法访问您的任何环境。

除了 IAM,您还可以使用 Airflow 界面访问权限控制,基于 Apache Airflow 访问权限控制模型。

如需详细了解 Cloud Composer 中的安全功能,请参阅 Cloud Composer 安全概览

环境网络

Cloud Composer 支持多种网络配置 具有许多配置选项例如,在专用 IP 因此 DAG 和 Airflow 组件与公共资源完全隔离, 。

如需详细了解 Cloud Composer 中的网络,请参阅 例如:

常见问题解答

Cloud Composer 使用哪个版本的 Apache Airflow?

Cloud Composer 环境基于 Cloud Composer 映像。创建 则可以选择具有特定 Airflow 版本的映像:

  • Cloud Composer 3 支持 Airflow 2。
  • Cloud Composer 2 支持 Airflow 2。
  • Cloud Composer 1 支持 Airflow 1 和 Airflow 2。

您可以控制环境的 Apache Airflow 版本。您可以 您决定将您的环境升级到 Cloud Composer 映像。每个 Cloud Composer 版本都支持多个 Apache Airflow 版本。

我可以使用 Airflow 原生界面和 CLI 吗?

您可以访问环境的 Apache Airflow 网页界面。您的每种环境都有自己的 Airflow 界面。如需详细了解如何访问 Airflow 界面,请参阅 Airflow 网页界面

如需在您的环境中运行 Airflow CLI 命令,请使用 gcloud 命令。 如需详细了解如何在 Cloud Composer 环境中运行 Airflow CLI 命令,请参阅 Airflow 命令行界面

我可以使用自己的数据库作为 Airflow 数据库吗?

Cloud Composer 为 Airflow 使用代管式数据库服务 数据库。无法使用用户提供的数据库 Airflow 数据库

我可以使用自己的集群作为 Cloud Composer 集群吗?

Cloud Composer 使用 Google Kubernetes Engine 服务 删除运行 Airflow 组件的环境集群。这些集群 由 Cloud Composer 全代管式

Cloud Composer 环境无法基于 自行管理的 Google Kubernetes Engine 集群。

我可以使用自己的 Container Registry 吗?

Cloud Composer 使用 Artifact Registry 服务来管理容器 多个映像存储库 不能将其替换为用户提供的容器注册表。

Cloud Composer 环境是区域级还是区域级?

Cloud Composer 3 和 Cloud Composer 2 环境具有可用区级 Airflow 以及区域级 Airflow 调度和执行层。Airflow 调度器、工作器和 Web 服务器在 Airflow 执行层中运行。

Cloud Composer 1 环境是可用区级环境。

后续步骤