bigquery:不支持加载“DATE”、“INT64”和“FLOAT64”类型?
Posted
技术标签:
【中文标题】bigquery:不支持加载“DATE”、“INT64”和“FLOAT64”类型?【英文标题】:bigquery: Loading "DATE", "INT64" and "FLOAT64" types not supported? 【发布时间】:2016-06-02 16:13:15 【问题描述】:根据Google BigQuery Date Data Type?,bigquery 标准 SQL 现在具有真正的 DATE 数据类型。但是,尝试加载表失败:
$ bq load -F'|' --ignore_unknown_values test.table1 source.csv name:string,mydate:date
Upload complete.
Waiting on bqjob_r385016d9cc84259d_0000015511b08bfc_1 ... (2s) Current status: DONE
BigQuery error in load operation: Error processing job 'test-1320:bqjob_r385016d9cc84259d_0000015511b08bfc_1': An internal error occurred and the request could not be completed
此外,模式中的标准 SQL 广告数据类型 INT64 和 FLOAT64 似乎也不支持:
$ bq load -F'|' --ignore_unknown_values test.table1 source2.csv key:INT64,desc:string
BigQuery error in load operation: Invalid value for: INT64 is not a valid value
这是预期的行为还是我做错了什么?
【问题讨论】:
【参考方案1】:DATE
仍在我们的堆栈中推出。昨天检查了对在加载作业中使用这种类型的支持,并有望在下周投入生产。
FLOAT64
和 INT64
目前只能在标准 SQL 查询语言中理解。对于加载作业,请暂时继续使用FLOAT
和INTEGER
(它们相当于标准SQL 中的64
版本)。
【讨论】:
谢谢,将等待并测试 DATE 类型。 现在似乎可以工作了,我只能加载带有 DATE 列的表。谢谢! 顺便说一句,仅供参考,这似乎是间歇性的,有些负载可以工作,有些则不能,但如果您重试足够多次,最终会这样做。 我们有一个多天的推出流程,因此您可能会同时使用新服务器和旧服务器。假设没有回滚,它应该在几天内 100% 的工作。 我猜你提交了code.google.com/p/google-bigquery/issues/detail?id=565?根据该链接,确认错误并修复传入。根据它在堆栈中的位置,修复可能需要一段时间才能命中 prod,但链接中提供了一种解决方法。【参考方案2】:您应该使用相应的标志来enable standard sql
bq 查询 --use_legacy_sql=false
【讨论】:
以上是关于bigquery:不支持加载“DATE”、“INT64”和“FLOAT64”类型?的主要内容,如果未能解决你的问题,请参考以下文章
BigQuery 加载镶木地板错误 - Parquet 中的字段 INT32 与架构中的 double 类型不兼容
如何从具有 DATE 列的 BigQuery 表中导出 AVRO 文件并将其再次加载到 BigQuery