博客 数栈技术分享:如何使用数栈进行数据采集?

数栈技术分享:如何使用数栈进行数据采集?

   小美   发表于 2023-01-20 10:36  262  0

一、从哪里采集数据

我们谈大数据、用大数据、让数据产生价值的前提是,我们首先要有数据。

我们讲数据中台“存”、“通”、“用”,首先就是“存”,我们要将数据放到中台里,以前是放在数据仓库里,在“存”的基础上,我们会将不同来源不同格式的数据进行梳理、把一个个数据孤岛打通,数据资源形成数据资产,然后根据用户的具体场景,进行数据应用。

数据的产生不是凭空而来的,袋鼠云数栈提供离线数据同步采集和实时数据同步采集两种方式,帮助用户高效地将散落在各处的数据资源采集,存放在一起,用工具化的方式,进行“全域”数据采集,为构建数据中台奠定基础。

二、怎么采集数据

1、离线数据同步采集

可视化配置的数据同步任务如下图所示:

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user6/article/73c637f7d788dfac0a31d9856263d9e0..png

数栈的数据同步工具FlinkX,在不同存储系统中起到“桥梁”的作用,是数据中台的基础核心功能,支持多种不同的异构存储系统数据(MySQL,Server,Oracle等),插件化架构可随时支持更多的新数据源需求,底层基于Flink分布式架构,支持大容量、高并发同步,相比单点同步性能更好,稳定性更高。

该方案满足分钟(5分钟)、小时、天等多种级别的同步需求。

袋鼠云数栈数据同步界面如下图所示:

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user6/article/dae2a24ff3a9b2f4370ac5e52b978acb..png

数据同步模块FlinkX是在各个存储单元之间执行数据交换的管道。为了在数据中台进行大规模数据集的挖掘与计算,通常的做法是在任务执行前将数据传输至数据中台,并在任务执行结束后将计算结果传输至外部存储单元(例如MySQL等应用数据库)。

数据集成的作用如下图所示:

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user6/article/ef41a79ce0dcc56c65562c05b1dbdb34..png

数据同步模块的特性包括以下几方面:

1)丰富的数据源支持

数据同步模块可对MySQL、Oracle、SQLServer、PostgreSQL、DB2、HDFS(Textfile/Parquet/ORC)、Hive、HBase、FTP、ElasticSearch、MaxCompute、ElasticSearch、Redis、MongoDB、CarbonData等数据源,支持对这些数据源进行读取或写入数据。使用时仅需配置数据源的连接信息(例如填写Oracle数据库的JDBC URL、用户名、密码等信息),再配置对应的数据同步任务即可。

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user6/article/44ec228f41d85cca29aa0fbafdc70a06..png

2)分布式系统架构

数据同步模块在系统架构上采用先进的分布式系统架构,可实现多个节点并发读取、写入数据,可极大的提升数据同步的吞吐量,相比Sqoop、Kettle等开源数据同步方案,数据吞吐能力更高、配套功能更完善。

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user6/article/b7bb1665e08d0aa9a15a41558e941670..png

3)向导/自定义配置模式

向导模式:

特点是便捷、简单,可视化字段映射,快速完成同步任务配置。可通过向导模式完成同步任务的创建与配置,主要包括同步任务选择源库源表、目标库目标表、配置字段映射、配置同步速度等。

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user6/article/cbf4f470cff378be506bb4800f54d9c5..png

脚本模式:

特点是全能、高效,可深度调优,支持全部数据源。需通过编写JSON脚本的方式完成配置过程。

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user6/article/cdf9415828725aac087323cef6e3a6b5..png

 

4)调度与依赖的配置

在实际的数据生产过程中,数据同步任务通常是数据处理链路的第一个任务和最后一个任务,分别承担“从业务系统抽取数据”和“将结果数据写出”的职责。【离线计算-开发套件】支持对同步任务配置依赖关系,约束同步任务与其他任务的执行先后顺序。

