博客 浅谈数据开发神器 —— 数栈离线开发平台(BatchWorks)

浅谈数据开发神器 —— 数栈离线开发平台(BatchWorks)

   小美   发表于 2023-02-01 10:11  514  0

随着数智化时代的到来,企业需要汇聚各业务板块数据,提供一个强大的中间层为高频多变的业务场景提供支撑。基于此类需求,“数据中台” 应运而生,将数据提炼为数据资产,转换成业务需要的数据「血液」。

数据中台的建设与运营,通常包含如下活动:数据汇聚、数据加工与提炼、对外提供数据服务这 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 分钟即可完成配置;
  • 断点续传:系统自动记录每次的同步点位,下一周期运行时,自动从上次的读取位置继续同步,既可以减轻源库的压力,又可以保障同步的数据无遗漏、无重复;
  • 整库同步:快速、批量配置大量同步任务,节省大量初始化精力。
  • 脏数据管理:在读取、写入阶段发生异常的数据,系统可将这部分数据保存下来,便于用户及时排查脏数据问题。

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

2、数据开发:

  • 丰富的任务类型:支持 SparkSQL、HiveSQL、Python、Shell 等 10 余种不同的任务类型,满足不同场景下的数据处理需求;
  • 丰富的系统参数:内置多个系统参数,可根据需要指定自定义系统参数,支持常量、变量,可指定丰富的时间格式和时间计算模式;
  • 优秀的开发体验:支持代码高亮、关键字 / 表名 / 字段名智能提示、语法检测、编辑器主题、快捷键等功能,为用户提供优秀的编码体验;
  • 本地文件导入:支持本地 csv、txt 文件导入至数据表,用于临时性数据分析;
  • 函数管理:支持 Hive、Spark 等计算引擎的函数查看、UDF 函数的注册。

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

3、调度引擎:

  • 基于自研分布式调度引擎,满足任务的周期性、依赖性调度,支持百万级别任务调度;
  • 系统可智能识别当前任务的代码与依赖信息,并自动推荐上游任务;
  • 根据用户的调度配置,智能识别超出有效期的任务,自动取消运行,节约计算资源。

4、运维中心:

  • 自动监控并统计每日跑批进度、异常情况等信息,汇总易出错任务,协助用户排查代码质量、平台运行情况等问题;
  • 实时监控实例运行情况,进行查看日志、重跑、终止、恢复调度等操作;
  • 通过指定时间范围,快速重刷历史数据,操作简单、便捷;
  • 可根据失败、超时等多种条件触发告警规则,通过短信、邮件等方式将异常信息发送给指定人员。

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

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 页面为用户提供服务,屏蔽底层复杂的分布式计算引擎,在线化开发平台,提高开发效率。


想了解或咨询更多有关袋鼠云大数据产品、行业解决方案、客户案例的朋友,浏览袋鼠云官网:https://www.dtstack.com/?src=bbs
同时,欢迎对大数据开源项目有兴趣的同学加入「袋鼠云开源框架钉钉技术群」,交流最新开源技术信息,群号码:30537511,项目地址:
https://github.com/DTStack

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

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