在BQ中摄取csv文件的次数

在BQ中摄取csv文件的次数,csv,google-bigquery,Csv,Google Bigquery,通过将文件直接从GCS摄取到bigquery进行测试,我们获得了比流式插入更好的性能。但表现波动也比较大, 例如,我们测试了将大型CSV加载到BQ中(10M行,2GB):第一次加载2.275分钟,第二次加载约8分钟。为什么进口时间会有这样的波动 更新:结果是阈值发生了变化: 结果表明,它取决于MaxError属性。我在2分钟内导入CSV的时候,MaxError太低,一些错误(比如太长的字段)阻止它完全解析CSV文件。从那时起,我已将MaxError提高到1000 尝试了几次,使用此阈值集完成

通过将文件直接从GCS摄取到bigquery进行测试,我们获得了比流式插入更好的性能。但表现波动也比较大,

例如,我们测试了将大型CSV加载到BQ中(10M行,2GB):第一次加载2.275分钟,第二次加载约8分钟。为什么进口时间会有这样的波动


更新:结果是阈值发生了变化:

结果表明,它取决于
MaxError
属性。我在2分钟内导入CSV的时候,MaxError太低,一些错误(比如太长的字段)阻止它完全解析CSV文件。从那时起,我已将MaxError提高到1000


尝试了几次,使用此阈值集完成解析需要7-8分钟。

加载基本上是对联邦数据源的查询,结果保存到目标表。查询的性能取决于后端系统的负载。Felipe在中很好地解释了这一点。

加载基本上是对联邦数据源的查询,结果保存到目标表中。查询的性能取决于后端系统的负载。Felipe在中对此进行了很好的解释。

此外,请记住,您需要为流媒体付费。您不需要批量加载。有什么特别的原因让你需要从地面军事系统快速接收文件吗?@GrahamPolley是的,我们有非常大的文件,并且一直在接收它们<代码>10M csv文件的性能差异:流式插入:从GCS加载13-14m:7-8m我们每天从GCS批量加载约20TB。时间会波动,因为它是一个共享资源/集群(正如华在回答中所描述的)。由于其体系结构,BigQuery是一个不确定的应用程序,即它永远不会给您相同的查询/加载时间。@GrahamPolley谢谢--您是否使用进度条了解这些应用程序上的状态?我很好奇怎么做,我们不使用进度条。我们只跟踪状态,即他们是否正在“运行”、“等待”等。我们不关心他们需要多长时间。我们只是让asyc批处理应用程序运行所有这些加载作业,然后在作业因任何原因失败时发出警报。我也看不到在作业运行时如何从API获取作业统计信息,因此我认为不可能有任何类型的进度条。我测试并查看了输出,正如您所说,它们只有在完成后才会显示。另外,请记住,您需要为流媒体付费。您不需要批量加载。有什么特别的原因让你需要从地面军事系统快速接收文件吗?@GrahamPolley是的,我们有非常大的文件,并且一直在接收它们<代码>10M csv文件的性能差异:流式插入:从GCS加载13-14m:7-8m我们每天从GCS批量加载约20TB。时间会波动,因为它是一个共享资源/集群(正如华在回答中所描述的)。由于其体系结构,BigQuery是一个不确定的应用程序,即它永远不会给您相同的查询/加载时间。@GrahamPolley谢谢--您是否使用进度条了解这些应用程序上的状态?我很好奇怎么做,我们不使用进度条。我们只跟踪状态,即他们是否正在“运行”、“等待”等。我们不关心他们需要多长时间。我们只是让asyc批处理应用程序运行所有这些加载作业,然后在作业因任何原因失败时发出警报。我也看不到在作业运行时如何从API获取作业统计信息,因此我认为不可能有任何类型的进度条。我测试并查看了输出,正如您所说,它们只有在完成后才会显示。