我有一个定期计划的加载作业,每小时运行并通过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"}
答案 0 :(得分:1)
我是Google工程师,负责BigQuery工作。抱歉,添麻烦了;您似乎缺少名为RECORD
的必填currencies
字段。
由于存在错误,旧代码似乎接受了这一点。它创建了空的RECORD
字段,即使未在JSON中指定了一个字段。因此,可以省略RECORD
REQUIRED
字段而不会触发错误。但是,正确的行为是触发错误,这是当前代码所做的。
遗憾的是,错误消息并未告诉您缺少哪个必填字段。这是当前版本代码中的TODO。