将谷歌云存储中的 json 文件加载到 bigquery 表中

Posted

技术标签:

【中文标题】将谷歌云存储中的 json 文件加载到 bigquery 表中【英文标题】:load json files in google cloud storage into big query table 【发布时间】:2020-09-14 09:21:55 【问题描述】:

我正在尝试使用 python 使用客户端库。

我面临的问题是 JSON 文件上的 TIMESTAMP 是 Unix 纪元 TIMESTAMP 格式,大查询无法检测到:

根据文档:

所以我想知道该怎么办?

我考虑过在将 JSON 格式加载到 BigQuery 表之前手动更改它吗?

或者也许正在寻找 BigQuery 方面的自动转换?

我在互联网上想知道,但找不到任何有用的东西。

提前感谢您的支持。

【问题讨论】:

【参考方案1】:

您有 2 个解决方案

在 BigQuery 集成之前更新格式 或者您在 BigQuery 集成后更新格式

之前

之前意味着更新您的 JSON(手动或通过脚本)或通过将 JSON 加载到 BigQuery 的过程(如 Dataflow)来更新它。

我个人不喜欢这样,文件处理从来都不是有趣和高效的。

之后

在这种情况下,您让 BigQuery 将您的 JSON 文件加载到一个临时表中,并将您的 UNIX 时间戳转换为数字或字符串。然后,对该临时表执行请求,将字段转换为正确的时间戳格式,并将数据插入到最终表中。

这种方式更流畅,更容易(编写一个简单的 SQL 查询)。但是,这意味着读取所有加载的数据(然后写入)的成本

【讨论】:

嗨,先生,首先谢谢,我只是想从临时表到新表中执行“INSERT SELECT”同样的事情。 问题是我需要查询所有表并只转换 1 列我该怎么做? 类似SELECT * EXCEPT (timestamp_field), CAST(....) AS timestamp_field FROM temp_table

以上是关于将谷歌云存储中的 json 文件加载到 bigquery 表中的主要内容,如果未能解决你的问题,请参考以下文章

将谷歌云存储文件夹挂载到谷歌人工智能平台作业

如何将谷歌云自然语言实体情感响应转换为 Python 中的 JSON/dict?

将谷歌云平台中的目录移动到根目录

无法使用 python 将 JSON 文件从谷歌云存储加载到 bigquery

如何将谷歌云构建步骤文本输出保存到文件

将谷歌存储桶中的所有 .csv 文件读取到一个大熊猫 df 中,然后以 .csv 格式保存到另一个桶中