年底啦~2022 年即将走到尾声,不过袋鼠云对产品品质的坚持始终如一,这段时间我们对产品本身以及客户反馈的一些问题进行了持续的更新和优化,例如新增任务告警,进行了 Connector 相关功能优化,以及支持跨时间分区圈群等。
以下为袋鼠云产品功能更新报告第三期内容,更多探索,请继续查阅。
用户痛点:任务一直在等待提交或者等待运行,用户看不到原因,不知道该如何处理能让任务尽快跑起来;任务运行了很久都没有出结果,不知道是什么原因导致,不能有针对性地进行改善。
新增功能说明:对周期和补数据实例将按实例所涉及流程进行诊断,提示异常原因,给出建议方案。另外针对 SparkSQL 任务还支持根据参数展示给出提升运行性能的调参建议。
任务诊断功能的目的是帮助数据开发进行任务异常原因排查,以便快速采取应对策略解决问题,减少问题持续时间以及技术支持和产研的排查投入。
事件任务可接收外部 http 信号,被触发后才能运行,多用于数栈离线任务依赖外部调度系统的任务的场景。
条件分支接收上游依赖一个或多个任务的传参,当参数满足某一条件时执行条件分支任务下游的一个或多个分支,在一次运行中没有被命中的分支对应实例会被自动取消。
用户痛点:离线的数据权限管理仅支持 web 层的管理方式,表的权限申请审批通过数据地图完成。
新增功能说明:数栈层面的数据权限管理可选择统一收拢至数据安全模块,当 hadoop 为开源版本 3,ranger 版本为 2.2 时,可通过在控制台配置 Ranger 和 LDAP 组件,通过 LDAP 用户认证由数据安全模块实现数据权限管理,权限管理更灵活、粒度更细。
Spark SQL 临时查询展示任务执行进度并实时打印日志。
支持在项目层设置是否在周期和手动任务 / 临时查询中允许 ddl 操作。
・支持 HANA SQL 任务类型:控制台配置了 HANA SQL 引擎后离线可创建 HANA SQL 任务
・支持 Spark on Kubernetes:当控制台配置的 hadoop 下的资源调度组件为 Kubernetes 时,Spark 类的任务可正常运行
・支持文件拷贝任务:支持 hive<->ftp 之间的文件拷贝,仅做拷贝文件,不做数据解析,相对于通过 FlinkX 的数据同步可快速完成文件的迁移,迁移完成后可通过 load data 的方式加载到表里
用户痛点:数据同步任务创建完成运行一段时间后,源表或目标表表结构有变更(例如有字段增减),需要对字段映射进行重新配置。
产品体验优化说明:点击刷新后平台将自动获取最新的表结构,已建立的字段映射将保留,新字段需要重新映射。
补数据的一些场景中需要对自定义参数值进行临时改写,此操作只针对本次生成的补数据实例生效。
选择用户组后,用户组添加或删除用户,对应告警规则接收人也将同步添加或删除用户。
Python、Shell 任务可引用其他任务进行代码计算,也支持选择依赖资源一起提交运行。
全局参数分为如下类型:
用户痛点:控制台配置的自定义调度周期仅支持配置到时分,若一批任务的调度周期日期一样仅时分不一样则需要配置多个自定义调度周期。
产品体验优化说明:控制台自定义调度周期可选择配置到天 / 时分,配置到天时,任务中可再选择具体时分。
用户痛点:admin、租户管理员、租户所有者,上述管理角色在项目创建初始化逻辑混乱,租户层的管理角色可被移出项目,导致管理层角色实际管辖范围有缺漏。
产品体验优化说明:上述管理角色在项目创建时默认存在于所有项目中但默认不展示在用户列表中,且不支持被移出项目。
体验优化说明
重跑分为仅重跑当前实例和重跑当前实例并恢复调度,后者会带起下游实例继续运行。
置成功分为仅把当前实例置为成功状态和置成功当前实例并恢复调度,后者是会带下下游实例继续运行。
RESTful 数据读取时可能一次请求得到的数据不完整,需要分多次读取,因此离线支持配置多次请求参数,可分批进行数据读取。
数据读取时返回格式支持 JSON、CSV 和 XML 三种,且对 JSON 和 XML 支持指定数据主体,可从返回数据中用 JSONPath 的方式指定数据需要从哪个路径的 key 下读取。
FTP 中的文件若有特殊的解析要求,可自行开发解析代码,以资源的方式上传后在解析方式中选择使用。
字段映射中,可选择资源管理中的资源单个 / 批量对字段进行转换处理,例如可以对源表字段进行加密 / 字段内容转换等操作后写入目标表。
・导入导出式发布现可支持工作流任务
・对于发布包中任务所需要但目标项目下缺失的数据源进行了详细提示
・对于上游依赖缺失的任务进行完整提示,而非只发现最近一层缺失上游即终止检查
· 自定义运行参数支持配置映射值:当前项目绑定了一个目标项目后,对于自定义参数可配置其在本项目的值和发布至目标项目后的替换值
Spark2.4 及以上版本支持开启 CBO,开启后平台会按用户设置的元数据信息发送频率把当前项目 meta schema 的元数据信息同步给引擎,以提升 SparkSQL 的运行性能(20% 以上)。
例如原库下有 Oracle12 和 oracle333 两张表,在数据同步源表和目标表的选择表中输入 “oracle” 进行表搜索
【修改前】搜索结果为 oracle333
【修改后】搜索结果为 Oracle12 和 oracle333
・支持批量修改调度周期
任务 / 实例存在跨周期依赖的情况不能在依赖视图中直接体现,因此在任务 / 实例的属性信息中增加此提示,以方便排查问题。
按条件杀实例中可以根据任务条件进行批量选中任务。
Spark SQL 语法校验从平台下移到插件,且新增语法检查按钮。
任务在调度属性中新增实例生成方式的选项,除每天固定时间点(22 点)生成第二天的实例外还可支持立即生成当天的实例,例如一个任务的调度周期是小时,计划时间是每天每个整点运行,实例生成方式选择 “立即生成”,当用户在 19:55 的时候提交这个任务后,调度会立即生成当天 20、21、22、23 点的实例并运行。
・在同步时可读取文件名称进行同步:FTP 数据源在字段映射处支持增加文件名称字段,针对每行数据记录其所对应的文件名称并写到目标表的字段中
・对于同步成功的文件可进行处理:删除文件、重命名文件、将文件移动到指定路径
・数据同步时打印汇总信息:文件总数,文件内容,文件数据总行数,总耗时
新增手动任务的任务类型,用于手动调起执行任务的场景。
在数据同步任务中,针对 RDB 类数据源(oracle、MySQL、pg、sqlserver、tdsql、gp、db2、达梦 oracle&MySQL、kingbase、gaussdb、tidb、adb、hana、phoenix、solr)作为数据来源时支持通过自定义 SQL 跨表取数,且在字段映射中对 SQL 字段进行解析。
体验优化说明
・Spark 引擎支持 3.0 版本:Spark SQL/Spark/PySpark 任务支持用 3.0 版本的 Spark 引擎运行
・Hive 支持代理账号提交任务:在控制台 hiveserver 组件上配置自定义参数 hive.proxy.enable = true 后,hive 任务提交时将会由代理用当前用户身份进行提交
・任务 SQL 代码放开 load data 语句:hivesql sparksql impalasql inceptorsql 现可正常使用 load data 语法运行和提交任务 / 临时查询
・任务上下游参数传递优化:增加支持 shell on agent 任务的上下游参数传递;增加支持工作流内的 sparksql、hivesql、shell、python、shell on agent
・数据同步任务当 HDFS 分区不存在时,高级配置中可配置报错或是写入空数据:hdfs 分区不存在的时候不要报错,而是写入空数据,可配置 failedIfPathNotExist 参数,true 代表不存在时报错,false 代表写入空数据
・统计数据流量统计优化:弃用使用 objectSizeCalculator 统计对象大小的方法,在 ColumnRowData(flinkx 上下游数据传输使用的对象)中设置一个累加器记录对象大小
・数据同步任务向导 -> 脚本模式的转换优化:数据同步任务在选择来源和选择目标时不可从向导转成脚本,在字段映射和通道配置时可转换成脚本并且会提示先保存,转换成脚本后向导模式下的配置才会保留
・组件输出参数修改为非必填项:输出参数即数据产出表,优化前为必填内容,但在部分客户的场景中多个任务的数据可能会产出到同一张表的不同分区,因此输出参数从必填改为非必填
・语法校验优化:可校验的 SQL 语句覆盖全面,包括 DDL、DML 及一些特殊语法,例如 with as,cache table,语法校验时间缩短 30%
・DAGScheduleX 性能优化:离线运维中心可正常显示百万级实例日增时的显示,千万级实例的依赖拓扑图可正常生成
・新增支持 RocketMQ 数据源,作为 FlinkSQL 的 Source 端
・新增支持 RabbitMQ 数据源,作为 FlinkSQL 的 Source 端
・新增支持 StarRocks 数据源,作为 FlinkSQL 的 lookup&sink 端
・新增支持 Vertica 数据源,作为 FlinkSQL 的 sink 端
・Redis 结果表的向导模式配置,新增「数据类型」、「写入模式」两个配置项
・Oracle Logminer 的 QUERY_LOG_INTERVAL 参数提取,支持在高级配置中进行配置,该参数可以控制查询间隔时间,防止没有数据更新时频繁查询数据库造成不必要的压力
间隔轮询模式下的实时采集任务,支持用户自定义 SQL 对采集源表进行过滤、关联、计算等计算,然后再写入结果表。
创建 PyFlink 任务时,支持上传两种附加文件:
・第三方 Python 包:用于上传在 Python 环境中未打包或者只是该任务需要使用的 Python 依赖
· 附加依赖包:如果您的 PyFlink 作业中使用了 Java 类,例如作业中使用了 Connector 或者 Java 自定义函数时,可以通过这种方式来添加
对产品首页进行改造,面向开发和运维人员,增强了首页可用性。
・运维指标:全局统计该租户下的所有任务运行的指标(后续会支持更多指标,支持自定义看板)
・告警记录:进入产品就能查看当前收到的所有项目任务的告警信息,快速进入各个项目进行排查
・表热度:统计各个项目中,【数据开发 - 表管理】中定义并被任务使用的 Flink 表
当客户需要对任务运行日志进行深度分析、或者基于日志内容做些监控告警,可以在【任务开发 - 任务设置】中打开日志推送,在模版内容中配置日志推送的 Kafka 地址,用户可以自行消费推送到 kafka 的日志内容,进行二次开发。
Kafka SASL 的认证参数在 Flink1.10 和 Flink1.12 中是不一样的,目前只需要在数据源中心配置统一的参数信息,在任务执行时,系统根据执行的引擎版本在统一参数上自动拼接 1.10 和 1.12 不同的参数前缀。
・实时采集:源表(TBDS_KAFKA)
・FlinkSQL:源表(TBDS_KAFKA)、结果表(TBDS_KAFKA、TBDS_HBASE)、维表(TBDS_HBASE)
・删除脏数据列表中的字段列,目前技术上无法支持定位到问题字段
· 优化脏数据详情的展示内容,打印整行数据,更容易定位问题数据
· 质量关键日志审计,记录质量相关的关键操作,便于查询与追溯
・质量规则集导入,规则集中的规则批量统一管理、统一调度规则集是规则的集合,一个规则集可以代表一个业务领域的质量校验,从而提高效率、方便管理。后续做质量报告也会基于规则集进行统计
质量概览页改造,配合数栈所有子产品首页设计风格改造,增强了首页统一性及美观性。
用户痛点:不少客户的 Hive 至 Hbase 数据同步任务要运行 20 多个小时,通过修改同步任务和 Hbase 的参数可以提高同步的速率。
新增功能说明:支持在任务管理页面配置数据同步任务的参数,包括任务参数和 Hbase 参数,且支持用户添加自定义参数,新增该功能后,用户可以在产品界面上灵活修改参数信息。
支持生成群组画像、显著性分析、对比分析 word 报告,报告内容包括分析图以及分析数据。
用户痛点:每个角色的权限固定,无法满足不同客户对不同角色权限的需求,支持用户自由配置角色的权限才能满足复杂的权限场景。
新增功能说明:支持自由配置普通角色的系统权限。
用户痛点:目前选标签时会按照类目树、列表形式展示,标签展示的位置有限,不利于快速查找标签。
新增功能说明:标签根据类目平铺展示,尽可能多地展示标签 ,且支持搜索;展示热门、沉默标签和我收藏的标签。
本次对标签选择空间做了交互升级,可提高业务人员选择标签的效率。
用户痛点:在标签圈群业务场景中存在跨时间分区圈选用户的场景,如 “活跃度” 这个标签,业务需要圈选出 5 月 2 号是 “高活跃”、6 月 2 号变成 “低活跃” 的这批用户,进行一些激活措施,维持用户活跃度。
新增功能说明:标签圈群时,支持用户选择某个时间的某个标签值进行圈群,完成跨时间分区圈群。
标签基础信息中,支持用户填写标签的业务口径与技术口径。
用户痛点:实际很多情况下标签名称、标签值比较长,个体画像页展示不全,无法一眼看到关键信息。
产品体验优化说明:画像详情页的标签名称、标签值换行展示。
支持用户自定义上传内容与标签大宽表的字段关联键。
・数据安全对接 Ranger:底层对接 Ranger 并适配 Trino SSL,可在数据安全产品控制标签表
・导出数据受行级权限控制:群组列表的数据导出也受行级权限控制,保证权限的一致性
・Trino 对接底层 Ranger 权限:在 Ranger 中,Trino 可控制表、字段的权限,但不能控制行级权限,适配 Trino SSL
针对指标计算结果可设置监控告警规则,及时发现指标结果数据的准确性,实时告知接收人。
数据表中存在多个分区的情况,故需要用户自主选择,同时针对分区字段的日期格式做出选择。
指标平台支持对接 Kudu 进行数据读写,完成指标开发、管理、调度、运维等全生命周期流程。
以便用户在主流程操作下,可以对该项进行设置。
・数据模型增加全量分区、增量分区、拉链表、非分区表的图文解释说明
・行级权限增加静态行级权限、动态行级权限的图文解释说明
想了解或咨询更多有关袋鼠云大数据产品、行业解决方案、客户案例的朋友,浏览袋鼠云官网:https://www.dtstack.com/?src=bbs
同时,欢迎对大数据开源项目有兴趣的同学加入「袋鼠云开源框架钉钉技术群」,交流最新开源技术信息,群号码:30537511,项目地址:https://github.com/DTStack