数据同步任务通常是周期执行的,每天、每周、每小时或分钟级(5分钟)执行一次,【离线计算-开发套件】支持对同步任务配置循环周期,实现同步任务的定期执行,详细的调度与依赖配置功能请参考数据开发:构建数据分析逻辑一节。

5)全量/增量同步

从业务系统读取数据的过程中,为了最小化对业务系统的影响,通常需要进行数据的增量同步。在源数据库表中具备数据变更时间字段的情况下,【离线计算-开发套件】支持对关系型数据库进行增量数据同步,用户仅需输入相应的数据过滤语句即可实现。

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user6/article/e778e253be959bf97f1e99e7fa62c14e..png

6)整库同步

整库同步是帮助提升用户效率、降低用户使用成本的一种快捷工具,它可以快速把一个MySQL数据库内所有表一并上传到数据平台中,节省大量初始化精力。假设数据库有100张表,您原本可能需要配置100次数据同步任务,但有了整库上传便可以一次性完成(要求数据库的表设计具备较高的规范性)。

在整库同步配置中,用户可批量选择待同步的表,并配置全量/增量,同步批次等信息。同时支持自定义表名、字段类型等配置,在方便快捷的基础上实现高度灵活性。

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user6/article/fb14be23d92d534ac55529d71b6f2651..png

7)分库分表(MySQL)、FTP多路径同步

数据同步模块可以支持关系型数据库分库分表模式下的数据同步,用户仅需在页面上选择多张表、多个数据库即可(要求每张表的结构相同)。

除了关系型数据库分库分表模式之外,还支持一个任务从多个FTP路径,读取多个文件,减少同步任务配置的重复性工作。

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user6/article/eda9097ef0fa3a28115a77bc006ec16e..png

8)同步速度的控制

据进行初始化的同步时,往往有大量历史数据需要同步至中台,需要提高数据读取的速度,当业务数据库的运行压力较大时,为了减轻数据库的压力,需要降低数据读写的速度。

数据同步模块支持同步速度控制,通过设置同步速率上限来调整,此参数需根据硬件配置和数据量来调整,用户根据业务需求选择设定的值。

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user6/article/0acc6cba265db1c2701260b5f572b47e..png

2、实时数据同步采集

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user6/article/d745baf771810027276f7db9a57ebb68..png

上图是实时数据流同步架构,说明如下:

1)Oracle和SQLServer数据源:需要用户方自购并部署OGG实时采集工具,实时采集Oracle redo log数据,再通过数栈DTinsightStream产品可视化配置将数据打到Kafka,数据就被实时归档或实时消费。

2)MySQL数据源:数栈DTinsightStream产品已经集成Canal数据采集工具,实时采集MySQL binlog数据,直接通过可视化配置将数据打到Kafka,数据就被实时归档或实时消费。

3)日志类数据源:数栈DTinsightStream产品针对日志类实时采集模块底层基于jLogstash组件实现(相比开源的jLogstash进行了分布式改造),可基于YARN进行分布式资源调度,直接通过可视化配置将数据打到Kafka,数据就被实时归档或实时消费。

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user6/article/28b83a5499d915421f640267e12b51cb..png

实时采集模块在WEB端的配置非常便捷且灵活,类似离线数据同步任务,可支持向导和脚本2种配置模式。以MySQL实时采集为例,用户仅需在页面配置数据源、表和部分过滤条件即可。

除了配置功能外,实时采集任务在运行时,系统也可对输入、输出的数据量进行实时监控并告警。


想了解或咨询更多有关袋鼠云大数据产品、行业解决方案、客户案例的朋友,浏览袋鼠云官网:https://www.dtstack.com/?src=bbs

同时,欢迎对大数据开源项目有兴趣的同学加入「袋鼠云开源框架钉钉技术群」,交流最新开源技术信息,群号码:30537511,项目地址:https://github.com/DTStack


0条评论
社区公告
  • 大数据领域最专业的产品&技术交流社区,专注于探讨与分享大数据领域有趣又火热的信息,专业又专注的数据人园地

最新活动更多
微信扫码获取数字化转型资料
钉钉扫码加入技术交流群