在2000年代中期,谷歌分析师可以用MapReduce运行大规模计算,但每个作业需要几分钟到几小时——对于交互式探索数据来说太慢了。工程师们希望数据库风格的查询能达到网络搜索的速度,处理PB级数据。

Dremel自2006年起投入生产,结合了两个理念:列式存储(对嵌套记录进行编码,使查询只读取所需字段)和多级服务树(将查询分发到数千个节点并汇总结果)。2010年VLDB论文报告了在3000节点集群上扫描850亿条记录的表,大多数查询在10秒内完成。

谷歌在2010年5月的I/O大会上将该技术作为BigQuery推出,2011年11月增加了图形界面和REST API,2012年5月全面上市——宣称让用户无需购买硬件就能分析TB级数据。

按列存储数据,秒级回答问题

列式布局减少读取字节数:查询只触碰所需字段。

树状执行在数千台廉价机器上并行化。

原生SQL类查询替代了多步MapReduce流水线。

原位访问直接从GFS或Bigtable读取数据,无需加载步骤。

围绕你将提出的问题来组织数据,而不是它的写入方式:只读取所需的列并将工作下推至树状结构,把原本需要批次处理的作业转变为适合会议时间的查询。

BigQuery成为主流云数据仓库之一,被数千家公司使用,Dremel的列式格式影响了后来的系统,如Apache Parquet。这篇论文是大数据系统领域被引用最多的作品之一。

从这里,追溯依据

参考来源

  1. Dremel: Interactive Analysis of Web-Scale Datasets comp.nus.edu.sg
  2. Google opens BigQuery cloud analytics to all zdnet.com
  3. Big Data Analysis Field Expands with Launch of Google BigQuery dbta.com