此次发布的2.7版本在进一步优化产品底层数据处理逻辑的同时更加注重提升用户在数据融合任务的日常管理、运行监控及资源分配等管理方面的功能增强与优化,力求帮助大家更为直观、便捷、稳定地管理数据融合任务,提升系统的易用性与稳定性。

一、新增功能

1. 在待处理列表中查看或配置重要任务、故障任务、待完善任务、性能关注任务

功能背景:

对于大多数数据工程师而言,每天需要配置、管理、监控的任务数以百计,任务的重要程度、时效性要求与性能要求也都千差万别,其中既包括为线上产品提供实时计算数据的任务,也有数据备份等优先级较低的任务。同时,为了应对不停变化的市场与业务需求,新的数据融合任务需求也会连续不断地涌现,数据工程师在保证现有任务稳定运行的同时,还需不断地新增数据任务。

大量不同类型、不同状态的任务平铺在客户端首页,导致重要任务难以得到优先关注,待完善任务可能被遗漏,性能较差的任务无法被发现,查找任务、管理任务、处理问题占用了较多工作时间。

新版本上线后,用户可以对重要任务添加标识,平台也会对任务按照重要程度、配置完成情况及运行状态、运行效率进行评估及管理,用户可以通过待处理列表非常直观地看到所关注的重要任务、运行出现问题的故障任务、配置未完成待完善的任务及性能较低需要关注的任务,帮助数据工程师在日常任务监控与新需求处理中提高效率,同时对运行效率有直观的了解,保障业务连续性。

功能详情:

(1)重要任务

工作事务通常带有自身的优先级属性,数据同步任务亦如此。针对重要任务,DataPipeline提供星标设置,于主页优先展示。用户可实时关注重要任务状态,保证重要任务稳定运行。

(2)故障任务

集中展示出现故障的任务,保障问题不被遗漏,任务故障处理全面有序。

(3)非激活状态

集中展示处于非激活状态的任务,明确列示需要进一步完善配置或需要修改配置的任务,保证数据工程师的任务配置工作全面有序。

(4)性能关注

性能关注部分会根据系统对任务效率评估分别展示传输速率较低的10个批量任务和实时任务,通过查看性能关注,可以及时发现运行状态不良的任务,提前做出处理,防止由于性能问题导致更严重的问题发生。

2. 可按照项目对任务进行分组管理

功能背景:

DataPipeline在之前的版本中帮助用户实现了多种来源,不同结构数据的同步处理。但随着产品不断被深度使用,系统用户和数据任务数量的不断增加,多个项目的数据融合任务混杂在一起,导致任务配置、监控及管理有些不便。

我们了解到,一个数据工程师可能同时需要管理多个项目,每个项目可能包含数十个上百个数据融合任务,在不能按照项目对数据融合任务进行分组管理的时候,只能凭借记忆通过名称、数据节点等信息进行搜索,耗时费力。

因此,DataPipeline新增了根据项目进行任务分组的功能,用户可以根据任务所属项目,对上百个任务进行分组管理,大大提高了效率。


功能详情:

(1)支持通过自定义创建项目,对任务进行分组;

(2)支持通过勾选任务,改变多个任务的任务分组。

3. 可以为任务配置特定资源组

功能背景:

虽然DataPipeline数据融合产品基于并行计算框架,从基础架构层面支持任务级高可用,但在资源组管理方面一直未对用户开放,用户在使用之前版本的DataPipeline时,所有数据任务均在一个默认资源组中运行,无法根据任务的重要程度来分配任务运行资源。

这就要求用户只能针对重要任务配置单独的集群以保证任务的稳定、高效运行。这种方式在实际操作过程中存在很多客观限制,如系统资源申请困难,成本预算控制等,也给我们的数据工程师用户们造成了很大的困扰。

因此我们决定在新版本中开放系统资源组配置和分配功能,同时计划在未来的版本中开放动态资源调配功能。

例如,当前系统资源为一台16C64G的服务器,在无法分配资源组时任务运行状态如下:

资源组配置开放以后,用户可以配置一个重要任务资源组和一个一般任务资源组,任务运行状态如下:

重要任务相较于其他普通任务虽然启动时间较晚。但由于被分配在独立的资源组中,仍然可以保证有足够的资源保障任务平稳运行。

功能详情:

(1)资源组配置

在部署DataPipeline时,通过修改配置文件,可以将数据源端/目的地端的服务器资源划分为多个资源组,实现业务资源组解耦。
资源组配置文件路径:

/data/datapipeline/dpconfig/resource_group_config.json

源端与目的地端均有两个资源组的配置文件,资源组配置文件样例如下:

配置详细说明如下:

注:修改配置文件后需要重启服务使资源组配置生效

(2)为任务的读取与写入分配资源组

用户在任务设置过程中可以针对每个任务的数据读取和数据写入分别选择支撑任务运行的资源组。

二、优化功能

1. 数据传输消息队列粒度拆分优化

功能背景:

DataPipeline为更好地支持高效数据融合任务,对数据传输消息队列粒度进行了进一步的拆分优化。

功能详情:

首先,我们来看一下数据在DataPipeline是如何流转的:

在此需求的用户场景中,源端数据节点为DB1,DB1中包含三张数据表分别为T1、T2和T3。目的地端数据节点为DB2,DB2中包含三张数据表分别为T4、T5和T6。  数据融合要求为,将T1、T2、T3中的数据进行合并后写入到T4中,将T2中的数据同步到T5中,将T3中的数据同步到T6中。

在之前的处理逻辑中(如图1),按照目的地写入要求的粒度来建立消息队列,即将T1、T2、T3的数据写入1个消息队列进行缓存,也就是图1中的消息队列1。

图1

该缓存机制可以很好地支持T4的数据同步,由于数据进入了1个消息队列,所以在同步T5、T6的数据时需要将缓存中的T1、T2、T3数据进行拆分,处理效率较低。

DataPipeline针对数据传输中消息队列缓存粒度进行了拆分优化(如图2),按照数据源数据表的粒度,进行消息队列拆分,即将数据源T1、T2、T3的数据分别写入三个消息队列进行缓存。

图2

同步至T4的数据会读取T1、T2、T3分别对应的消息队列,进行合并后写入合并消息队列,再供T4对应的消费单元进行消费,同步至T5、T6的任务可以分别读取T2与T3对应的消息队列进行数据写入。

这样,我们便可同时支持源端多表合一同步与其中一张表的单独同步。由于拆分多个并发来读取数据,T2至T5、T3至T6的数据同步速率会明显提升。而对于将T1、T2、T3的数据进行合并同步至T4的流程,虽然添加了一步消息队列内部的合并操作,但速率影响较小,可以较好地支持上述场景。

2. 支持在任一数据同步任务中灵活修改数据源/目的地配置信息

通过支持在任一数据同步任务中灵活修改数据源/目的地配置信息,可使数据节点配置在全局生效,提升任务配置效率。

除数据源/目的地类型之外均可修改,当数据源有其他任务正在运行时不允许修改,修改后数据源/目的地节点的配置即全局生效。

三、其他功能增强与问题修复

除上述功能之外,DataPipeline还分别从以下几方面对产品进行了功能增强与问题修复:

1. 支持对用户注册信息中邮箱的修改

2. 为数据任务页面复制、编辑、删除等按钮添加文字注释

3. 优化线程实时任务心跳,支撑运维监控

4. 优化元数据查询SQL和相关逻辑,修复索引查询

5. Hive数据源重构优化

6. Hive Kerberos的验证优化

7. 优化由于JDBC连接造成的任务卡顿问题

DataPipeline的每一次版本迭代都凝聚了团队对企业数据管理需求的深入思考和积极探索,希望在这个特殊时期,新版本能够切实帮助大家更敏捷高效地融合数据、使用数据、分析数据。

