滴滴数据通道服务演进之路
桔妹导读:滴滴数据通道引擎承载着全公司的数据同步,为下游实时和离线场景提供了必不可少的源数据。随着任务量的不断增加,数据通道的整体架构也随之发生改变。本文介绍了滴滴数据通道的发展历程,遇到的问题以及今后的规划。
数据,对于任何一家互联网公司来说都是非常重要的资产,公司的大数据部门致力于解决如何更好的使用数据,挖掘数据价值,而数据通道服务作为“大数据”的前置链路,一直以来都在默默的为公司提供及时,完整的数据服务,这里我们对滴滴数据通道的演进做一个全面的介绍。
2.
数据通道简介
数据通道服务,顾名思义,是数据的通路,负责将数据从A同步到B的一套解决方案。
异构数据的同步是公司很多业务的普遍需求,通道服务也就成为了一项基础服务。包括但不限于日志,Binlog同步到下游各类存储和引擎中,如HIVE,ES,HBase等,用于报表,运营等场景。
数据通道方案本身涉及的组件很多,链路也比较复杂,这里通过一个简化的有向图来介绍下通道的核心流程。
组件名称 | 组件说明 |
容器 | 业务方运行的容器是数据产生的地方,是异构数据的原始数据,包括业务日志和Binlog等。 |
Agent | Agent负责数据采集,常见的远端数据包括普通日志和Binlog,Agent负责将这类数据采集后发送到消息队列中,通过读取文件,并记录offset的方式,保证至少一次的数据采集服务。 |
Kafka | 消息队列的加入主要用于数据复用,削峰填谷以及上下游解耦。采集一份数据,多个下游可以根据需要消费后自行处理,同时借用消息队列的高吞吐能力,减少上下游的耦合,在流量突增的时候可以起到缓冲的效果。 |
DSink | DSink组件是公司内对数据投递服务的简称,主要负责消费MQ数据投递到下游存储,通过消息队列的OffSet保证至少一次的数据投递。 |
ES/HDFS | 存储引擎,异构数据通过上述投递服务,完成结构化处理,投递到下游存储中,供业务方使用。 |
ETL | 写入HDFS数据一般来说都是作为业务方ETL的输入,经过自定义的处理逻辑后写入HIVE,供分析和计算使用。 |
数据仓库 | 数据仓库中保存结构化的数据,方便业务系统或者下游级联使用。 |
各类业务系统 | 业务系统直接对接ES或者数据仓库,提供线上或者准线上服务。 |
数据通道服务的演进
▍3.1 组件平台化
目标:更好地服务业务
目标:承诺SLA
定时提交offset时只需要获取Map中第一个Entry value的结束offset进行提交即可。
offset经过这种处理,可以保证每次提交的offset都是准确的,完成投递的数据,基于此,DSink实现了At Least Once语义。
目标:提升用户体验
目标:降成本,模板化
-
Flink是基于yarn来调度资源,最小的单位是1C1G,通过计算,可以对每一个任务的资源进行精准控制,尽可能的减少资源浪费。 -
投递引擎切换到StreamSQL后,所有任务都通过SQL表达,统一了任务模版。 StreamSQL的UDF特性可以支持用户自定义解析逻辑,基础SQL可以支持写入下游ES或者HDFS等存储,而用户逻辑增加UDF后即可直接写入。这一方面减少用户重复开发的工作量,另一方面也拓展了数据通道的服务范围。
目标:问题诊断与数据治理
-
统筹整个链路资源,根据用户任务,分配各个下游引擎资源 -
问题诊断和自动化处理——基于各类指标,完成问题智能分析和诊断,对于常见问题可以自动化处理,减少人工干预 -
全链路血缘建设——根据血缘关系识别重点项目,分级保障 -
全链路数据治理——基于血缘关系完成数据治理,减少不比要的任务,进一步提升资源利用率
4.
数据通道服务承载着全公司的数据同步,绝大部分离线任务的数据源都是通道服务投递的,可以说当前的通道服务是整个滴滴数据的大动脉。经过这几年的发展,通道服务也逐渐趋于完善,持续稳定的为公司提供数据采集和投递服务。
专注于大数据实时引擎技术,致力于数据通道全链路建设,基于各类实时引擎,为公司提供稳定,可靠,高效,及时的数据通道服务。
内容编辑 | Charlotte 联系我们 | DiDiTech@didiglobal.com
本文分享自微信公众号 - 滴滴技术(didi_tech)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
七夕又来了,给女朋友做个动态二维码
苏生不惑第166 篇原创文章,将本公众号设为星标,第一时间看最新文章。 又到了一年一度的七夕了,之前写过听说 520 你还没对象,来这里看看 ,是不还在想送什么礼物,今天分享一个有意思的动态二维码,可以用来哄女朋友开心。 二维码 二维码也称为二维条码,是指在一维条码的基础上扩展出另一维具有可读性的条码,使用黑白矩形图案表示二进制数据,被设备扫描后可获取其中所包含的信息。 以上来自维基百科解释 https://zh.wikipedia.org/zh-cn/%E4%BA%8C%E7%B6%AD%E7%A2%BC ,自从有了微信,二维码已经随处可见了。 使用 Chrome 扩展可以轻易的生成二维码 https://chrome.google.com/webstore/detail/quick-qr-code-generator/afpbjjgbdimpioenaedcjgkaigggcdpp/related 今天介绍的是基于 Python 的二维码工具 myqr 。 myqr myqr 可生成普通二维码、带图片的艺术二维码(黑白与彩色)、动态二维码(黑白与彩色),直接使用 pip insta...
- 下一篇
【性能优化实战】宝宝知道小程序FMP优化实录
背景 宝宝知道小程序从首次发布至今,经过了几十个版本的迭代。随着业务发展,页面功能内容的不断增多,相关性能数据不断变差,核心性能数据 FMP 长期处在 2000ms 以上。 在该项目之前,我们团队也对小程序做了一定的性能调优工作,内容包括: 包体积优化,去除了不少引用在项目中的图片素材文件,将包体积优化至 500kb 以下; 联合后端对耗时较高的业务接口做优化,单个接口返回速度需要控制在 100ms 左右; 优化了部分业务逻辑,小程序启动时减少了一些不必要的操作逻辑; 使用了小程序框架提供的最新生命周期 onInit ,可提前 100ms 左右发起业务网络请求; 使用 prelink 预连接网络,提升数据接口的请求效率。 经过上述手段之后,FMP 降到了 1900ms 左右,后续再也无法产生优化效果。 以上优化手段,基本排除了网络连接,包体积优化不到位引起的性能不佳。那么我们就只有一个问题需要仔细排查 —— 内容的渲染效率。 问题发现 目前从手百上打开宝宝知道小程序的最大入口页面为问答页,整体 pv 占比超过 6 成,那么我们优先优化这个页面,便可以带来性能收益的最大化。 通读问答页代...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Mario游戏-低调大师作品
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS关闭SELinux安全模块