网站文章采集平台(【数据中台】DataSimba一站式大数据智能服务平台(一))
优采云 发布时间: 2021-08-29 02:12网站文章采集平台(【数据中台】DataSimba一站式大数据智能服务平台(一))
继上一期数据中心技术交流专栏DataSimba发布企业级一站式大数据智能服务平台DataSimba之后,本期介绍DataSimba的data采集平台。
DataSimba采集平台是DataSimba数据计算和服务平台的一部分,负责数据的导入,支持上层数据处理。 DataSimba的定位是企业私有化部署,这决定了采集平台面临着与传统互联网公司不同的需要解决的问题:
1、企业使用的数据库种类繁多且复杂,包括很多非主流数据库;
2、企业数据管理水平参差不齐,难以实现依赖数据规范的导入方式(如维护栏modify_time判断记录是否被修改);
3、需要支持的场景比较复杂,包括:流处理、增量处理、批处理;
4、Enterprise 的数据平台一般规模较小,资源有限,需要更好地平衡计算成本和效率。
采集平台整体架构
整个采集平台的核心是两个采集组件,DataX和DataS:
数据X:
·阿里巴巴开源数据集成组件支持通过jdbc查询导入通用关系型数据库;
·DataSimba 支持向导模式和脚本模式。
·对 NoSQL、FTP 等的可扩展支持
数据:
Singularity Cloud 是为复杂的企业数据环境开发的基于数据库日志(类似于 binlog)的数据同步工具。主要特点如下:
·配置简单:导入整个库的配置只需一分钟,支持实时抽取、增量放置、全合并;
·基于数据库Log采集,以减少对企业现有系统的入侵。目前支持Mysql、Sqlserver、Oracle、Postgres、MongoDB;
·支持多种业务场景,包括:实时计算、增量计算(10m~1h)、全批处理(>1h);
·高效的数据合并性能,节省计算资源;
·架构自动同步;
DataX 与 DataS:
·DataX采用查询(即Select)方式,而DataS分析数据库日志;
·DataX支持的数据源范围更广,而DataS支持的数据源更少(见下表);
·DataX对数据源的压力较大,而DataS对数据源的压力较小;
·DataX 需要大的空闲时间窗口供数据源提取数据。而DataS不需要;
·DataX需要维护类似modify_time的字段进行增量抽取,而DataS不需要;
·DataX无法跟踪记录变更过程,DataS可以跟踪;
·DataX不支持实时数据采集,DataS支持二级数据采集;
当采集data 时,DataSimba 更喜欢 DataS。
为什么要做DataS
早期的Simba使用DataX导入数据,在企业部署中遇到很多问题,比如:
·对于快消品公司来说,数据库本身的压力比较大,数据采集没有大的免费窗口,所以使用DataX提取起来比较困难。
·在企业中,数据库每日增量较小(~10GB),但数据总量较大(>20T),导致增量和全量合并效率较低,消耗更多资源。
·金融公司需要在不侵入现有业务的情况下跟踪数据仓库中账户余额的每一次变化,这是使用DataX无法做到的。
·某企业的大屏每小时需要刷新一次,统计数据量大,使用流计算的成本高,实现起来比较复杂。使用DataX无法在一个小时内达到采集频率。
以上只是simba部署过程中遇到的部分内容。为了解决遇到的各种问题,我们最终决定开发一套新的采集工具:DataS。
DataS技术方案
DataS的目标是:配置维护简单,支持多数据源,支持多应用场景,尽可能高效。
相比于 cannal/maxwell 等 binlog采集 工具,DataS 支持更多的数据库类型:
实时采集数据流
实时采集的主要流程如下:
1、在数据源端创建访问账号,设置权限和日志配置项
2、simba平台配置数据源
3、在simba平台创建导入任务,选择导入的库和表,确定是否合并
4、发布导入任务
5、 DSExtracter 从数据库源中拉取完整快照并将其用作初始导入数据
6、 DSExtracter 实时解析数据库日志,增量解析新增数据到kafka
7、 DSLoader 按照设定的周期(通常为 10 分钟)将新添加的数据放入增量数据层(INC)
8、 DSMerger 定期(通常 30 分钟)将新数据和完整数据合并到 ODS 中
9、后续计算增量或全量消耗ODS层的数据
技术亮点
一、高效的并购计划
DataS 还保留增量日志数据和完整快照数据,以支持复杂的企业业务场景。同时,DataS 提供了高效的快照合并解决方案。下面是DataS合并和基于HBase的方案合并的性能对比测试。对于1T以上的数据表增量和全合并,DataS有12到24倍的性能提升。
与传统的使用HiveSQL或HBase的merge方式不同,DataS使用二次映射方式将最终的merge转换成可以在RDD或Map中完成的小文件merge,避免了不必要的merge文件被读取,如图:
DataS 合并逻辑如下:
1、DataS会将新数据划分到不同的hive分区中,可以根据业务进行自定义;
2、在一个分区中,DataS使用Bloom Filter将数据映射到不同的文件;
3、新增数据和单个存储文件的部分合并;
整个合并最终分为小文件合并,大大提高了合并效率。
两个。近乎实时的数据延迟
DataS 提供了两种合并方式:写时复制(CopyOnWrite)和读时合并(MergeOnRead)
Copy-on-write 是指每次将增量数据与文件合并时,将两边的数据复制生成一个新的全数据文件。该方法在合并时性能稍差,但在读取数据(统计查询)时性能更好,过程如下:
Combine while reading是指合并时只将增量数据写入日志文件,读取时合并重复数据(查询统计)。同时,它将定期进行全面合并。这种合并效率非常高,数据延迟可以达到秒级到分钟级,但查询时的性能稍差,如图:
两种使用方式和不同的业务场景:专注于读取性能或专注于合并性能。
Datas 支持丰富的场景应用
根据数据所需的时延和数据要求的完整性,计算场景大致可以分为三类:
其中:
·实时计算:对于很多要求数据时延在毫秒到10分钟范围内的场景,通常使用flink或spark等计算引擎。如:监控报警、实时功能等。
·增量计算:时延要求在10分钟到小时级别,数据需要增量处理。如企业大屏、活动效果分析、当天紫外线等统计数据的展示。
·全批处理:主要针对各种T+1报表统计,Simba目前使用的是Hive引擎。
目前市场上有成熟的实时计算和全批处理的解决方案,但对于增量计算的裂缝,它们并不是很好。无论增量计算采用流式实时处理还是全批处理,都存在资源浪费,效果不尽如人意的问题。 DataS可以支持增量采集、合并、计算,并且支持这样的场景,计算成本更低。此外,DataS可以很好地支持二级以上的实时计算和批处理任务。
Attached-DataSimba data采集 支持多数据源
DataSimba 的采集 平台支持丰富的数据源,包括: