
桔妹导读:滴滴数据通道引擎承载着全公司的数据同步,为下游实时和离线场景提供了必不可少的源数据。随着任务量的不断增长,数据通道的总体架构也随之发生改变。本文介绍了滴滴数据通道的发展历程,遇到的问题以及从此的规划。html

数据,对于任何一家互联网公司来讲都是很是重要的资产,公司的大数据部门致力于解决如何更好的使用数据,挖掘数据价值,而数据通道服务做为“大数据”的前置链路,一直以来都在默默的为公司提供及时,完整的数据服务,这里咱们对滴滴数据通道的演进作一个全面的介绍。微信
2. 网络
数据通道简介多线程
数据通道服务,顾名思义,是数据的通路,负责将数据从A同步到B的一套解决方案。架构
异构数据的同步是公司不少业务的广泛需求,通道服务也就成为了一项基础服务。包括但不限于日志,Binlog同步到下游各种存储和引擎中,如HIVE,ES,HBase等,用于报表,运营等场景。app
数据通道方案自己涉及的组件不少,链路也比较复杂,这里经过一个简化的有向图来介绍下通道的核心流程。异步
组件名称分布式 |
组件说明性能 |
容器大数据 |
业务方运行的容器是数据产生的地方,是异构数据的原始数据,包括业务日志和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源创计划”,欢迎正在阅读的你也加入,一块儿分享。