移动数据时数据流优于云功能的好处?
Posted
技术标签:
【中文标题】移动数据时数据流优于云功能的好处?【英文标题】:Benefits with Dataflow over cloud functions when moving data? 【发布时间】:2018-12-14 07:27:18 【问题描述】:我对 GCP 比较陌生,刚刚开始在 GCP 上设置/评估我的组织架构。
场景: 数据将流入发布/订阅主题(高频率、低数据量)。目标是将这些数据移动到大表中。据我了解,您可以使用触发主题的云功能或使用 Dataflow 来做到这一点。
现在我对云功能有了满意的体验,所以这将是我的选择。
我没有看到选择其中一个的好处。所以我的问题是什么时候选择这些产品?
谢谢
【问题讨论】:
【参考方案1】:您的需求听起来相对简单,而 Dataflow 可能对于您想要做的事情来说太过分了。如果云功能可以满足您的需求,他们可能会坚持下去。我经常发现简单性是可维护性的关键。
但是,当您需要在将这些事件存储到 BigTable 之前执行转换(例如按用户合并这些事件)时,这就是 Dataflow 真正的亮点:
https://beam.apache.org/documentation/programming-guide/#groupbykey
【讨论】:
【参考方案2】:两种解决方案都可以。如果您的 pub/sub 流量增长到大量数据,数据流将更好地扩展,但 Cloud Functions 应该适用于少量数据;我会查看此页面(尤其是速率限制部分)以确保您适合 Cloud Functions:https://cloud.google.com/functions/quotas
要考虑的另一件事是,Dataflow 可以保证对您的数据进行一次性处理,因此 BigTable 中不会出现重复数据。 Cloud Functions 不会开箱即用地为您执行此操作。如果您使用函数方法,那么您将需要确保 Pub/Sub 消息一致地确定写入哪个 BigTable 单元格;这样,如果函数被重试多次,相同的数据将简单地覆盖相同的 BigTable 单元格。
【讨论】:
以上是关于移动数据时数据流优于云功能的好处?的主要内容,如果未能解决你的问题,请参考以下文章
使用 QOpenGLWidget 优于普通 QWidget 的好处
在操作 jQuery 元素时,`array.join` 优于字符串连接的好处?