# 产品介绍
普元数据开发平台是普元倾力打造的一款一站式数据开发、运维平台,提供了完善的数据开发及处理功能,覆盖数据仓库构建全链路。从异构数据源数据导入,到通过丰富的大数据组件支持对数据开发、作业编排、任务运维等全过程的支持,对数仓各层次各数据域进行规范化生产,确保数据规范性、完整性、及时性等,将数据仓库生产的规范数据应用于企业各类型的数据业务。
普元数据开发平台主要提供以下能力:
- 支持以项目为组织对数据开发工作进行全生命周期管理;
- 支持团队协作,在保障数据安全和资源隔离的情况下,支持不同的数据团队/角色通过多租户的用户/项目模型及灵活的安全策略进行管控;
- 支持数据管理、数据开发、数据应用、数据运营多个角色,给予不同视角一体化的产品体验;
- 支持国内外多种主流关系型数据库及非关系型数据库类型的存储引擎及数据源;
- 支持在线数据集成、数据开发、作业编排、任务运维等能力;
- 支持可视化数据开发,拖拉拽方式进行作业流设计;
- 支持资源的多版本管理及发布;
- 支持资源的增量式发布;
- 支持在线代码编写、提示并自动补全;
- 支持在线代码调试和日志查看。
# 产品功能结构图
# 公共资源管理
- 项目管理:项目是管理作业、成员,分配角色和权限的基本单元。所有开发工作都将在具体的项目里完成。项目管理员可以加入成员至项目,并赋予项目管理员、开发、运维、部署、安全管理员等角色,以实现多角色协同工作。各项目拥有完全独立的成员角色设定以及调度引擎、数据源、文件资源。
- 租户管理:支持多租户配置,实现对资源的共享和隔离。租户下可以实现人员、数据源等资源的授权管理。
- 用户权限:可以给项目添加用户及并授予项目管理员、开发、运维、访客等多种预设角色,以实现多角色协同工作,只有拥有权限的用户才能进行相关的操作。
- 数据层规划:默认内置的数据层为数据引用层(ODS)、明细数据层(DWD)、汇总数据层(DWS)、应用数据层(ADS)。用户可按需对配置在平台中的数据层进行增、删、改、查、上移、下移。
- 存算引擎管理:对存算引擎进行管理、配置。DWS 支持的存算引擎类型有四种:
- 关系数据库: MySQL 5.7.25/8.0.28、SQL Server 2012/2016、Oracle 12c/19c、IBM DB2 9.7、PostgreSQL 9.6.2/10.23、南大通用 GBase8s 8.3.81.51、达梦 DM8、人大金仓 KingbaseES V8R6;
- 大数据:Hive 2.1.1-cdh6.3.2、HBase 2.1.0-cdh6.3.2、Clickhouse 22.1.3.7、HDFS Hadoop 3.0.0-cdh6.3.2、StarRocks 3.0.3;
- NoSQL:Elasticsearch 8.1.2、MongoDB 4.2.5;
- 消息队列:Kafka 2.13-2.8.2。
- 数据源管理:对各个数据层的数据源进行管理、配置。DWS支持 16 种数据源,包括:
- 关系数据库: MySQL 5.7.25/8.0.28、SQL Server 2012/2016、Oracle 12c/19c、IBM DB2 9.7、PostgreSQL 9.6.2/10.23、南大通用 GBase8s 8.3.81.51、达梦 DM8、人大金仓 KingbaseES V8R6;
- 大数据:Hive 2.1.1-cdh6.3.2、HBase 2.1.0-cdh6.3.2、Clickhouse 22.1.3.7、HDFS Hadoop 3.0.0-cdh6.3.2、StarRocks 3.0.3;
- NoSQL:Elasticsearch 8.1.2、MongoDB 4.2.5;
- 消息队列:Kafka 2.13-2.8.2。
- 多环境管理:定义存算引擎、数据源、调度引擎、项目的环境模式,即生产环境和开发环境。
- 调度资源管理:作业流执行时的调度系统,可以及时监控任务的执行状态,支持重试、指定节点恢复失败、暂停、恢复、终止任务等操作。
# 数据开发
- 批作业开发:基于DAG技术,可视化设计、开发复杂数据集成业务,全链路处理批量数据。支持多种集成作业的开发,包括:转换作业、编排作业、通用模板作业。提供丰富的输入、输出、转换组件,可以方便的扩展组件。
- 输入组件:关系型数据库输入、Hive 输入、HBase 输入、文本文件输入、CSV 文件输入、Excel 输入、XML 输入、JSON 输入、生成记录、生成随机数、获取系统信息、获取表名、获取文件名。
- 输出组件:关系型数据库输出、Hive输出、Hbase输出、文本文件输出、Excel输出、XML输出、JSON输出、删除、选择/增删改、插入/更新、更新。
- 转换组件:字段选择、增加常量、Switch/Case、字符串替换、增加序列、字符串截取、去除重复记录、排序记录、排序合并、值映射、计算器、拆分字段、列拆分为多行、运行SSH命令、数据脱敏、设置字段值、列转行、行扁平化。
- 脚本组件:JAVA、JavaScript、执行SQL脚本。
- 通用组件:写日志、空操作、设置变量、获取变量、数据检验、数据过滤、阻塞到最后一行、阻塞数据直到步骤都完成。
- 批量加载组件:MySQL批量加载、Oracle批量加载、PostgreSQL批量加载。
- 其他组件:Rest Client、合并记录、数据连接、从结果获取记录、从结果获取文件、复制记录到结果、复制文件到结果。
- 实时作业开发:基于实时计算引擎,可视化设计、开发实时作业,全链路处理流数据。支持多种 Connector、Sink、Transform。
- Connector:ClickHouse、Elasticsearch、Kafka、StarRocks、关系型数据库。
- Sink:ClickHouse、Elasticsearch、Kafka、StarRocks、关系型数据库、HBase、Console、Http、Hive。
- Transform:SQL、Filter、Split、Copy、Replace、FieldMapper、FilterRowKind。
- 程序开发:支持多种程序,包括:SQL 程序、Shell 程序、Spark 程序、Flink 程序、DI 程序、MapReduce 程序。
- 作业流开发:支持通过拖拽任务节点并建立任务节点的关联所形成的可视化DAG。
- 运行策略配置:支持配置定时策略、定时机制、失败策略、任务优先级、Worker 分组、命名参数、本地参数、超时告警。
- 在线运行/调试:支持在线试运行调试,从源端运行至任意算子节点且输出实时计算结果日志。借助调试,用户可以便捷核查调试结果,细粒度排查各算子结果集并精准定位算子异常。
# 运维管理
- 项目投产:将开发项目中的作业流和任务发布到生产项目中。
- 作业流管理:当用户完成作业流开发并提交调度后,即可对作业流定义进行管理。
- 作业流实例:作业流实例是作业流定义的实例化,可以通过手动启动或定时调度生成,作业流定义每运行一次,产生一个作业流实例。
- 任务管理:当用户完成作业任务开发并提交调度后,即可对任务定义进行管理运维操作。
- 任务实例:任务实例是作业流定义中任务节点的实例化,标识具体的任务执行状态。
- 告警配置:用户可以配置告警策略,有三个选项,成功发、失败发,以及成功和失败都发。在执行完工作流或任务时,如果触发告警,调用告警实例发送方法会进行逻辑判断,将告警实例与任务状态进行匹配,匹配则执行该告警实例发送逻辑,不匹配则过滤。
- 告警记录:可以查看作业流或任务执行过程中产生的告警信息。
- 任务监控:可以对作业流实例执行运行、暂停、停止、重跑、删除等操作,其他还包括查看工作流详情、任务运行历史、任务间的上下游关系、任务执行实例等功能。
- 作业调度:支持基于 cron 表达式的定时调度和手动调度。命令类型支持:启动作业流、从当前节点开始执行、恢复被容错的工作流、恢复暂停作业流、从失败节点开始执行、补数、定时、重跑、暂停、停止、恢复等待线程。
- 运维中心:以图形化、量化数据方式展示生产环境调度引擎运行的作业流及任务,主要包括:资源数量统计、任务分布统计、作业流实例类型统计、任务实例状态占比、作业流实时动态。
# 概念/名词
DAG:全称 Directed Acyclic Graph,简称 DAG。任务以有向无环图的形式组装起来,从开始节点进行拓扑遍历,直到无后继节点为止。
作业流定义:通过拖拽任务节点并建立任务节点的关联所形成的可视化DAG。
作业流实例:作业流实例是作业流定义的实例化,可以通过手动启动或定时调度生成,作业流定义每运行一次,产生一个作业流实例。
任务实例:任务实例是作业流定义中任务节点的实例化,标识具体的任务执行状态。
任务类型:目前支持有转换、编排、实时作业、通用模板作业、子作业流、SHELL程序、SQL程序、SPARK程序、Flink程序、MapReduce程序、DI程序、DEPENDENT,SWITCH、CONDITIONS。
⚠️ 提示:子作业流是一个单独的作业流定义,可以单独启动执行。
调度方式:系统支持基于 cron 表达式的定时调度和手动调度。命令类型支持:启动作业流、从当前节点开始执行、恢复被容错的作业流、恢复暂停流程、从失败节点开始执行、补数、定时、重跑、暂停、停止、恢复等待线程。 其中:恢复被容错的作业流和恢复等待线程两种命令类型是由调度内部控制使用,外部无法调用。
定时调度:系统采用 quartz 分布式调度器,并同时支持 cron 表达式可视化的生成。
优先级:支持流程实例和任务实例的优先级,如果流程实例和任务实例的优先级不设置,则默认是先进先出。
邮件告警:支持作业流实例运行结果邮件告警及容错告警通知。
失败策略:对于并行运行的任务,如果有任务失败,提供两种失败策略处理方式,继续是指不管并行运行任务的状态,直到流程失败结束。结束是指一旦发现失败任务,则同时 Kill 掉正在运行的并行任务,流程失败结束。
全局参数:针对整个作业流的所有任务节点都有效的参数,在作业流定义页面配置。
本地参数:在批量作业和通用模板作业定义页面配置的参数,默认作用域仅限该集成作业,如果配置了参数传递则可将该参数作用到下游集成作业中。
命名参数:在批量作业和通用模板作业定义页面配置的参数,这里的参数只是定义作用,声明 key 和 default value。实际使用过程需要通过全局参数进行传参。