在云中跨大型 JSON 数据集运行类似 SQL 的查询?

Posted

技术标签:

【中文标题】在云中跨大型 JSON 数据集运行类似 SQL 的查询?【英文标题】:Run SQL-like queries across large JSON datasets, in the cloud? 【发布时间】:2017-07-04 16:07:22 【问题描述】:

是否有符合这些要求的产品:

运行类似 SQL 的查询(最好使用友好的 UI,但必要时可以使用命令行) 跨越数百万个文档的大部分静态 JSON 数据集,没有一致的架构 JSON 文档存储在云端,而不是本地。

基本上,我想要 Google BigQuery,但不需要一致的预先指定架构。

Apache Drill 提供跨具有不同模式的大型 JSON 数据集的类似 SQL 的查询。但是,我认为它不适用于云托管的数据集 - 已将其设置为与 S3 存储桶通信,并且似乎需要在本地下载所有数据,这使得它无法用于大型数据集。

【问题讨论】:

【参考方案1】:

BigQuery 需要静态架构,但一种选择是将表定义为 CSV,并带有一个不出现在数据中的分隔符,这意味着您将拥有一个字符串列。您将仅限于使用 JSON_EXTRACT 函数从 JSON 中提取数据,但您可以从那里转换为其他数据类型等等。

您还可以考虑 filing a feature request 让 BigQuery 团队考虑支持一种文档类型,以便将来更轻松地处理此类数据。

【讨论】:

以上是关于在云中跨大型 JSON 数据集运行类似 SQL 的查询?的主要内容,如果未能解决你的问题,请参考以下文章

在大型数据集上使用 JOIN 运行 SQL 查询

跨 django 数据库移动大型数据集

如何从 pandas 数据框中的大型每日 JSON 数据集计算平均月值?

为啥 PL/SQL Bulk DML 对具有父子约束表的大型数据集运行缓慢?

大型数据集跨因子的时间序列密度图

如何定期将大型 JSON 数据集导入 Cloud Firestore?