寻找关于如何最好地构建/设计和构建管道的一些建议。
经过一些初步测试后,我们无法获得我们期望的结果。也许我们只是在做一些愚蠢的事情,或者我们的期望太高了。
我们的数据/工作流程
到目前为止我们运行的是什么:
我们使用一些不同的工作人员配置来运行这项工作,看看它的表现如何:
这些时间是否符合您对我们的用例和管道的期望?
答案 0 :(得分:1)
您还可以将输出写入文件,然后使用命令行/控制台将其加载到BigQuery中。你可能会节省一些实例的正常运行时间。这是我在遇到Dataflow / BigQuery界面问题后一直在做的事情。另外根据我的经验,有一些开销带来实例并将它们拆除(可能是3-5分钟)。您是否也将这段时间用于测量?
答案 1 :(得分:0)
BigQuery的写入限制为每桌每秒100,000行或每分钟6M。在31M行输入,需要大约5分钟的平坦写入。当你加回每个元素的离散处理时间&那么图表的同步时间(从GCS-> dispatch-> ...读取......)看起来是正确的。
我们正在研究一个表分片模型,这样你就可以在一组表中编写,然后在BigQuery中使用表通配符来聚合各个表(典型的BigQuery流用例的通用模型)。我知道BigQuery的人们也在考虑增加的表格流量限制,但没有官方要分享。
Net-net增加实例现在不会为您带来更多吞吐量。
另一种方法 - 在我们努力改进BigQuery同步的同时 - 将通过TextIO使用模式匹配对您的读取进行分片,然后针对X个表运行X个单独的管道。可能是一个有趣的实验。 : - )
有意义吗?