Google bigquery 我可以估计BigQuery运行导出作业所需的时间吗?

Google bigquery 我可以估计BigQuery运行导出作业所需的时间吗?,google-bigquery,time-estimation,Google Bigquery,Time Estimation,我正在创建一个服务,允许用户对bigquery数据应用过滤器,并将其导出为csv或json。是否有一种方法可以估计bigquery导出一组行所需的时间 目前,我正在记录行数以及完成导出作业所需的时间。然后我用导出一行的平均时间来估计时间。但这肯定不是一个线性问题 任何关于预测算法的建议都会很好。不幸的是,没有很好的方法来预测导出需要多长时间。 有许多因素: 您的表被分成多少个“碎片”数据。这与数据的可压缩性以及在某种程度上如何将表加载到bigquery有关。只要您将“glob”路径作为提取目的

我正在创建一个服务,允许用户对bigquery数据应用过滤器,并将其导出为csv或json。是否有一种方法可以估计bigquery导出一组行所需的时间

目前,我正在记录行数以及完成导出作业所需的时间。然后我用导出一行的平均时间来估计时间。但这肯定不是一个线性问题


任何关于预测算法的建议都会很好。

不幸的是,没有很好的方法来预测导出需要多长时间。 有许多因素:

  • 您的表被分成多少个“碎片”数据。这与数据的可压缩性以及在某种程度上如何将表加载到bigquery有关。只要您将“glob”路径作为提取目的地(例如gs://foo/bar/baz*.csv),BigQuery将尝试并行进行提取
  • 桌子的大小
  • 并发运行的提取作业数。总体系统负载越高,可用于提取作业的资源就越少
由于这些因素中的大多数实际上不在您的控制之下,因此最佳做法是:

  • 始终传递glob路径作为目标路径,以便bigquery可以并行提取
  • 如果表很小,可以使用tabledata.list提取数据,而不是导出数据

请注意,我们正在努力解决与提取性能相关的几个开放性bug

我们基本上也是这样做的,在过去7天和30天内,我们保持每种报告类型和表大小的平均值,并利用这些数据的统计数据。我们不做每排。