Unexpected BigQuery "Error: Field 'job_id' not found in table" even if job_id is not used
Unexpected BigQuery "Error: Field 'job_id' not found in table" even if job_id is not used
我是 运行 一个复杂的 BigQuery 查询,它给我带来了奇怪的错误。我已经嵌套连接了三个大表,并且使用 table_date_range().
为其中一个表包含了几个分区
当最里面的 select 子句包含太多分区时,我意外地收到以下错误,即使查询中的任何地方都没有名为 job_id 的字段.如果我只包括一个或有时两个分区(取决于大小?),查询就可以正常工作。
Error: Field 'job_id' not found in table 'project:dataset.table_20160119'; did you mean 'app_id'?
由于敏感数据,我无法post完整查询,但结构如下:
SELECT
fields
FROM (
SELECT
*
FROM (
SELECT
*
FROM (
SELECT *
FROM
TABLE_DATE_RANGE([project1:dataset1.table1_],
TIMESTAMP('2016-01-19'),
TIMESTAMP('2016-01-24'))
WHERE
conditions
) alias_1
) alias_2
FULL OUTER JOIN EACH (
SELECT
*
FROM
[project2:dataset2.table2_20160124]
WHERE
conditions
) alias3
ON alias2.user_id = alias3.user_id
) alias4
LEFT JOIN
[project2:dataset3.table3_20160124] alias5
ON
alias4.user_id = alias5.user_id
GROUP BY
fields
ORDER BY
field
所以我找到了解决办法。显然,在我使用的日期范围内,table1
中的模式发生了变化,字段 job_id
仅在某些日期存在。即使不使用该字段,它也会使 BigQuery 抛出错误。
问题已通过为受影响的 table 手动选择列而不是使用 *.
解决
我是 运行 一个复杂的 BigQuery 查询,它给我带来了奇怪的错误。我已经嵌套连接了三个大表,并且使用 table_date_range().
为其中一个表包含了几个分区当最里面的 select 子句包含太多分区时,我意外地收到以下错误,即使查询中的任何地方都没有名为 job_id 的字段.如果我只包括一个或有时两个分区(取决于大小?),查询就可以正常工作。
Error: Field 'job_id' not found in table 'project:dataset.table_20160119'; did you mean 'app_id'?
由于敏感数据,我无法post完整查询,但结构如下:
SELECT
fields
FROM (
SELECT
*
FROM (
SELECT
*
FROM (
SELECT *
FROM
TABLE_DATE_RANGE([project1:dataset1.table1_],
TIMESTAMP('2016-01-19'),
TIMESTAMP('2016-01-24'))
WHERE
conditions
) alias_1
) alias_2
FULL OUTER JOIN EACH (
SELECT
*
FROM
[project2:dataset2.table2_20160124]
WHERE
conditions
) alias3
ON alias2.user_id = alias3.user_id
) alias4
LEFT JOIN
[project2:dataset3.table3_20160124] alias5
ON
alias4.user_id = alias5.user_id
GROUP BY
fields
ORDER BY
field
所以我找到了解决办法。显然,在我使用的日期范围内,table1
中的模式发生了变化,字段 job_id
仅在某些日期存在。即使不使用该字段,它也会使 BigQuery 抛出错误。
问题已通过为受影响的 table 手动选择列而不是使用 *.
解决