【问题标题】:Executing the query using bq command line in Google Big Query在 Google Big Query 中使用 bq 命令行执行查询
【发布时间】:2016-07-21 19:42:59
【问题描述】:

我使用下面的 Python 脚本执行查询,表格中填充了 2,564,691 行。当我使用 Google Big Query 控制台运行相同的查询时,它返回 17,379,353 行(查询原样)。我想知道下面的脚本是否有问题。不确定 bq 查询中的 --replace 是否替换过去的结果集而不是附加到它。

任何帮助将不胜感激。

dateToday =  (time.strftime("%Y/%m/%d"))
dateToday1 = dateToday.replace('/','')

commandStr = "type C:\Users\query.txt | bq query --allow_large_results --replace --destination_table table:dataset1_%s -n 1" %(dateToday1)

【问题讨论】:

  • 如果您愿意共享这两个作业的作业 ID,我们(BigQuery 团队)可以进一步调查,看看这两个查询之间可能有什么不同。
  • 通过 Web UI 运行的查询的作业 ID:red-road-574:bquijob_64bd407c_1560f071d85
  • 能否通过命令行分享查询的ID?
  • @DannyKitt:通过命令行查询的作业 id 是 bqjob_r5790ceea_000001560fdd5e9b_1
  • 我查看了您的工作详情:这两个查询并不完全相同。两个查询的结构相同,但 bqjob_r5790ceea_000001560fdd5e9b_1 通过 CURRENT_TIMESTAMP 引用 20160721 表(因为它在 20160721 上运行),而 red-road-574:bquijob_64bd407c_1560f071d85 显式引用 20160719 表。

标签: command-line google-bigquery


【解决方案1】:

在 Web UI 中,您可以使用“查询历史记录”选项导航到相应的查询。
找到它们后 - 您可以展开相应的条目并查看究竟执行了什么查询
我非常确定,只要比较查询文本,您就会立即看到“差异”的来源!

添加

在查询历史记录中 - 您不仅可以看到查询文本,还可以看到用于相应查询的所有配置属性 - 例如 Write Preference 等。因此,即使查询文本相同,您也可以看到配置的潜在差异,这将为您提供线索

【讨论】:

  • 查询完全一样。我上面提到的脚本每 10 分钟运行一次并填充表格。当我为昨天的日期运行脚本时,它返回相同的行数。但是当我检查昨天表格中的行数(昨天由脚本填充)时,有很大的不同。这就是为什么我想知道 --replace 是否会做出任何改变。
  • 查看 Danny Kitt 对该问题的评论:它们不是同一个查询(结构相同,扫描的表不同)
猜你喜欢
  • 2016-01-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-08
相关资源
最近更新 更多