浅析京东实时数据平台:架构篇

gwvs1220 8年前
   <p>数据仓库的数据时效性,可以理解为数据从业务系统到达仓库之后可用于分析的时间。小编记得刚毕业那会子给政府做数据仓库,最重要的工作就是往数据库录数据,那时分析用的数据根本谈不上时效性,如果非要加一个期限的话,最起码是一周。。。</p>    <p style="text-align:center"><img src="https://simg.open-open.com/show/1144830f940f6a7b8b168712f39b0dcf.jpg"></p>    <p>后来进入某精算行业,由于对风险识别的要求较高,核心数据的同步及分析工作要求在24个小时内完成,那时传统数据仓库已经开始发挥威力,但是由于异构性较严重,构建成本也较高,往往稍微出一点问题,时效性就溢出了,不过好歹比之前进步了不少,时效性是T+2。</p>    <p style="text-align:center"><img src="https://simg.open-open.com/show/675851c345a580ac0cb9d303154cc7de.jpg"></p>    <p>再后来进入京东,数据仓库里面的数据已经妥妥滴是昨天的数据了,当时业务线的老板们早上8点开早会的时候,前一天的经营数据分析报告已经通过邮件等方式发送出来,这时数据的时效性是T+1。</p>    <p style="text-align:center"><img src="https://simg.open-open.com/show/b9ae76739cf119b51857acfe0741fe94.jpg"></p>    <p>这种先将之前的数据存储起来,然后批量加工或处理的方式,是典型的离线数据仓库应用。这种模式当时已经能够满足大多数业务场景,但是随着互联网的不断发展,信息更注重实时性,营销的策略和方向往往在几分钟内发生改变。试想当交易数据以每分钟几百万单的量级变化的时候,管理者如何能够泰然处之的等到第二天才知道具体的交易情况。</p>    <p>因此,实时数据平台就应运而生,互联网公司尤其是电商企业,纷纷构建了符合本企业基础结构和业务特点的实时数据平台,今天小编就带大家了解下京东的实时数据平台。</p>    <p>开始之前,我们先普及普及两个概念:离线计算、实时计算</p>    <p>离 线计算也叫批量计算或批处理计算,先将数据抽取、存放到本地存储,数据一经抽取,就是静态不变的,再进行后续的加工、分析。</p>    <p>实 时计算:顾名思义,就是指将数据的生产看做是一个持续的动态的数据流,我们预先定义好加工规则,当数据流过时按预先定义的规则进行加工分析方向。  </p>    <p>二者的区别如下:</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/d67065afe5ae0f1d6d380916608afd97.jpg"></p>    <p>通过以上的对比不难看出,实时计算最主要的一个应用场景就是,对数据处理的时效性要求较高,及时响应,秒级甚至毫秒级延迟。</p>    <p>大家都知道,对于数据的处理,主要分为3大阶段:数据采集、数据处理、数据的可视化,实时数据的处理也不例外。京东实时数据平台的架构是什么样的呢? 请看下图:(数据流向自底向上)</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/2e01d97aad2309cd8f4663783ca7cede.jpg"></p>    <h3><strong>数据采集</strong></h3>    <p>1 )Magpie实时采集:自主研发,对线上生产数据库压力非常小,负责实时的监听、采集数据库binlog日志,再将数据解析、转换统一格式、压缩、写入到JDQ-实时数据总线;</p>    <p>2 )SDK实时上报:开放接口,用户自定义格式,通过SDK主动实时上报数据到JDQ-实时数据总线;</p>    <h3><strong>数据总线</strong></h3>    <p>JDQ 实时数据总线:基于Kafka实现的高吞吐率分布式消息队列,以Topic为单位存储实时数据对象,是实时数据采集与下游数据使用者之间的桥梁;</p>    <p>1) 平台提供SDK,通过鉴权认证,保障数据安全可靠</p>    <p>2) 限速处理,保障网络负载均衡;</p>    <p>3) 集群读写分离,跨数据中心灾备,保障集群稳定;</p>    <p>4) 产品化Client管理,通过web端查看客户端运行情况,对消费积压进行监控报警配置,提升用户体验</p>    <h3><strong>数据处理</strong></h3>    <p>1 )JRC实时计算平台:基于storm实现,使用JRC平台的SDK,开发实时计算程序,将计算后的数据写到存储或落地到离线数据仓库、集市;</p>    <p>2 )其他实时消费程序:用户基于平台提供的SDK自主开发消费程序,将计算后的数据写入到相关数据应用产品存储;</p>    <p>3 )准实时数据仓库:为提高对业务的响应时效性,弥补T+1离线仓库无法查询当天数据的不足,大数据平台推出准实时数据仓库,目前可将线上生产数据还原成小时级别的Hive表或将用户上报的数据按分钟级别写入HDFS文件;</p>    <h3><strong>数据可视化</strong></h3>    <p>实时数据的可视化按照不同的业务需求,酌情采用实时、离线的数据应用产品进行数据可视化、分析,例如:JA-京东分析师、数据领航员、商家数据罗盘等;</p>    <p> </p>    <p> </p>    <p>来自:http://mp.weixin.qq.com/s?__biz=MzA5Nzc2NDAxMg==&mid=2649864289&idx=1&sn=b7e3277b49f24451369dbb393e2ae228&chksm=889ecfa2bfe946b48281d7c3991b9efc8c0bf99815f45af12f0327dc779d5ca7095d92d517cc&scene=0</p>    <p> </p>