Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google cloud platform 谷歌数据流定价流模式_Google Cloud Platform_Google Cloud Dataflow_Iot_Google Cloud Pubsub - Fatal编程技术网

Google cloud platform 谷歌数据流定价流模式

Google cloud platform 谷歌数据流定价流模式,google-cloud-platform,google-cloud-dataflow,iot,google-cloud-pubsub,Google Cloud Platform,Google Cloud Dataflow,Iot,Google Cloud Pubsub,我不熟悉数据流。 我想使用数据流模板“发布/订阅BigQuery”来传输一些消息,比如说每天10000条。 我的问题是关于定价的,因为我不知道流媒体模式下的定价是如何计算的,不管流媒体引擎是否启用。 我使用了谷歌计算器,它要求如下: 机器类型、作业使用的工作节点数(如果是流式作业或批处理作业)、永久磁盘(PD)的GB数、作业每月运行的小时数 考虑最简单的情况,因为我不需要很多资源,例如 机器类型:n1-1 工人人数上限:1 工作类型:流媒体 价格:美制 案例1:流媒体引擎已禁用 使用vCP

我不熟悉数据流。 我想使用数据流模板“发布/订阅BigQuery”来传输一些消息,比如说每天10000条。 我的问题是关于定价的,因为我不知道流媒体模式下的定价是如何计算的,不管流媒体引擎是否启用。 我使用了谷歌计算器,它要求如下:
机器类型、作业使用的工作节点数(如果是流式作业或批处理作业)、永久磁盘(PD)的GB数、作业每月运行的小时数

考虑最简单的情况,因为我不需要很多资源,例如

  • 机器类型:n1-1
  • 工人人数上限:1
  • 工作类型:流媒体
  • 价格:美制
案例1:流媒体引擎已禁用

  • 使用vCPU的小时数=730小时(1个月始终处于活动状态)。对于流媒体模式,这总是正确的吗?或者在流媒体模式中可能存在使用率较低的情况
  • 持久磁盘:430 GB硬盘,这是默认值
因此,我将支付:

  • (vCPU)730 x 0.069美元(成本vCPU/小时)=50.37美元
  • (PD)730x0.000054x430GB=16.95美元
  • (RAM)730x0.003557x3.75GB=$9.74 总计:77.06美元,经计算器确认
案例2流媒体引擎已启用。

  • 使用v CPU的小时数=730小时
  • 持久磁盘:30 GB硬盘,这是默认值
因此,我将支付:

  • (vCPU)30 x 0.069美元(成本vCPU/小时)=50.37美元
  • (PD)30 x 0.000054 x 430 GB=1.18美元
  • (RAM)30 x$0.003557 x 3.75 GB=$9.74 总计:$61.29加上处理的数据量(流媒体引擎额外提供)
考虑到1024字节的消息,我们的通信量为1024 x 10000 x 30字节=0.307GB,额外成本为0.307GB x$0.018=$0.005(几乎为零)

事实上,有了这种流量,我在使用流媒体引擎时可以节省大约15美元。 我说得对吗?我的假设和我的计算还有什么别的问题或错误吗? 此外,考虑到数据量很低,Dataflow真的适合这种用途吗?或者我应该用另一种方式来处理这个问题


提前谢谢你

这不是假的,但也不完全准确

在流模式下,您的数据流始终侦听PubSub订阅,因此您需要全天更新

在批处理中,您通常启动批处理,它执行其工作,然后停止

在您的比较中,您认为有一个运行全职的批作业。这不是不可能的,但我认为它不适合您的用例


关于流式处理和批处理,这一切都取决于您对实时性的需求

  • 如果您希望以低延迟(几秒钟内)接收BigQuery中的数据以获得实时数据,流式处理是一个不错的选择
  • 如果数据仅每小时或每天更新一次,则批处理是更合适的解决方案


一个最新的评论,如果你的任务只是从PubSub得到消息,并流写BigQuery,你可以考虑在云运行或云函数上对自己进行编码。每天只有10万条信息,这将是免费的

感谢您宝贵的回复,它给了我一个关于使用云函数的不同实现的很好的提示。然而,回到Dataflow,我提到的流引擎选项,在流模式中,我没有考虑批处理模式。看一看()。批处理模式可能更适合我的用例,但我正在寻找一个模板化的解决方案,并且从发布/订阅导入的唯一模板是那些处于流模式的模板。让我知道!是当前模板仅在流媒体中。但是如果你想停用流媒体或自定义流媒体,你可以从开始编写自己的。嗨@guillaumeblaquiere,我尝试了云功能。它很管用,非常适合我。但是,我想将其与Dataflow中的批处理解决方案进行比较,即编辑pubsubBigQuery.java模板。我仍然有一个问题,read-FromSubscription方法返回一个PCollection,但我需要一个无界源。然后将其转换为BoundedSource,并将管道应用于有限数量的数据。你能给我一些提示吗?提前谢谢!以前(几年前)可以将streaming参数设置为false并批量使用PubSub。我今晚又测试了一次,现在不可能了:(