移动数据时 Dataflow 优于云功能的优势?

Benefits with Dataflow over cloud functions when moving data?

我对 GCP 比较陌生,刚开始 setup/evaluate 我的组织在 GCP 上的架构。

场景:
数据将流入一个pub/sub主题(高频、低数据量)。目标是将该数据移动到 Big Table。根据我的理解,您可以通过在主题上触发云功能或使用 Dataflow 来做到这一点。

现在我对云功能有了以前的经验,我很满意,所以这是我的选择。

我看不出选择其中一个的好处。所以我的问题是什么时候选择这些产品中的什么?

谢谢

两种解决方案都可以。如果您的 pub/sub 流量增长到大量数据,数据流将更好地扩展,但 Cloud Functions 应该适用于少量数据;我会查看此页面(尤其是速率限制部分)以确保您适合 Cloud Functions:https://cloud.google.com/functions/quotas

另一件需要考虑的事情是 Dataflow 可以保证对您的数据进行精确一次处理,因此 BigTable 中不会出现重复项。 Cloud Functions 不会开箱即用地为您执行此操作。如果您采用函数方法,那么您需要确保 Pub/Sub 消息一致地确定写入哪个 BigTable 单元格;这样,如果该函数被重试多次,相同的数据将简单地覆盖相同的 BigTable 单元格。

您的需求听起来相对简单,而 Dataflow 对于您尝试做的事情来说可能有些过分了。如果云功能可以满足您的需求,他们可能会坚持下去。我经常发现简单性是可维护性的关键。

然而,当您需要执行转换(例如在将这些事件存储到 BigTable 之前由用户合并这些事件)时,这就是 Dataflow 真正发挥作用的地方:

https://beam.apache.org/documentation/programming-guide/#groupbykey