将谷歌云存储中的 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?