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