BigQuery

时间:2018-03-14 00:08:19

标签: google-cloud-platform google-bigquery

我们目前通过csv或直接通过流API将大部分数据加载到BigQuery中。但是,我想知道是否有任何可用的基准测试(或者谷歌工程师可以在答案中告诉我)如何加载不同格式的效率。

例如,如果我们拥有相同的100M数据行,那么BigQuery是否会显示加载它的性能差异:

  • 镶木
  • CSV
  • JS​​ON
  • 阿夫罗

我确定其中一个答案是"为什么不测试它",但我们希望在构建转换器或重写我们的应用程序之前,工程师可以与我们分享上述格式中的哪些(如果有的话)在将数据从平面文件加载到BQ方面最高效。

注意:以上所有文件都将存储在Google云端存储中:https://cloud.google.com/bigquery/docs/loading-data-cloud-storage

2 个答案:

答案 0 :(得分:4)

"使用Avro源格式"

将BigQuery提取时间提高10倍
  

到目前为止,摄取速度取决于我们从BigQuery导出的文件格式。在SDK的早期版本中,表格和查询作为Google Cloud Storage中的JSON编码对象提供给Dataflow。考虑到每个这样的条目都具有相同的模式,这种表示非常冗余,基本上以字符串形式为每条记录复制模式。

     

在1.5.0版本中,Dataflow使用Avro文件格式根据单个共享架构对BigQuery数据进行二进制编码和解码。这会减小每个单独记录的大小以对应于实际字段值

答案 1 :(得分:0)

注意不要将您的比较限制在仅仅基准。这些格式也暗示了将数据写入BigQuery的客户端的一些限制,您也应该考虑它们。例如: