Java 为什么BigQuery加载作业统计信息会返回查询信息?
我们有一些加载作业,可以从GCS中提取文件,并将它们加载到BigQuery中进行分析。我们使用BigQueryJavaAPI中的Java 为什么BigQuery加载作业统计信息会返回查询信息?,java,google-bigquery,Java,Google Bigquery,我们有一些加载作业,可以从GCS中提取文件,并将它们加载到BigQuery中进行分析。我们使用BigQueryJavaAPI中的JobConfigurationLoad来实现这一点 它很好用 但是,我们注意到,当作业完成时返回的JobStatistics包含“query”和“totalBytesBilled”信息 如果这是一个加载作业,为什么它会返回查询信息?您看到的是一个报告加载作业详细信息的错误。我们在内部遇到了一个问题,因为BigQuery加载作业不应该填充查询处理统计信息(我们正在利用
JobConfigurationLoad
来实现这一点
它很好用
但是,我们注意到,当作业完成时返回的JobStatistics
包含“query”和“totalBytesBilled”信息
如果这是一个加载作业,为什么它会返回查询信息?您看到的是一个报告加载作业详细信息的错误。我们在内部遇到了一个问题,因为BigQuery加载作业不应该填充查询处理统计信息(我们正在利用查询执行树来帮助处理一些加载作业)
值得注意的是,尽管处理统计信息字段的填充方式与我们报告查询分析使用情况的填充方式相同,但这些加载作业不会产生任何查询分析成本。它是作业统计信息的一部分,而不是查询统计信息的一部分。谢谢。值得注意的是,我们发现这个bug的原因是我们的一个应用程序在2月18日突然失败。代码使用“JobStatistics”对象通过调用“statistics.getQuery()!=null”或“statistics.getLoad()!=null”来确定作业是查询还是加载。这很有效。但是“statistics.getQuery()”开始返回对象,即使是加载作业!所以它倒了。你可能想看看如何解决这个问题。干杯