前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >为什么大数据需要敏捷思维?

为什么大数据需要敏捷思维?

作者头像
IT大咖说
发布2018-11-05 18:30:33
8140
发布2018-11-05 18:30:33
举报
文章被收录于专栏:IT大咖说IT大咖说

内容来源:2018 年 09 月 08 日,宜信大数据技术专家卢山巍在“2018开源数据库论坛暨首届MariaDB中国用户者大会”进行《敏捷大数据实践与开源赋能》演讲分享。IT 大咖说(微信id:itdakashuo)作为独家视频合作方,经主办方和讲者审阅授权发布。

阅读字数:2520 | 7分钟阅读

摘要

本次演讲主要分享敏捷大数据的相关实践。

何为敏捷大数据

敏捷大数据是指在敏捷理念原则指导下,构建一系列通用平台工具,和一整套大数据应用全生命周期方法学,以支撑更轻量、更灵活、更低门槛、更快迭代的大数据实践。

敏捷大数据平台栈

实时化: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方便的将感兴趣的数据导入私人分析沙箱,以确保和其他互不影响。

以上为全部分享内容,谢谢大家!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-10-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 IT大咖说 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
腾讯云 BI
腾讯云 BI(Business Intelligence,BI)提供从数据源接入、数据建模到数据可视化分析全流程的BI能力,帮助经营者快速获取决策数据依据。系统采用敏捷自助式设计,使用者仅需通过简单拖拽即可完成原本复杂的报表开发过程,并支持报表的分享、推送等企业协作场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档