做徽标哪个网站素材多,微博推广效果怎么样,建筑工地正规免费找活平台,建设厅网站技术负责人要求 【数据中台建设系列之二】数据中台-数据采集 上篇文章介绍了数据中台的元数据管理#xff0c;相信大家对元数据模块的设计和开发有了一定的了解#xff0c;本编文章将介绍数据中台另一个重要的模块—数据采集。 一、什么是数据采集 
数据采集简单来说就是从各种数据源中抓… 【数据中台建设系列之二】数据中台-数据采集 上篇文章介绍了数据中台的元数据管理相信大家对元数据模块的设计和开发有了一定的了解本编文章将介绍数据中台另一个重要的模块—数据采集。 一、什么是数据采集 
数据采集简单来说就是从各种数据源中抓取、捕获和传输数据的一个过程。数据采集的质量和效率直接影响到数据的可用性和及时性进而影响到组织的决策制定和业务运营因此数据采集是数据中台建设的关键一环也是数据中台建设不可或缺的一部分。 
二、数据采集的基本架构设计 
在讨论数据采集模块的架构设计时我们需要清楚的了解公司的具体业务场景有哪些数据来源有哪些对数据的时效性要求有哪些。基于此构建出来的数据采集架构才能符合每个公司降本增效的目标毕竟数据采集是数据中台建设中资源开销很大的一块。因此下图数据采集架构设计是基于本公司的实际生产场景来给大家展现的供大家参考。  整体数据采集架构有点类Lambda架构没有把离线和实时同步放在一起而是单独来处理的。数据主要分为日志数据埋点数据业务数据库数据等我们的数仓采用的是Apache Doris构建的实时数仓。 
针对日志数据采用Flume的方式将数据Sink到Kafka针对埋点和一些其他业务数据是直接让业务将数据写入到Kafka中针对业务数据库增量数据采用的是Canal和FlinkCDC将数据写入到Kafka中对于同步离线数据库数据采用的利用DolphineSchedule里面的Datax来直接抽取然后写入到Doris中所有实时数据写入到Kafka以后通过Flink-ETL来处理数据最后再采用Doris的StreamLoad将数据写入到Doris中 
看到这问题很多的小明可能会有疑问 
为什么用把FlinkCDC采集到的数据写入Kafka中 
其实这样做的目的就是通过Kafka做一层缓冲Flink消费Kafka中的数据利用滚动窗口定期攒批通过StreamLoad将数据写入Doris中。了解Doris的同学可能会知道这是因为Doris数据存储格式类似于LSM Tree结构如果数据写入过于频繁可能会引起文件频繁合并导致机器CPU消耗过高而通过攒批的方式可以减少数据导入次数增大导入条数对Doris的稳定性有很大的提升。 
看到这相信你对这个技术架构已经有了了解了那整体的功能改怎么设计呢请继续往下看。 
三、基本设计流程 
我们既然要设计数据采集模块那终极目标肯定就是实现零代码入仓。下面就是一个零代码入仓功能设计方案  首先需要创建数据源这个数据源在元数据管理模块创建创建完成后需要手动同步元数据将元数据中的库表和字段信息全部同步到数据中台侧  新建接入任务时首先选择数据源数据库和数据表选择完整之后再次选择目标数据源目标数据库和目标数据表  当把源和目标都选择以后点击表字段映射字段会通过字段名相等的关系进行映射如果源字段名和目标表字段名一致且目标字段的字段长度大于源字段长度时则会映射成功如果源字段名和目标字段名不一致则需要手动指定映射关系。如下图所示一键映射后只有dish_name自动映射成功其他字段由于字段名不一致无法成功映射   字段映射完成以后需要补充一点基本信息比如子任务的任务名注释信息子任务的的Flink的窗口大小窗口最大条数等同时可以启动动态清洗功能需要编辑动态清洗脚本如下图所示   子任务配置完成以后可以创建一个组任务将子任务添加到组任务下面同时配置组任务中Flink的jobmanager和taskmanager的内存大小。合并任务的目的也是为了提高资源利用率如下图所示   当组任务创建成功以后就可以提交任务了我们采用的是Flink的 Yarn application模式所有Flink相关的jar包和依赖都放在了HDFS上当提交任务时在页面的所有配置信息会生成一个JSON文件发送给Flink的jar包Flink在Yarn集群上启动一个任务开始实时同步任务  
当任务停止后重启时提供了根据指定时间启动和从上次停止位置启动两种方式 根据指定时间启动 
选择指定时间后你需要选择一个时间戳Flink任务将会按照你选定的时间点重新消费Kafka中的数据这主要是依赖于Flink Source 消费Kafka时可以指定时间戳的功能来实现的 
从上次停止位置启动 
该功能依赖于Flink的 savepoint实现。当你上次停止任务时通过yarncClient接口获取到Flink任务的一个savepoint地址下次再重新启动时将savepoint地址传给Flink任务Flink会自动从savepoint位置开始重新消费 
四、总结 
本篇文章主要介绍了数据采集功能的架构设计和功能设计其实在实际开发过程中远远比当前文档描述的要复杂的多但大致思路就是这样希望能够给大家提供一点灵感和思路。 
功能的架构设计和功能设计其实在实际开发过程中远远比当前文档描述的要复杂的多但大致思路就是这样希望能够给大家提供一点灵感和思路。 
最后有兴趣的朋友欢迎私信交流。