論建立实时大数据平台
李万鸿2020-2-15
目前的大多大数据平台都是T+1的非实时平台,只能展示昨天的数据,而客户普遍需要实时数据仓库提供实时服务,那么,如何解决此问题,打造高质量、高可用、高稳定、高性能实时数据库呢?
我们在刚刚完成湖南的一个项目中,就成功地完成了一个实时大数据平台,使用效果良好,客户很满意,给予好评。实时大数据平台需要实时增量获取数据并进行实时处理,才能提供实时数据服务。我们采用的技术体系是这样的:
- 采用Spark Delta0.7数据湖做数据仓库DW,使用俄罗斯的新颖大数据平台Clickhouse做数据集市DM。
- 全量采用Spark抽取数据到delta的ODS,并在delta生成DWS,再生成ADS到clickhouse。这里需要根据业务建立数仓模型,运行大量的sql。
- 对oracle数据库采用logmnr获取log变动的sql,对Mysql数据库采用Canal获取log的sql,把sql通过kafka发送到Spark Streaming,使用spark执行insert、update、delete语句,修改ods,再对ODS生成dws和ads,从而实时增量获取变化的数据。
- 使用Springboot开发clickhouse的微服务接口,实时处理数据,提供实时数据服务。比如出差、请假数据,实时比对日期,修改出差状态是已出差、已结束等。
Spark Delta数据湖具有事务功能,支持增删改查,性能优异,支持Spark的sql操作,作为DW数据仓库,clickhouse性能优异,是不同于hadoop的大数据存储平台,支持实时写入和读取,无需采用事务处理,稳定快速,速度是Mysql的800倍,实际使用,快如闪电,线性扩展,P级海量,是新出现的好产品,阿里华为都在使用。
经过实战,我们发现,还可以进一步简化架构,直接使用clickhouse做整个实时数据仓库,把ODS、DWD、DWS、ADS都放在ch,这样效果更好,简单快捷,更为实时高效。
对这个平台在建立数据中台时,需要根据这个技术架构进行巧妙设计,比如使用Datax全量抽取数据到Hive,利用Hive的mysql元数据建立数据的元数据管理,再从Hive把数据抽取到ch。
从ch查询数据,进行数据资产管理,等等。
总之,实时大数据平台和中台已成为新时代的大势所趋,这是一个行之有效的方案,希望对大家有所启迪开发更棒的实时中台,谢谢。