我创建了一个数据流,它从数据存储区获取输入并执行转换以将其转换为BigQuery TableRow。我正在为变换中的每个元素附加时间戳。然后将一天的窗口应用于PCollection。使用Apache Beam的BigQueryIO将窗口输出写入BigQuery表中的分区。
在写入BigQuery之前,它使用通过随机密钥重新洗牌作为避免融合的中间步骤。
管道行为是:
1. For 2.8 million entities in the input: Total vCPU time- 5.148 vCPU hr Time to complete job- 53 min 9 sec Current workers- 27 Target workers- 27 Job ID: 2018-04-04_04_20_34-1951473901769814139 2. For 7 million entites in the input: Total vCPU time- 247.772 vCPU hr Time to complete the job- 3 hr 45 min Current workers- 69 Target workers- 1000 Job ID: 2018-04-02_21_59_47-8636729278179820259
我无法理解为什么花费这么多时间来完成第二种情况的工作和CPU小时。
高级别的数据流管道是:
-drawable-xhdpi
-drawable-xxhdpi
-drawable-xxxhdpi.