BlinkDB:超大规模数据上具有误差界限与响应时间界限的查询
数据库
2012-06-20 v2 分布式、并行与集群计算
摘要
本文介绍了 BlinkDB,一个大规模并行、基于采样的近似查询引擎,用于在海量数据上运行即席交互式 SQL 查询。BlinkDB 建立的关键洞察是:人们通常可以在没有完美答案的情况下做出合理决策。例如,使用分布式系统日志集合可靠地检测故障服务器,并不需要分析系统处理的每一个请求。基于这一洞察,BlinkDB 允许用户在查询准确性与响应时间之间进行权衡,通过在数据样本上运行查询并呈现带有有意义误差线的结果,实现对海量数据的交互式查询。为实现这一目标,BlinkDB 采用了两个区别于该领域先前工作的关键思想:(1) 一个自适应优化框架,随时间从原始数据构建并维护一组多维、多分辨率样本;(2) 一种动态样本选择策略,根据查询的准确性和/或响应时间要求选择适当大小的样本。我们构建了 BlinkDB 的开源版本,并使用著名的 TPC-H 基准以及源自 Conviva Inc. 的真实世界分析工作负载验证了其有效性。我们在一个 100 节点集群上的实验表明,BlinkDB 能够在不到 2 秒的时间内(比 Hive 快 100 倍以上)回答来自真实世界查询轨迹的广泛查询,数据量高达 17 TB,误差在 2% 到 10% 之间。
引用
@article{arxiv.1203.5485,
title = {BlinkDB: Queries with Bounded Errors and Bounded Response Times on Very Large Data},
author = {Sameer Agarwal and Aurojit Panda and Barzan Mozafari and Samuel Madden and Ion Stoica},
journal= {arXiv preprint arXiv:1203.5485},
year = {2012}
}