从查询创建表会在第一次运行时在空表中

时间:2018-08-28 16:44:56

标签: google-bigquery

当我使用bq命令行工具将查询结果保存到表中时,将创建该表,但没有数据被保存到该表中。

我还有其他一些可以正常工作的查询,但是由于某种原因,这个查询不起作用。

这是我正在使用的脚本:

#!/usr/bin/env bash
DATE=`date --date='TZ="America/Los_Angeles" yesterday 00:00' +%Y%m%d`
/usr/bin/bq --nouse_gce_service_account --headless --format none query --use_legacy_sql=false --destination_table example.table_$DATE --replace 'select * from example.table_source'

它使用所有正确的列定义创建表example.table_20180827,但是无法填充数据。脚本的第二次运行实际上确实填充了数据。我没有任何错误。

我在BigQuery用户界面中看到了工作/查询,看起来不错:

Job ID  ****:US.bqjob_***_***_1
Creation Time   Aug 28, 2018, 6:00:04 AM
Start Time  Aug 28, 2018, 6:00:07 AM
End Time    Aug 28, 2018, 6:00:22 AM
User    **@**.com
Bytes Processed 7.70 GB
Bytes Billed    7.71 GB
Slot Time (ms)  854 K
Query Priority  Interactive
Destination Table   ****
Write Preference    Overwrite table
Use Legacy SQL  false

它甚至向我收取所有数据费用。

另一个奇怪的是,当我手动运行脚本时不会发生这种情况。我首先想到的是这是通过crontab运行脚本的问题(环境问题等)。但是,如果我将作业设置为每分钟运行一次(* * * * *),则该作业可以正常运行并填满表格。

此脚本与其他脚本之间的唯一区别是,该脚本使用的是select *而不是手动指定列。这可能是问题的原因吗?

我还应该注意,源表实际上是一个视图。一些子表是Google工作表支持的表。我认为这并不重要,但也许确实如此。

0 个答案:

没有答案