【问题标题】:Dataflow resource usage数据流资源使用情况
【发布时间】:2022-02-04 05:43:04
【问题描述】:

遵循数据流教程后,我使用 pub/sub topic to big query 模板将 JSON 记录解析为表。该作业已流式传输 21 天。在那段时间里,我摄取了大约 5000 条 JSON 记录,包含 4 个字段(大约 250 个字节)。

本月账单来了之后,我开始调查资源使用情况。我使用了 2,017.52 vCPU 小时,内存 7,565.825 GB 小时,总 HDD 620,407.918 GB 小时。

对于我一直在摄取的少量数据来说,这似乎高得离谱。在使用数据流之前我应该​​拥有最少的数据量吗?对于小型机箱,它似乎过于强大。是否有另一种从 pub 子主题中提取数据的首选方法?设置使用较少资源的数据流作业时是否有不同的配置?

【问题讨论】:

    标签: google-cloud-platform google-cloud-dataflow google-cloud-pubsub google-cloud-iot


    【解决方案1】:

    您提到的数字似乎与未自定义作业资源相对应。 By default streaming jobs 使用 n1-standard-4 机器:

    3 个 Streaming worker 默认值:4 个 vCPU、15 GB 内存、400 GB 永久磁盘。
    4 个 vCPU x 24 小时 x 21 天 = 2,016
    15 GB x 24 小时 x 21 天 = 7,560

    如果您确实需要在 Dataflow 中进行流式处理,即使没有任何需要处理的资源,您也需要为分配的资源付费。

    选项:

    优化数据流

    • 考虑到您需要处理的 JSON 字符串的数量和大小确实很小,您可以将成本降低到当前费用的 1/4 左右。您只需将作业设置为使用n1-standard-1 机器,该机器具有 1vCPU 和 3.75GB 内存。请注意最大节点数,除非您计划增加负载,否则一个节点可能就足够了。

    你自己的方式

    • 如果您真的不需要流式传输(不太可能),您可以创建一个使用 Synchronous Pull 拉取的函数,然后添加写入 BigQuery 的部分。您可以根据自己的需要安排时间。

    云功能(我的推荐)

    “Cloud Functions 为计算时间资源提供永久免费层,其中包括 GB 秒和 GHz 秒的分配。除了 200 万次调用外,免费层提供 400,000 GB 秒、200,000 GHz - 数秒的计算时间和每月 5GB 的互联网出口流量。”[1]

    [1]https://cloud.google.com/functions/pricing

    【讨论】:

    • 感谢您提供的信息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-25
    • 1970-01-01
    • 2021-08-18
    • 1970-01-01
    相关资源
    最近更新 更多