分享嘉宾:高大月@美团点评,Apache Kylin PMC成员,Druid Commiter
编辑整理:Druid中国用户组 6th MeetUp
出品平台:DataFunTalk
--
导读: 长久以来,对SQL和权限的支持一直是Druid的软肋。虽然社区早在0.9和0.12版本就分别添加了对SQL和Security的支持,但根据我们了解,考虑到功能的成熟度和稳定性,真正把SQL和Security用起来的用户是比较少的。本次分享将介绍社区SQL和Security方案的原理,以及美团点评在落地这两个功能的过程中所遇到的问题、做出的改进、和最终取得的效果。下面开始今天的分享:
我今天的分享内容包括四部分。首先,和大家介绍一下美团对Druid的使用现状,以及我们在构建Druid平台的过程中遇到的挑战。第二部分,介绍Druid SQL的基本原理和使用方式,以及我们在使用Druid SQL的过程中遇到的问题和做的一些改进。第三部分,介绍Druid在数据安全上提供的支持,以及我们结合自身业务需求在Druid Security上的实践经验。最后,对今天的分享内容做一个总结。
--
01 Druid在美团的现状和挑战
1.Druid应用现状
美团从16年开始使用Druid,集群版本从0.8发展到现在的0.12版本。线上有两个Druid集群, 总共大概有70多个数据节点。
数据规模上,目前有500多张表,100TB的存储,最大的表每天从Kafka摄入的消息量在百亿级别。查询方面,每天的查询量有1700多万次,这里包括了一些程序定时发起的查询,比如风控场景中定时触发的多维查询。性能方面,不同的应用场景会有不同的要求,但整体上TP99响应时间在一秒内的表占了80%,这和我们对Druid的定位——秒级实时OLAP引擎是一致的。
2.Druid平台化挑战
把Druid作为一个服务提供给业务使用的过程中,我们主要遇到了易用性、安全性、稳定性三方面的挑战。
易用性:业务会关心Druid的学习和使用成本有多高,是否能很快接入。大家知道,Druid本身对数据写入和查询只提供了基于JSON的API接口,你需要去学习接口的使用方法,了解各种字段的含义,使用成本是很高的。这是我们希望通过平台化去解决的问题。
安全性:数据是很多业务的核心资产之一,业务非常关心Druid服务能否保障他们的数据安全。Druid较早的版本对安全的支持较弱,因此这一块也是我们去年重点建设的部分。
稳定性:一方面需要解决开源系统落地过程中出现的各种稳定性问题,另一方面,如何在查询逻辑不可控的情况下,在一个多租户的环境中定位和解决问题,也是很大的挑战。
--
02 Druid SQL的应用和改进
在Druid SQL出现之前,Druid查询通过基于JSON的DSL来表达(下图)。这种查询语言首先学习成本很高,用户需要知道Druid提供了哪些queryType,每种queryType需要传哪些参数,如何选择合适