我有一个unix时间戳列,在我的csv文件中用毫秒表示。现在当我在我的bigQuery表中插入这些数据并查询它时,我得到了这个错误
bigQuery not supporting milliseconds timestamps
现在我想将此列作为分区列。 我有几个问题 1)即使我将其保存为int64,如何在此字段上创建分区列? 2)我想避免重复的表。
答案 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查询分区表或将查询结果写入分区表。