当前使用标准pubsub_to_bigquery
模板获得天文墙时间。仅解析约10个密钥。 WriteSuccessfulRecords
显示超过11小时!
当我对此进行分解时,发现StreamingWrite
是元凶,但是我可以立即在BigQuery
中看到数据。
这只是一个缓冲问题(即,使缓冲区保持可用状态/长时间开放)吗?
答案 0 :(得分:4)
在流模式下,由于输入是无界的,因此该步的时间将永远累积。您看到如此长的挂墙时间的原因是因为管道已经运行了9天,因此累积量越来越大。墙壁时间定义为:
此步骤在所有工作线程中的所有线程上初始化,处理数据,改组数据和终止所花费的大约时间。对于复合步骤,是组成步骤所花费的时间总和。
由于StreamingWrite转换对BigQuery服务进行了API调用,这很可能是管道中最昂贵的步骤(如果没有自定义转换),因为API调用会离开工作进程。
在您的情况下,每小时的挂钟秒数可以计算为
(((((11*60) + 16) * 60) + 31) / 9) / 24 = 187.92
。这意味着该步骤每小时花费超过3分钟来写出该步骤中的插入内容。该步骤看起来很昂贵,因为它已经运行了很多时间(因此也积累了时间),但实际上只是按预期工作。