数栈是云原生—站式数据中台 PaaS,咱们在 github 和 gitee 上有一个乏味的开源我的项目:FlinkX,FlinkX 是一个基于 Flink 的批流对立的数据同步工具,既能够采集动态的数据,也能够采集实时变动的数据,是全域、异构、批流一体的数据同步引擎。大家喜爱的话请给咱们点个 star!star!star!
github 开源我的项目:https://github.com/DTStack/fl…
gitee 开源我的项目:https://gitee.com/dtstack_dev…
一、从哪里采集数据
咱们谈大数据、用大数据、让数据产生价值的前提是,咱们首先要有数据。
咱们讲数据中台“存”、“通”、“用”,首先就是“存”,咱们要将数据放到中台里,以前是放在数据仓库里,在“存”的根底上,咱们会将不同起源不同格局的数据进行梳理、把一个个数据孤岛买通,数据资源造成数据资产,而后依据用户的具体场景,进行数据利用。
数据的产生不是凭空而来的,袋鼠云数栈提供离线数据同步采集和实时数据同步采集两种形式,帮忙用户高效地将散落在各处的数据资源采集,寄存在一起,用工具化的形式,进行“全域”数据采集,为构建数据中台奠定根底。
二、怎么采集数据
1、离线数据同步采集
可视化配置的数据同步工作如下图所示:
数栈的数据同步工具 FlinkX,在不同存储系统中起到“桥梁”的作用,是数据中台的根底外围性能,反对多种不同的异构存储系统数据(MySQL,Server,Oracle 等),插件化架构可随时反对更多的新数据源需要,底层基于 Flink 分布式架构,反对大容量、高并发同步,相比单点同步性能更好,稳定性更高。
该计划满足分钟(5 分钟)、小时、天等多种级别的同步需要。
袋鼠云数栈数据同步界面如下图所示:
数据同步模块 FlinkX 是在各个存储单元之间执行数据交换的管道。为了在数据中台进行大规模数据集的开掘与计算,通常的做法是在工作执行前将数据传输至数据中台,并在工作执行完结后将计算结果传输至内部存储单元(例如 MySQL 等利用数据库)。
数据集成的作用如下图所示:
数据同步模块的个性包含以下几方面:
1)丰盛的数据源反对
数据同步模块可对 MySQL、Oracle、SQLServer、PostgreSQL、DB2、HDFS(Textfile/Parquet/ORC)、Hive、HBase、FTP、ElasticSearch、MaxCompute、ElasticSearch、Redis、MongoDB、CarbonData 等数据源,反对对这些数据源进行读取或写入数据。应用时仅需配置数据源的连贯信息(例如填写 Oracle 数据库的 JDBC URL、用户名、明码等信息),再配置对应的数据同步工作即可。
2)分布式系统架构
数据同步模块在零碎架构上采纳先进的分布式系统架构,可实现多个节点并发读取、写入数据,可极大的晋升数据同步的吞吐量,相比 Sqoop、Kettle 等开源数据同步计划,数据吞吐能力更高、配套性能更欠缺。
3)向导 / 自定义配置模式
向导模式:
特点是便捷、简略,可视化字段映射,疾速实现同步工作配置。可通过向导模式实现同步工作的创立与配置,次要包含同步工作抉择源库源表、指标库指标表、配置字段映射、配置同步速度等。
脚本模式:
特点是全能、高效,可深度调优,反对全副数据源。需通过编写 JSON 脚本的形式实现配置过程。
4)调度与依赖的配置
在理论的数据生产过程中,数据同步工作通常是数据处理链路的第一个工作和最初一个工作,别离承当“从业务零碎抽取数据”和“将后果数据写出”的职责。【离线计算 - 开发套件】反对对同步工作配置依赖关系,束缚同步工作与其余工作的执行先后顺序。
数据同步工作通常是周期执行的,每天、每周、每小时或分钟级(5 分钟)执行一次,【离线计算 - 开发套件】反对对同步工作配置循环周期,实现同步工作的定期执行,具体的调度与依赖配置性能请参考数据开发:构建数据分析逻辑一节。
5)全量 / 增量同步
从业务零碎读取数据的过程中,为了最小化对业务零碎的影响,通常须要进行数据的增量同步。在源数据库表中具备数据变更工夫字段的状况下,【离线计算 - 开发套件】反对对关系型数据库进行增量数据同步,用户仅需输出相应的数据过滤语句即可实现。
6)整库同步
整库同步是帮忙晋升用户效率、升高用户应用老本的一种快捷工具,它能够疾速把一个 MySQL 数据库内所有表一并上传到数据平台中,节俭大量初始化精力。假如数据库有 100 张表,您本来可能须要配置 100 次数据同步工作,但有了整库上传便能够一次性实现(要求数据库的表设计具备较高的规范性)。
在整库同步配置中,用户可批量抉择待同步的表,并配置全量 / 增量,同步批次等信息。同时反对自定义表名、字段类型等配置,在方便快捷的根底上实现高度灵活性。
7)分库分表(MySQL)、FTP 多路径同步
数据同步模块能够反对关系型数据库分库分表模式下的数据同步,用户仅需在页面上抉择多张表、多个数据库即可(要求每张表的构造雷同)。
除了关系型数据库分库分表模式之外,还反对一个工作从多个 FTP 门路,读取多个文件,缩小同步工作配置的重复性工作。
8)同步速度的管制
据进行初始化的同步时,往往有大量历史数据须要同步至中台,须要进步数据读取的速度,当业务数据库的运行压力较大时,为了加重数据库的压力,须要升高数据读写的速度。
数据同步模块反对同步速度管制,通过设置同步速率下限来调整,此参数需依据硬件配置和数据量来调整,用户依据业务需要抉择设定的值。
2、实时数据同步采集
上图是实时数据流同步架构,阐明如下:
1)Oracle 和 SQLServer 数据源:须要用户方自购并部署 OGG 实时采集工具,实时采集 Oracle redo log 数据,再通过数栈 DTinsightStream 产品可视化配置将数据打到 Kafka,数据就被实时归档或实时生产。
2)MySQL 数据源:数栈 DTinsightStream 产品曾经集成 Canal 数据采集工具,实时采集 MySQL binlog 数据,间接通过可视化配置将数据打到 Kafka,数据就被实时归档或实时生产。
3)日志类数据源:数栈 DTinsightStream 产品针对日志类实时采集模块底层基于 jLogstash 组件实现(相比开源的 jLogstash 进行了分布式革新),可基于 YARN 进行分布式资源调度,间接通过可视化配置将数据打到 Kafka,数据就被实时归档或实时生产。
实时采集模块在 WEB 端的配置十分便捷且灵便,相似离线数据同步工作,可反对向导和脚本 2 种配置模式。以 MySQL 实时采集为例,用户仅需在页面配置数据源、表和局部过滤条件即可。
除了配置性能外,实时采集工作在运行时,零碎也可对输出、输入的数据量进行实时监控并告警。