从 Avro 导入一个以秒为单位的 unix 时间戳到 Bigquery 中的正确时间戳

Import a unix timestamp in seconds from Avro to the right timestamp in Bigquery

我想将以 AVRO 格式存储的数据从 GCS 导入 Bigquery。

源时间戳为 Unix 格式,精度为秒(例如:1572534049),但 BQ 要求它为毫秒或微秒精度,以使用逻辑类型并将其转换为正确的时间戳(我当前在 1970-XX-XX 而不是 2021-XX-XX 中获取值。

我知道我的问题类似于以下线程:

但是,我无法将 AVRO 文件中的列乘以 1000,因为它们是从其他地方检索然后定期存储的。看来我也无法在 table 架构定义中添加 *1000。

如果没有直接的方法,我将简单地在中间 table 中导入具有 unix 时间戳作为整数的 AVRO,然后通过查询输出另一个具有预期列的 table , 但这不是最方便的。

编辑:添加示例

您可以尝试以下解决方案来达到所需的要求。

第 1 步:将数据以与 GCS 上可用的格式相同的格式加载到 Bigquery。 第 2 步:在最近 table 上创建一个 View 并在该视图中应用日期转换,进一步始终参考视图获取数据。

替代解决方案:- 第 1 步:以与 GCS 上可用的格式相同的格式将数据加载到 Bigquery。 第 2 步:在调用数据之前,为日期转换创建一个 function 并在 Unix 格式日期上应用函数。

它将满足您的要求。