数仓技术路线选型
对于已有的hive数据仓,怎样改造成实时数仓的要求呢?
2.关于实时数仓的选型
-
如果选择hbase,建议选择kudu
-
如果选择kudu, 还可以选择doris
-
如果选择doris,建议选择iceberg
以上三种选择,要配合具体的场景;
技术选型方案
方案一:doris作为实时数仓,hive作为离线数仓
其中doris作为实时数仓,可以设计存储n天的(doris紫自身能够自动就行数据生命周期的管理);然后hive数据仓仍然作为T+1的离线数仓使用;
优点:继承以往的hadoop生态的hive遗产,只用新加入doris一个组件即可,满足实时性数仓的要求;
缺点:该架构缺点也很明显,早期的lamda架构;1.数据重复存储2份,导致存储资源的浪费;2.两套架构需要两套维护系统,需要跟多的人员和经理投入;
方案二:以doris构建实时数仓
doris完全取代hive数仓,作为离线和实时统一的数仓使用;一般常常和clickhouse对比;
doris自身是一个存算一体的mpp架构的olap引擎,PB 级别大数据集,秒级/毫秒级查询,对标准sql的支持很好;能够应付大规模数据数据的实时和离线数据查询;现实中有许多公司将doris作为事实的实时实仓工具;显示中对多维分析和报表查询都有良好的支持;
优点:
1. 使用更简单,如建表更简单,SQL标准支持更好, Join性能更好,导数功能更强大
2. 运维更简单,如灵活的扩缩容能力,故障节点自动恢复,社区提供的支持更好
3. 分布式更强,支持事务和幂等性导入数据,物化视图自动聚合,查询自动路由,全面元数据管理;百度研发开源,有小米、美团、好未来等企业使用经验;
缺点:
方案三:以iceberg为核心构建实时数仓
使用数据湖技术iceberg,作为统一离线和实时数仓的中间层
iceberg可以直接对接上层各种计算引擎,实现真正的离线和实时一体存储,所有的关键数据只保留一份;参考:Iceberg概述
iceberg可以对接上层各种数据源
总 结
因为hive本身只能作为离线数仓来使用,有T+1的时间延迟,无法保证查询实时性的要求,因此构建实时数仓就显得十分必要,也是行业发展的趋势;
综合考虑如下:
-
第一阶段,先完成离线数仓的构建,实时数据展示仍然使用以往的实时方案;
-
第二阶段,引入doris或者iceberg构建实时数仓;