BigQuery没有使用分区列以毫秒为单位处理时间戳

时间:2018-05-11 06:25:42

标签: google-bigquery

我有一个unix时间戳列,在我的csv文件中用毫秒表示。现在当我在我的bigQuery表中插入这些数据并查询它时,我得到了这个错误

bigQuery not supporting milliseconds timestamps

现在我想将此列作为分区列。 我有几个问题 1)即使我将其保存为int64,如何在此字段上创建分区列? 2)我想避免重复的表。

1 个答案:

答案 0 :(得分:1)

如果您的时间戳数据以毫秒为单位表示,则您无法正确创建分区表。相反,你应该使用" TIMESTAMP或DATE列"如@TimBiegeleisen所述。时间戳will use microsecond precision。一旦您的列以微秒为单位,您可以使用以下内容创建分区表:

bq load --schema <your-timestamp-column>:TIMESTAMP,<some-other-column>:FLOAT --skip_leading_rows=1 --source_format=CSV --time_partitioning_field=<your-timestamp-column> <your-dataset>.<your-table> <your-csv-file>

(如果csv文件中有列名,请使用--skip_leading_rows。)

使用标准SQL而不是旧版查询您的表格,您可以看到in official docs here

  

您无法使用旧版SQL查询分区表或将查询结果写入分区表。