内容来源:2018 年 09 月 08 日,宜信大数据技术专家卢山巍在“2018开源数据库论坛暨首届MariaDB中国用户者大会”进行《敏捷大数据实践与开源赋能》演讲分享。IT 大咖说(微信id:itdakashuo)作为独家视频合作方,经主办方和讲者审阅授权发布。
阅读字数:2520 | 7分钟阅读
摘要
本次演讲主要分享敏捷大数据的相关实践。
获取嘉宾演讲视频及PPT,扫一扫下方二维码即可。
何为敏捷大数据
敏捷大数据是指在敏捷理念原则指导下,构建一系列通用平台工具,和一整套大数据应用全生命周期方法学,以支撑更轻量、更灵活、更低门槛、更快迭代的大数据实践。
敏捷大数据平台栈
实时化:dbus
DBus(数据总线平台)是一个DBaaS平台解决方案,它主要面向大数据项目开发和管理运维人员,致力于提供数据实时采集和分发解决方案。
平台采用高可用流式计算框架,提供海量数据实时传输,可靠多路消息订阅分发。通过简单灵活的配置,实现无侵入接入源端数据,对各个IT系统在业务流程中产生的数据进行汇集,并统一处理转换成通过JSON描述的UMS格式,提供给不同下游客户订阅和消费。
上图为dbus的模块架构以及模块之间的分工和数据流转。就拿mysql为例,我们会先从MySQL备库binlog中接入日志抽取模块,由它监控日志变更并实时抽取出来,经过处理之后再落到kafka上,后面连接的分发预处理模块会根据schema对数据进行分类,最后通过流式转换模块进行数据的清洗,比如将不同的数据格式转换成ums。
Slave用来拉取初始的全量或者日常数据补充,先由分片模块决定如何分片,具体分片工作在kafka上,后面的全量拉取模块会真正从Slave拉取数据。
心跳模块会定时给Master发送心跳,心跳数据会经由binlog流出,这样即使下游长时间未收到上游数据,也能够判断当前情况,知道dbus有没有出现问题。
最后的多租户分发模块主要是出于安全考虑,保证不同部门间的数据隔离。
在讨论ums之前,我们首先要讲下schema evolution。大多数公司出于业务考虑,其上游元数据会频繁变更,因此需要在变更之前通知或者人为干预。而dbus支持系统层面的自动检测,拥有schema模式演变的能力,任何关系型表都可以用ums的格式表示(如上图)。
schema模式演变由dbus提供元数据查询服务,ums消息元数据自描述及解析去中心化,支持元数据变更版本号,线下支持非兼容性变更,可以解耦逻辑表与物理Topic,通过payload降低元数据overhead。
实时化:wormhole
Wormhole(流式处理平台),是一个SPaaS平台解决方案,提供数据流式处理解决方案。专注简化和统一开发管理流程,并提供可视化界面,以及基于配置和SQL的业务开发方式。它屏蔽了底层技术实现细节,很大程度上降低了开发门槛,使得大数据流式处理项目的开发和管理变得更加轻量敏捷、可控可靠。
Wormhole设计核心在于概念抽象和flow能力,Wormhole Stream可以看作是一个Spark Stream。我们都知道Spark Stream的特点在于会占用固定资源,无论负载情况如何,而且从头到尾只能做一件事情,如果要导多张表就要建多个Spark Stream。
而我们从物理的Wormhole Stream中抽象出了逻辑的Wormhole flow概念,使得一个管道可以同时接收多个源的数据。
上图为wormhole Stream的内部情况,包含一个Driver和多个Executors,flow会实时感应zk指令并动态生效,无需重启stream,还可根据zk配置动态加载topic。
Wormhole stream的幂等Sink实现,主要是通过id判断是否写入,再由op决定写入方式,写入之前尽量合并行快照,写入的时候采用批量处理,并支持乱序数据最终一致。
Flow漂移是另一个非常有用的功能,可以控制flow从一个stream中漂移到另一个stream中,并自动调整合适的offset,为自动化运维提供服务。
虚拟化:moonbox
Moonbox是一个DaaS平台解决方案,面向群体为数据仓库工程师、数据分析师、数据科学家等,提供数据虚拟化解决方案。即可作为数据应用层数据查询计算统一入口,也可作为逻辑数据仓库与现有数据仓库互补。用户只需要通过统一SQL服务调用和Moonbox交互,即可透明屏蔽异构数据系统异构交互方式,轻松实现跨异构数据系统透明混算。
上图为moonbox的模块架构,可以看到它是分布式高可用的,并基于spark获得了计算能力。不过Spark虽然能够接各种数据源,但是算子下推的能力有限,limit、group by、join等都不支持,moonbox则弥补了这个问题。
可视化:davinci
Davinci作为可视化应用平台,提供了一站式可视化的解决方案。即可作为公有云/私有云独立部署使用,也可作为可视化插件集成到三方系统。用户只需在可视化UI上简单配置即可服务多种数据可视化应用,并支持高级交互、行业分析、模式探索、社交智能等可视化功能。
总体架构
架构方案之实时数据平台RDP
场景1:实时报表
上图为实时报表实现流程,首先通过dbus加wormhole将数据实时同步到关系型数据库或者在分布式存储,并为了进一步降低自助门槛,流上没有设置转换逻辑。
数据量小时可以sink到关系数据库并直接展示,数据量大时sink到分布式存储,维护实时快照(ODS)。然后利用moonbox进行查询混算并提供给展示段,为提高性能可以定时预算并缓存。最后通过zeppelin进行报表开发,使用davinci进行报表展示和应用。
场景2:实时应用
实时数据应用会接纳更多数据源类型数据,为提高实时应用的数据时效性,可以在wormhole上配置流上处理逻辑,将增量数据以append方式落入到分布式存储。UbiLog可以用来backfill wormhole以修复问题数据或逻辑,也可以作为数据表的历史数据来源。
架构方案之敏捷商业智能ABI
敏捷BI
通过dbus加wormhole将数据源实时同步到ODS和UbiLog,这样就具备了所有最新快照数据和所有最新历史数据。以backfil确保ODS的最终一致性,对OLAP系统的支持满足了实时统计分析类的需求。
数据分层架构均建立在moonbox里,所有数据访问都要通过moonbox接入,因此moonbox会自动维护所有元数据信息和所有查询SQL逻辑,可以基于此建立元数据管理、血缘分析、数据质量等系统。
敏捷AI
数据可能因各种原因散落在不同存储中,但这对于数据分析人员和数据科学家来说不必在意,它们只需通过moonbox提供的统一SQL来透明操作所有需要的数据,即可在安全管控下进行只有分析和探索。
用户还可以使用moonbox方便的将感兴趣的数据导入私人分析沙箱,以确保和其他互不影响。
以上为全部分享内容,谢谢大家!
IT大咖说 |关于版权
感谢您对IT大咖说的热心支持!
领取专属 10元无门槛券
私享最新 技术干货