我想将GCS中存储的Avro文件中的数据加载到大查询表中。 avro 中的两个字段有 datetimec
我有包含几个字段的 Avro 文件,其中一个字段的 Epoch 时间值具有 Long 类型。 对于该字段,我想加载“时间戳”格式的值,同时使用命令行工具或控制台将 Avro 文件数据加载到 Bigquery 表。 例如 : 我有一个值为 1614004223589 的列,我希望使用命令行工具或控制台将该值加载为 2021-02-22 14:28:56 UTC。首先,我在 BQ 中创建了空表,并将字段的数据类型保留为 TIMESTAMP,然后使用 CLI 将数据加载到 BQ 表中。但我得到的是 1970-01-19 16:20:04.135924 UTC,而不是 2021-02-22 14:30:24
任何线索都将不胜感激。
最佳答案
这是因为 Unix 格式具有秒精度,但是 BQ 要求其精度为毫秒或微秒,将列乘以 1000,然后尝试使用函数 TIMESTAMP_SECONDS
进行协调,它将起作用.
您可以尝试以下解决方案来达到所需的要求。
第 1 步:以与源文件相同的格式将数据加载到 Bigquery。 第 2 步:在最近的表上创建一个 View ,并在该 View 中应用日期转换,更进一步,始终引用数据 View 。
替代解决方案:- 第 1 步:以与 GCS 上可用的格式相同的格式将数据加载到 Bigquery。 第 2 步:创建一个日期转换函数,并在调用数据之前将函数应用于 Unix 格式日期。
关于google-bigquery - Avro 纪元日期时间到 bq 时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66327210/