Avro 纪元日期时间到 bq 时间戳

Avro epoch datetime to bq timestamp

我想将存储在 GCS 中的 Avro 文件中的数据加载到大查询 table。 avro 中的两个字段具有 datetimc

我有包含几个字段的 Avro 文件,其中一个字段具有 Long 类型的纪元时间值。 对于该字段,我想在使用命令行工具或控制台将 Avro 文件数据加载到 Bigquery table 时以 'Timestamp' 格式加载值。 例如 : 我有一个值为 1614004223589 的列,我希望使用命令行工具或控制台将该值加载为 2021-02-22 14:28:56 UTC。首先,我在 BQ 中创建了空的 table 并将字段的数据类型保留为 TIMESTAMP,然后使用 CLI 将数据加载到 BQ table 中。但是我得到的不是 2021-02-22 14:30:24 1970-01-19 16:20:04.135924 UTC

任何潜在客户将不胜感激。

这是因为 Unix 格式具有秒精度,但是 BQ 要求它是毫秒或微秒精度,将列乘以 1000,然后尝试使用函数 TIMESTAMP_SECONDS 协调它会起作用。

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

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

备选方案:- 第 1 步:以与 GCS 可用的格式相同的格式将数据加载到 Bigquery。 第 2 步:在调用数据之前,创建日期转换函数并将函数应用于 Unix 格式日期。