背景
对接业务类型
HBase 是建立在 Hadoop 生态之上的 Database,源生对离线任务支持友好,又因为 LSM 树是一个优秀的高吞吐数据库结构,所以同时也对接了很多线上业务。在线业务对访问延迟敏感,并且访问趋向于随机,如订单、客服轨迹查询。离线业务通常是数仓的定时大批量处理任务,对一段时间内的数据进行处理并产出结果,对任务完成的时间要求不是非常敏感,并且处理逻辑复杂,如天级别报表、安全和用户行为分析、模型训练等。
多语言支持
HBase 提供了多语言解决方案,并且由于滴滴各业务线 RD 所使用的开发语言各有偏好,所以多语言支持对于 HBase 在滴滴内部的发展是至关重要的一部分。我们对用户提供了多种语言的访问方式:HBase Java native API、Thrift Server(主要应用于C++、PHP、Python)、JAVA JDBC(Phoenix JDBC)、Phoenix QueryServer(Phoenix 对外提供的多语言解决方案)、MapReduce Job(Htable/Hfile Input)、Spark Job、Streaming 等。
数据类型
HBase 在滴滴主要存放了以下四种数据类型:
-
统计结果、报表类数据:主要是运营、运力情况、收入等结果,通常需要配合
Phoenix 进行 SQL 查询。数据量较小,对查询的灵活性要求高,延迟要求一般。 -
原始事实类数据:如订单、司机乘客的 GPS 轨迹、日志等,主要用作在线和离线的