数栈是云原生—站式数据中台 PaaS,咱们在 github 和 gitee 上有一个乏味的开源我的项目:FlinkX,FlinkX 是一个基于 Flink 的批流对立的数据同步工具,既能够采集动态的数据,也能够采集实时变动的数据,是全域、异构、批流一体的数据同步引擎。大家喜爱的话请给咱们点个 star!star!star!
github 开源我的项目:https://github.com/DTStack/fl…
gitee 开源我的项目:https://gitee.com/dtstack_dev…
随着数智化时代的到来,企业须要汇聚各业务板块数据,提供一个弱小的中间层为高频多变的业务场景提供撑持。基于此类需要,“数据中台”应运而生,将数据提炼为数据资产,转换成业务须要的数据「血液」。
数据中台的建设与经营,通常蕴含如下流动:数据汇聚、数据加工与提炼、对外提供数据服务这 3 局部。其中的数据汇聚、数据加工与提炼能力,是由作为数据中台建设基座的离线开发平台提供的。
一、利用场景
例如,某服装企业须要统计最近 3 个月在全国不同城市中,不同样式的服装的销量状况 / 库存状况,用于领导下一步的销售流动和样式设计,这些数据须要每天更新,这就是典型的离线计算场景。为了实现上述流程,数据部门须要进行如下解决动作:
- 将最近 3 个月的销售数据、库存数据从业务零碎中抽取进去,要反对每天的增量抽取;
- 联合统计需要,编写 SQL 进行统计;
- 数据每天更新,须要以天为周期,触发数据抽取、SQL 统计的脚本,每天进行数据更新;
- 监控工作的运行状况,当产生异常情况时,须要进行排错、重刷历史数据等操作;
为解决以上场景的问题,须要在数据采集、存储、加工等方面进行各种选型比照,通常可归类为以下 2 类:
1、基于 MySQL、Greenplum 等关系型或 MPP 类数据库:
- 数据采集:可采纳开源的 Kettle、DataX 等组件,配合 shell 脚本实现数据抽取;
- 数据开发:本地文本编辑器、Navicat 等工具,配合 Shell 脚本实现数据开发 + 周期调度;
- 数据运维:人工察看后果数据产出,没有成熟的运维工具,通常都是业务方发现数据问题反馈给技术人员,响应滞后;
- 集群运维:集群监控、告警、扩缩容均手动进行。
2、基于 Hadoop 体系的技术计划
- Hadoop 体系通常会采纳 HDFS+YARN 作为基座,再配合 Hive、Spark、Impala 等引擎作为扩大;
- 数据采集、开发、调度,均有多种可选,例如 Sqoop、Hue、Oozie/Azkaban/AirFlow 等,再配合 Shell 进行各类组件的买通与配置管理
- 集群运维:可采纳开源的 Cloudera Manager 等工具。
3、以上 2 类场景存在以下几种问题:
- 采集、开发、调度、运维的工具都比拟原始,由各种开源组件拼凑组合造成,没有对立高效的治理形式,实用于小规模团队,无奈满足大规模、团队合作化的数据中台建设;
- 在数据采集方面,DataX、Kettle 等组件个别都是单点应用,无奈满足大吞吐量、高并发的数据同步场景;
- 在数据开发、任务调度方面,通常只能采纳文本编辑器 +Navicat+Shell 的原始计划,数据开发体验较差,在零碎参数、调度买通、函数治理、元数据查看等方面存在各种体验问题;
- 调度引擎与工作运维方面,开源的 Azkaban、AirFlow 尽管反对根本的调度逻辑,但与开发环节彼此割裂,没有实现无缝买通。在工作运维方面,只有根本的状态监控,在重刷历史数据、工作异样解决、告警配置等方面均有所欠缺;
- 在数据管理方面,开源的 Hue 只有根本的元数据查看,在数据权限、生命周期、元数据扩大等方面均难以满足。
二、BatchWorks 次要性能
BatchWorks 提供的各项性能,残缺笼罩上述场景中的各种需要,蕴含的功能模块如下:
1、数据同步:
- 分布式系统架构:基于自研分布式同步引擎(FlinkX),用于在多种异构数据源之间进行数据同步,具备高吞吐量、高稳定性的特点;
- 丰盛的数据源反对:反对关系型数据库、半结构化存储、大数据存储、剖析性数据库等 20 余种不同的数据源;
- 可视化配置:次要包含同步工作抉择源表、指标表、配置字段映射、配置同步速度等步骤,2 分钟即可实现配置;
- 断点续传:零碎自动记录每次的同步点位,下一周期运行时,主动从上次的读取地位持续同步,既能够加重源库的压力,又能够保障同步的数据无脱漏、无反复;
- 整库同步:疾速、批量配置大量同步工作,节俭大量初始化精力。
- 脏数据管理:在读取、写入阶段产生异样的数据,零碎可将这部分数据保留下来,便于用户及时排查脏数据问题。
2、数据开发:
- 丰盛的工作类型:反对 SparkSQL、HiveSQL、Python、Shell 等 10 余种不同的工作类型,满足不同场景下的数据处理需要;
- 丰盛的零碎参数:内置多个零碎参数,可依据须要指定自定义零碎参数,反对常量、变量,可指定丰盛的工夫格局和工夫计算模式;
- 优良的开发体验:反对代码高亮、关键字 / 表名 / 字段名智能提醒、语法检测、编辑器主题、快捷键等性能,为用户提供优良的编码体验;
- 本地文件导入:反对本地 csv、txt 文件导入至数据表,用于临时性数据分析;
- 函数治理:反对 Hive、Spark 等计算引擎的函数查看、UDF 函数的注册。
3、调度引擎:
- 基于自研散布式调度引擎,满足工作的周期性、依赖性调度,反对百万级别任务调度;
- 零碎可智能辨认当前任务的代码与依赖信息,并主动举荐上游工作;
- 依据用户的调度配置,智能辨认超出有效期的工作,主动勾销运行,节约计算资源。
4、运维核心:
- 主动监控并统计每日跑批进度、异常情况等信息,汇总易出错工作,帮助用户排查代码品质、平台运行状况等问题;
- 实时监控实例运行状况,进行查看日志、重跑、终止、复原调度等操作;
- 通过指定工夫范畴,疾速重刷历史数据,操作简略、便捷;
- 可依据失败、超时等多种条件触发告警规定,通过短信、邮件等形式将异样信息发送给指定人员。
5、平安保障:
BatchWorks 采纳多种形式保障数据安全和性能操作的平安,次要涵盖集群平安、数据安全和性能平安 3 局部:
- 集群平安:可对接开源 Kerberos 组件,保障平台平安拜访。
- 数据安全:反对用户跨我的项目权限申请,可指定须要的具体操作内容和字段信息,经管理员审批通过后可拜访。
- 性能平安:内置管理员等多种角色,不同的角色有不同的操作权限,保障性能平安。
三、产品劣势
1、全生命周期笼罩:
笼罩数据采集、数据处理、调度依赖、工作运维等场景,充沛满足离线数据开发过程中的各项需要,相比传统的开源工具,能够节俭 80% 数据开发工夫。
2、多引擎、异构对接:
- 兼容开源、Cloudera、Hortonworks、星环、华为 Fusion Insight 等各种 Hadoop 体系或 MPP 类数据库作为计算引擎;
- 一套离线开发平台反对同时对接多套云环境的异构引擎,例如:一套 BatchWorks 同时对接阿里云 EMR、AWS EMR、本地机房 TiDB 引擎;
3、自主知识产权:2 大外围模块 100% 自研,把握全副知识产权
- 批流一体数据同步引擎 FlinkX:基于 Flink 框架自主研发的分布式、插件化、批流一体数据同步引擎 FlinkX,具备全量 / 增量 / 实时数据抽取全栈能力。该引擎曾经在 Github 上开源
- 高性能散布式调度引擎 DAGScheduleX:自主研发的分布式 DAG 调度引擎,反对百万级任务并发,具备周期性、依赖性、优先级等多种调度配置
4、在线化、可视化操作:
产品通过 Web 页面为用户提供服务,屏蔽底层简单的分布式计算引擎,在线化开发平台,进步开发效率。