最新2.7版本丨DataPipeline数据融合产品最新版本发布的更多相关文章

  1. DataPipeline数据融合重磅功能丨一对多实时分发、批量读取模式

    为能更好地服务用户,DataPipeline最新版本支持: 1. 一个数据源数据同时分发(实时或定时)到多个目的地: 2.  提升Hive的使用场景: 写入Hive目的地时,支持选择任意目标表字段作为 ...

  2. DataPipeline CTO陈肃:构建批流一体数据融合平台的一致性语义保证

    文 | 陈肃 DataPipelineCTO 交流微信 | datapipeline2018 本文完整PPT获取 | 关注公众号后,后台回复“陈肃” 首先,本文将从数据融合角度,谈一下DataPipe ...

  3. DataPipeline丨新型企业数据融合平台的探索与实践

    文 |刘瀚林 DataPipeline后端研发负责人 交流微信 | datapipeline2018 一.关于数据融合和企业数据融合平台 数据融合是把不同来源.格式.特点性质的数据在逻辑上或物理上有机 ...

  4. Atitit 数据融合merge功能v3新特性.docx

    Atitit 数据融合merge功能v3新特性.docx 1.1. 版本历史1 1.2. 生成sql结果1 1.3. 使用范例1 1.4. 核心代码1 1.1. 版本历史 V2增加了replace部分 ...

  5. 搭建企业级实时数据融合平台难吗?Tapdata + ES + MongoDB 就能搞定

      摘要:如何打造一套企业级的实时数据融合平台?Tapdata 已经找到了最佳实践,下文将以 Tapdata 的零售行业客户为例,与您分享:基于 ES 和 MongoDB 来快速构建一套企业级的实时数 ...

  6. SqlServer高版本数据本分还原到低版本方法

    最近遇见一个问题: 想要将Sqlserver高版本备份的数据还原到低版本SqlServer上去,但是这在SqlServer中是没法直接还原数据库的,所以经过一系列的请教总结出来一下可用方法. 首先.你 ...

  7. 最新选择Godaddy主机方案美国数据中心教程指导

    随着Godaddy官方管理层的变动之后,主营重心已经从当初的域名开始转向到域名和主机产品上.这点我们从其发布域名优惠信息的频率也可以看到,而且我们可以看到常年的主机半价优惠,以及针对主机销售年付方案赠 ...

  8. reshape2 数据操作 数据融合 (melt)

    前面一篇讲了cast,想必已经见识到了reshape2的强大,当然在使用cast时配合上melt这种强大的揉数据能力才能表现的淋漓尽致. 下面我们来看下,melt这个函数以及它的特点. melt(da ...

  9. SLAM+语音机器人DIY系列:(三)感知与大脑——2.带自校准九轴数据融合IMU惯性传感器

    摘要 在我的想象中机器人首先应该能自由的走来走去,然后应该能流利的与主人对话.朝着这个理想,我准备设计一个能自由行走,并且可以与人语音对话的机器人.实现的关键是让机器人能通过传感器感知周围环境,并通过 ...

随机推荐

  1. $Luogu2680/NOIp2015$ 运输计划

    传送门 $Sol$ 最暴力的做法就是枚举最长链上的边,然后再算一次所有的链长,更新$ans$. 这里要求最大的最小,容易想到二分答案.对于二分的值$mid$,扫一遍所有的链,若链长小于等于$mid$, ...

  2. $CH0601\ Genius\ ACM$ 倍增优化DP

    ACWing Description 给定一个长度为N的数列A以及一个整数T.我们要把A分成若干段,使得每一段的'校验值'都不超过N.求最少需要分成几段. Sol 首先是校验值的求法: 要使得'每对数 ...

  3. 洛谷$1541$ 乌龟棋 线性$DP$

    Luogu   CH Sol f[i]表示走到第i个格子时获得的最大分数 发现转移与各个爬行卡片的数量有关,一共只有4种卡片 所以就把这四种卡片的已使用张数也放进状态,f[i][a][b][c][d] ...

  4. 图解Go语言的context了解编程语言核心实现源码

    基础筑基 基于线程的编程语言中的一些设计 ThreadGroup ThreadGroup是基于线程并发的编程语言中常用的一个概念,当一个线程派生出一个子线程后通常会加入父线程的线程组(未指定线程组的情 ...

  5. 小小知识点(二十九)open access 和 classic access期刊出版形式分别指的是什么?

    open access: 作者付费,读者免费获取方式:相当于你给所有读者买单,就是交钱让你的文章可免费下载,很显然文章的被引用几率机会会提高.对于那些追求他引的单位,个别作者就得出点银子了 class ...

  6. 还在使用OpenGL ES做渲染,你Out了,赶紧来拥抱Vulkan吧~

    背景介绍 Vulkan是Khronos组织制定的"下一代"开放的图形显示API.是与DirectX12能够匹敌的GPU API标准. Vulkan是基于AMD的Mantle API ...

  7. 在Winform界面中使用DevExpress的TreeList实现节点过滤查询的两种方式

    在我较早的一篇随笔<在DevExpress程序中使用TeeList控件以及节点查询的处理>中,介绍了在树形列表TreeList控件上面,利用SearchControl实现节点的模糊查询过滤 ...

  8. 学会python正则表达式就是这么简单

    一前言 本篇文章带大家快速入门正则表达式的使用,正则表达式的规则不仅适用python语言,基本大多数编程语言都适用,在日常使用中极为广泛,读者们有必要学好正则表达式.看完这篇文章,读者们要理解什么是正 ...

  9. 一条SQL注入引出的惊天大案2:无限战争

    前情回顾: 经过黑衣人和老周的合作,终于清除了入侵Linux帝国的网页病毒,并修复了漏洞.不曾想激怒了幕后的黑手,一场新的风雨即将来临. 详情参见:一条SQL注入引出的惊天大案   风云再起 小Q是L ...

  10. Shell水平测试-想学习Shell的童鞋必选必看文章

    [SHELL水平测试] [OVERVIEW 篇] 有很多种 shell, 你熟悉几种? 各个 shell 的 home page 在那里? 为什么说 zsh 是目前为止功能最为强大的 shell. 为 ...