7

我目前正在学习 GCP 数据工程师考试,并且一直在努力理解何时使用 Cloud Scheduler 以及何时使用 Cloud Composer。

通过阅读文档,我的印象是当作业之间存在相互依赖关系时应该使用 Cloud Composer,例如,我们需要一个作业的输出在第一次完成时启动另一个作业,并使用来自第一个作业的依赖关系。然后,您可以根据需要灵活地链接任意数量的这些“工作流程”,并提供在失败时重新启动作业、运行批处理作业、shell 脚本、链接查询等的机会。

对于 Cloud Scheduler,它在可以执行的任务方面具有非常相似的功能,但是,它更多地用于常规作业,您可以定期执行,而不一定在作业之间存在相互依赖关系或何时使用在开始另一个工作之前,您需要等待其他工作。因此,似乎更适合用于“更简单”的任务。

这些想法是在尝试回答我发现的一些考试问题后产生的。但是,我对找到的“正确答案”感到惊讶,并希望有人能澄清这些答案是否正确,以及我是否了解何时使用一个而不是另一个。

以下是让我对此主题感到困惑的示例问题:

问题 1

您正在实施几个必须按计划执行的批处理作业。这些作业有许多相互依赖的步骤,必须按特定顺序执行。部分作业涉及执行 shell 脚本、运行 Hadoop 作业以及在 BigQuery 中运行查询。这些作业预计将运行几分钟到几个小时。如果这些步骤失败,则必须重试固定次数。您应该使用哪个服务来管理这些作业的执行?

A. 云调度器

B. 云数据流

C. 云功能

D. 云作曲家

正确答案:A

问题2

您希望自动执行在 Google Cloud 上运行的多步骤数据管道。该管道包括相互依赖的 Cloud Dataproc 和 Cloud Dataflow 作业。您希望尽可能使用托管服务,并且管道将每天运行。你应该使用哪个工具?

A.cron

B. 云作曲家

C. 云调度器

D. Cloud Dataproc 上的工作流模板

正确答案:D

问题 3

贵公司有一个混合云计划。您有一个复杂的数据管道,可以在云提供商服务之间移动数据并利用每个云提供商的服务。您应该使用哪种云原生服务来编排整个管道?

A. 云数据流

B. 云作曲家

C. 云数据准备

D. 云数据处理

正确答案:D

对此的任何见解将不胜感激。谢谢 !

4

2 回答 2

13

您的假设是正确的,Cloud Composer 是一个 Apache Airflow 托管服务,它在编排相互依赖的管道时效果很好,而 Cloud Scheduler 只是一个托管 Cron 服务。

我不知道你从哪里得到这些问题和答案,但我向你保证(我上个月刚刚获得 GCP 数据工程师认证),正确的答案是每个问题的 Cloud Composer,忽略这个所谓的正确答案并继续前进。

于 2020-01-21T14:30:27.763 回答
3

Cloud Scheduler 本质上是 Cron 即服务。您只需输入时间表和端点(Pub/Sub 主题、HTTP、App Engine 路由)。Cloud Scheduler 内置了重试处理,因此您可以设置固定的次数,并且对请求没有时间限制。该功能比 Cloud Composer 简单得多。

Cloud Composer 是托管的 Apache Airflow,“可帮助您创建、计划、监控和管理工作流。Cloud Composer 自动化可帮助您快速创建 Airflow 环境并使用 Airflow 原生工具,例如强大的 Airflow Web 界面和命令行工具,因此您可以专注于您的工作流程,而不是您的基础架构。”( https://cloud.google.com/composer/docs/ ) Airflow 的目标是具有所有必要工具的数据管道。

于 2020-01-21T17:05:36.710 回答