Rumble:面向大型杂乱数据集的数据独立性
数据库
2020-10-21 v3
摘要
本文介绍 Rumble,一个构建于 Apache Spark 之上、面向大型异构嵌套 JSON 对象集合的查询执行引擎。尽管此类数据集日益广泛,多数现有工具围绕表格数据模型构建,给引擎与查询接口均带来阻抗失配。相比之下,Rumble 采用 JSONiq——一种专为查询 JSON 文档设计的标准化语言。Rumble 设计与实现的关键挑战在于将 JSON 文档的递归结构及 JSONiq 查询映射到 Spark 基于表格数据框的执行原语上。我们的方案是将 JSONiq 表达式翻译为迭代器树,其根据嵌套层级在本地与分布式执行模式间动态切换。通过克服引擎中的阻抗失配,Rumble 使用户免于为每个查询解决同一问题,从而显著提升其生产力。正如我们在大量实验中所展示的,Rumble 能够扩展到 TB 级大型复杂数据集,并具备与其他引擎相似或更优的性能。结果还表明,Codd 的数据独立性概念对于异构嵌套数据集,如同对于高度结构化表格一样有意义。
引用
@article{arxiv.1910.11582,
title = {Rumble: Data Independence for Large Messy Data Sets},
author = {Ingo Müller and Ghislain Fourny and Stefan Irimescu and Can Berker Cikis and Gustavo Alonso},
journal= {arXiv preprint arXiv:1910.11582},
year = {2020}
}
备注
In revision for PVLDB 14, 2020