BigQuery无法处理以毫秒为单位的时间戳分区列。

3

我有一个 Unix 时间戳列,它以毫秒为单位表示在我的 CSV 文件中。现在当我将这些数据插入到我的 BigQuery 表中并查询时,会出现以下错误:

bigQuery not supporting milliseconds timestamps

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


我不是BigQuery专家,但根据文档,您需要一个日期或时间戳列来进行分区。因此,只需使用您的数据填充一个时间戳列即可。 - Tim Biegeleisen
1个回答

1
如果您的时间戳数据以毫秒表示,那么您将无法正确创建分区表。相反,您应该使用“TIMESTAMP或DATE列”,如@TimBiegeleisen所述。时间戳将使用微秒精度。一旦您的列是微秒级别的,您可以使用类似以下的内容来创建分区表:
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而不是传统SQL查询您的表,如您可以在此处官方文档中看到的那样:

您不能使用传统 SQL 查询分区表或将查询结果写入分区表。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接