数据流资源使用
Dataflow resource usage
遵循数据流教程后,我使用 pub/sub 主题到大查询模板将 JSON 记录解析为 table。工作已经流式传输了 21 天。在那段时间里,我已经摄取了大约 5000 JSON 条记录,其中包含 4 个字段(大约 250 字节)。
本月收到账单后,我开始调查资源使用情况。我使用了 2,017.52 vCPU 小时,内存 7,565.825 GB 小时,总硬盘 620,407.918 GB 小时。
对于我一直摄取的少量数据来说,这似乎高得离谱。在使用数据流之前,我应该拥有最少的数据量吗?对于小箱子来说,它似乎过于强大。是否有另一种从发布子主题中获取数据的首选方法?设置使用较少资源的数据流作业时是否有不同的配置?
看来你说的数字,对应的是不自定义职位资源。 By default streaming jobs 使用 n1-standar-4 机器:
3 Streaming worker defaults: 4 vCPU, 15 GB memory, 400 GB Persistent Disk.
4 vCPU x 24 hrs x 21 days = 2,016
15 GB x 24 hrs x 21 days = 7,560
如果您确实需要在 Dataflow 中进行流式传输,即使没有任何要处理的内容,您也需要为分配的资源付费。
选项:
优化数据流
- 考虑到您需要处理的JSON字符串的数量和大小确实很小,您可以将成本降低到当前费用的大约1/4。您只需将作业设置为使用 n1-standard-1 机器,该机器具有 1vCPU 和 3.75GB 内存。请注意最大节点数,除非您打算增加负载,否则一个节点可能就足够了。
你自己的方式
- 如果您真的不需要流式传输(不太可能),您可以只创建一个使用 Synchronous Pull 拉取的函数,然后添加写入 BigQuery 的部分。大家可以根据自己的需要安排。
云函数(我的推荐)
- 您可以创建无服务器 Event-Driven Cloud Function with a Cloud Pub/Sub trigger。这样,考虑到您的流量较低,您可以利用免费套餐并保持实时处理:
"Cloud Functions 为 compute-time 资源提供永久免费套餐,其中包括 GB-seconds 和 GHz-seconds 的分配。除了 200 万次调用外,免费套餐每月提供 400,000 GB-seconds、200,000 GHz-seconds 的计算时间和 5GB 的互联网出口流量。[1]
遵循数据流教程后,我使用 pub/sub 主题到大查询模板将 JSON 记录解析为 table。工作已经流式传输了 21 天。在那段时间里,我已经摄取了大约 5000 JSON 条记录,其中包含 4 个字段(大约 250 字节)。
本月收到账单后,我开始调查资源使用情况。我使用了 2,017.52 vCPU 小时,内存 7,565.825 GB 小时,总硬盘 620,407.918 GB 小时。
对于我一直摄取的少量数据来说,这似乎高得离谱。在使用数据流之前,我应该拥有最少的数据量吗?对于小箱子来说,它似乎过于强大。是否有另一种从发布子主题中获取数据的首选方法?设置使用较少资源的数据流作业时是否有不同的配置?
看来你说的数字,对应的是不自定义职位资源。 By default streaming jobs 使用 n1-standar-4 机器:
3 Streaming worker defaults: 4 vCPU, 15 GB memory, 400 GB Persistent Disk.
4 vCPU x 24 hrs x 21 days = 2,016
15 GB x 24 hrs x 21 days = 7,560
如果您确实需要在 Dataflow 中进行流式传输,即使没有任何要处理的内容,您也需要为分配的资源付费。
选项:
优化数据流
- 考虑到您需要处理的JSON字符串的数量和大小确实很小,您可以将成本降低到当前费用的大约1/4。您只需将作业设置为使用 n1-standard-1 机器,该机器具有 1vCPU 和 3.75GB 内存。请注意最大节点数,除非您打算增加负载,否则一个节点可能就足够了。
你自己的方式
- 如果您真的不需要流式传输(不太可能),您可以只创建一个使用 Synchronous Pull 拉取的函数,然后添加写入 BigQuery 的部分。大家可以根据自己的需要安排。
云函数(我的推荐)
- 您可以创建无服务器 Event-Driven Cloud Function with a Cloud Pub/Sub trigger。这样,考虑到您的流量较低,您可以利用免费套餐并保持实时处理:
"Cloud Functions 为 compute-time 资源提供永久免费套餐,其中包括 GB-seconds 和 GHz-seconds 的分配。除了 200 万次调用外,免费套餐每月提供 400,000 GB-seconds、200,000 GHz-seconds 的计算时间和 5GB 的互联网出口流量。[1]