0

我有一个定期安排的加载作业,每小时通过 json 数据格式运行并将数据导入 bigQuery。这个过程几个月来一直运行良好,现在突然之间 bigQuery 开始向我抛出有关缺少必填字段的错误。

自然,我做的第一件事就是查看我的架构并与其中一个 JSON 文件进行比较,所有必填字段确实都在那里。除此之外,Bigquery 并没有提供太多信息,我已经检查并重新检查了我的数据 20 次,因为我通常会遗漏一些东西。

这是后端问题吗?或者格式要求已经改变?一个完美的例子是 JOB # job_2ee5a4be176c421985d7c3eaa84abf4b 。它告诉我“缺少必填字段”,其中我的架构中只有 4 个 - 我检查我的 JSON 是否有这个特定的工作,它们都在那里。

对此的任何启示都会非常有帮助,在此先感谢!

一个json样本,我的架构中只需要前4个字段,它们都在那里!我还仔细检查了以确保 json 中没有额外的字段,并且每个 json 都在一个新行等:

{"date":"2013-05-31 20:56:41","sdate":1370033801,"type":"0","act":"1","cid":"139","chain":"5156","hotel":"21441","template":"default","arrival":"2013-08-04 00:00:00","depart":"2013-08-05 00:00:00","window":"64","nights":"1","total":"0.0000","dailyrate":"0.0000","session":"1530894334","source":"google","keyword":"the carolina hotel chapel hill nc","campaign":"organic","medium":"organic","visits":"2","device":"pc","language":"en-us","ip":"gc.synxis.com","cookies":"2","base_total":"0.0000","base_rate":"0.0000","batch":"batch_1370045767"}

4

1 回答 1

1

我是一名从事 BigQuery 工作的 Google 工程师。抱歉,添麻烦了; 您似乎缺少一个RECORD名为currencies.

由于错误,旧代码似乎接受了这一点。RECORD即使未在 JSON 中指定一个,它也会创建空字段。因此,可以省略一个RECORD字段而不会触发错误。REQUIRED但是,正确的行为是触发错误,这是当前代码所做的。

不幸的是,错误消息没有告诉您缺少哪个必填字段。这是当前版本代码中的一个 TODO。

于 2013-06-01T04:41:14.093 回答