2.3.4 即席查询业务描述

数据仓库除了需要满足用户提出的需求,做出相应的数据报表,有时还需要满足用户的临时查询需求,根据临时产生的查询条件及时给出用户查询结果,此业务需求就是即席查询。即席查询是指用户根据自己的需求,灵活地选择查询条件,系统能够根据用户的查询条件生成相应的统计报表。即席查询与普通的应用需求相比,最大的不同之处在于普通的应用需求是定制开发的,而即席查询是用户自定义查询条件。

对海量数据来说,即席查询是一项不小的挑战,一般的大数据分析需求通常会涉及TB级甚至PB级的数据,计算时间有可能高达几十分钟甚至几小时。如果想要做到即时给出用户的查询结果,即席查询的自定义查询条件和系统都需要满足一些条件。本数据仓库系统考量了两种即席查询系统,分别是Presto和Kylin。Presto是专为大数据实时查询计算而设计开发的产品,特点是支持多数据源、支持SQL、灵活扩展、支持多数据源的混合计算、拥有10倍于Hive的查询性能等。Kylin是一个开源的、分布式的分析型数据仓库,提供Hadoop/Spark之上的SQL查询接口及多维分析能力以支持超大规模数据。Kylin还可以与多种数据可视化工具整合,使用户可以使用BI工具对Hadoop数据进行分析。即席查询原理框图如图2-6所示。

图2-6 即席查询原理框图