工作流和 Cloud Composer 都可用于服务编排来组合服务以实现应用功能或执行数据处理。虽然它们在概念上类似,但都是针对不同用例集而设计的。 本页面可帮助您为自己的用例选择合适的产品。
主要区别
Workflows 和 Cloud Composer 之间的主要区别在于每个产品旨在支持的架构类型。
工作流将多个基于 HTTP 的服务编排成持久的有状态工作流。它具有较短的延迟时间,可以处理大量执行。它也是完全无服务器的。
工作流非常适合将微服务链接在一起、自动执行基础架构任务(如启动或停止虚拟机)以及与外部系统集成。Workflows 连接器还支持 Google Cloud 服务(例如 Cloud Storage 和 BigQuery)中的简单操作序列。
Cloud Composer 旨在编排数据驱动型工作流(尤其是 ETL/ELT)。它基于 Apache Airflow 项目构建,但 Cloud Composer 是一项全代管式服务。Cloud Composer 可以支持您的流水线,无论它们位于本地还是跨多个 Cloud Platform。Cloud Composer 中的所有逻辑(包括任务和调度)在 Python 中都表示为有向无环图 (DAG) 定义文件。
Cloud Composer 最适合可以执行任务之间几秒钟延迟时间的批处理工作负载。您可以使用 Cloud Composer 编排数据流水线中的服务,例如在 BigQuery 中触发作业或启动 Dataflow 流水线。您可以使用预先存在的运算符与各种服务通信,并且仅 Google Cloud 就有 150 多个运算符。
详细的功能比较
特征 | Workflows | Cloud Composer |
---|---|---|
语法 | 工作流语法(采用 YAML 或 JSON 格式) | Python |
状态模型 | 命令式流控制 | 声明式 DAG 具有自动依赖项解析 |
集成 | HTTP 请求和connectors | Airflow 运算符和传感器 |
在步骤之间传递数据 | 变量为 512 KB | XCom 为 48 KB1 |
执行触发器和调度 | gcloud CLI、Google Cloud 控制台、Workflows API、Workflows 客户端库、Cloud Scheduler | DAG 定义文件 Airflow 传感器中的类似 Cron 的时间表 |
异步模式 |
|
Polling |
并行执行 | 同一工作流的并发执行或者在工作流中使用并行步骤并发执行 | 基于依赖项的自动化 |
执行延迟时间 | 毫秒 | 秒 |
基于开放源代码 | 否 | 是 (Apache Airflow) |
扩缩模型 | 无服务器(可按需扩缩) | 已预配 |
结算模式 | 基于用量(按步骤执行) | 基于预配容量 |
数据处理功能 | 否 | 回填(能够重新运行 DAG) |
-
airflow.models.xcom 的源代码。Apache Airflow 文档。2021 年 8 月 2 日 ↩