2.8-GA

What's new

经过了一年的产品设计、研发、灰度测试,DataPipeline2.8版本终于要与大家见面了。

在数据中间件领域,随着客户需求持续增多,适配场景复杂性持续增强,DataPipeline通过四年以来服务客户的经验,在逻辑性、专业性与稳定性方面着重发力,调整产品系统结构、配置流程,并针对关键功能进行了加固增强。

系统结构差异

在2.7版本里,为了追求产品易用性,我们将数据源、数据目的地连接配置,读取、写入配置,数据数据映射配置,数据任务执行配置,执行策略配置以步骤流程的形式串联起来。这样做的好处是产品使用上手较快,按照提示引导,配置任务过程更加简单。但简单的配置过程也会导致配置结构的不清晰,配置变更带来的影响不好评估。

因此,在2.8版本中,我们将数据任务配置过程中的逻辑节点进行了拆解,分为三个层次:数据节点、数据链路、数据任务。

  • 数据节点是数据任务进行数据集成的原始数据载体。「数据节点」可以是数据库、文件系统、数据仓库、文件、应用,一切存储数据的载体都能成为「数据节点」。

  • 数据链路是数据在数据节点之间流通方向与方法的逻辑载体。「数据链路」包含数据源与数据目的地与数据映射,同时数据链路策略配置可以限制数据任务的执行策略。

  • 数据任务是数据同步过程中的最小执行单元。

在配置层级方面,我们配置内容分为三个逻辑层级,基础配置、限制配置、策略配置

  • 数据节点

    • 基础配置

      • 包括数据节点连接配置、数据特性配置、可用性校验等。

    • 策略配置

      • 包括数据节点检查点策略、语义映射策略、预警策略、日志策略等。

  • 数据链路

    • 基础配置

      • 包括数据源配置、数据目的地配置、数据映射配置。

    • 策略配置

      • 包括数据加载策略、结构变化策略、自动重启策略、错误队列策略、预警策略、日志策略。

  • 数据任务

    • 基础配置

      • 包括映射配置、执行配置、资源配置。

    • 限制配置

      • 包括读取限制、写入限制。

    • 策略配置

      • 包括数据加载策略、结构变化策略、自动重启策略、错误队列策略、预警策略、日志策略。

配置流程差异

在2.7版本里,考虑到系统上手难度问题,配置数据任务的过程是步骤引导式的,我们将数据源、数据目的地连接配置,读取、写入配置,数据数据映射配置,数据任务执行配置,执行策略配置以步骤流程的形式串联起来。用户按照引导,即可轻松完成数据任务配置。

在过去的两年中,主要客户群体的信息化水平也在逐步提升,对DataPipeline的稳定性、专业性、灵活性也提出了更高的要求。因此,在2.8版本中,我们将数据任务配置过程中的逻辑节点进行了拆解,分为三个层次:数据节点、数据链路、数据任务。

在2.8版本的产品配置过程中,我们提供了更加专业的产品安装部署配置流程,保障产品的稳定性、灵活性。

在一个有一定信息化水平的企业用户的场景中,各个部门对于DataPipeline的要求是不一样的,DBA要求控制数据访问权限,数据部门对数据准确、数据流转负责,业务部门/分析部门需要数据内容。DataPipeline通过配置分层将产品逻辑层级分解为数据节点、数据链路、数据任务三层,更好的满足各个部门对于数据融合产品的使用需求。

在一般的企业场景中,出于数据安全要求的考虑,数据节点通常由DBA或数据管理者控制,数据库或其他类型的数据节点的密码应被少数人掌握。所以配置数据节点的工作应由DBA完成。

数据链路引用数据节点,并对获取该节点数据的方式进行配置,并调整数据映射;配置者需要充分了解数据资产情况,对数据架构有充分的理解。因此配置数据链路的角色通常是企业中数据部门的工作人员。

最终使用数据的,使数据产生价值的,一般来说是企业中的业务部门/分析部门,这些部门的人员可以方便的引用数据链路,选择自己需要的数据,选择执行方式,即可完成任务配置。

于此同时,DataPipeline在客户生产环境上线前,会进行科学合理、认真负责的环境调研、容量评估、部署方案规划及部署实施,在系统上线前夕通过评估的方法,规避数据量带来的系统压力等种种问题,提升产品稳定性。

关键功能增强

在DataPipeline服务客户的四年时间里,面对金融、能源、零售、互联网等不同行业的客户的多种多样的复杂数据同步场景,逐步练就了一身本领,在数据同步过程中,解决各式问题。

在2.8版本中,我们根据客户需求,针对部分关键功能进行了产品重构、技术重构,提升产品同步性能,扩展产品数据转换能力,并提升产品稳定性、专业性。

语义映射

在异构数据同步场景中,客户通常会因为类似这样的问题发生困扰:

”将MySQL中的int类型同步至Oracle数据目的地,在Oracle中使用什么数据类型合适?精度和标度分别是什么?“

在2.7版本中,DataPipeline经过三年的不同客户场景服务经验,由数据库专家总结出一份默认数据语义映射规则,覆盖了我们支持的数据节点的几乎所有字段类型。

然而DataPipeline提供的默认语义映射规则,更多的是出于数据写入安全,数据准确不丢失考虑,当客户有些特殊场景,例如数据上下游有约定的数据类型映射转换时,默认语义映射就会对这样的场景覆盖造成阻碍。

因此,在2.8版本中,我们在数据节点策略配置中,提供了语义映射策略,用户可以自由配置该数据节点作为数据源,到任何已支持类型的数据目的地的自定义语义映射。

与此同时,我们同样对默认语义映射进行了丰富与校准,以便在用户没有配置语义映射策略或语义映射不全时,有默认语义映射作为映射基准。

数据映射

在2.8版本中,我们对数据映射功能进行了部分调整,数据映射编辑定义部分被调整到了数据链路-基础配置层级中,方便数据部门用户准确定义数据同步过程中的数据流向。

同时,对于Kafka、Redis、SequoiaDB等NoSQL类型、消息队列类型数据节点,我们支持页面化定义数据写入结构,数据映射使用更加灵活。

在高级清洗功能中,我们支持了数据源元数据获取、数据窗口计算等功能。

数据节点支持/加强

新增支持数据节点:DB2、Redis、SequoiaDB、TiDB

已有数据节点功能加强:

对于Kafka、Redis、SequoiaDB等NoSQL类型、消息队列类型数据节点,我们支持页面化定义数据写入结构,数据映射使用更加灵活。

结构变化策略

在2.8版本中,我们针对结构变化策略进行了部分调整,对于不同的结构变化情况提供了丰富的处理策略。

情况
选项
选项说明

数据源删除正在同步的表

暂停数据任务

遇到此种情况暂停数据任务

删除映射并删除数据目的地表和数据

删除对应数据链路中的数据映射,并删除数据目的地表(drop table)

删除映射并保留数据目的地表和数据

删除对应数据链路中的数据映射,但不对数据目的地表中数据进行操作

不删除映射,持续扫描并保留数据目的地表和数据

不删除对应数据链路中的数据映射,不对数据目的地表中数据进行操作,保留任务可能因为数据源表被误删后恢复同步的可能性

数据源正在同步的表新增字段

暂停数据任务

遇到此种情况暂停数据任务

忽略数据源新增字段

数据目的地不新增该字段

自动新增该字段,建立映射并同步数据

根据新增字段的信息自动建立数据映射,数据目的地应用新的数据映射同步数据,新增该字段(alter table)

数据源正在同步的表中字段被删除

暂停数据任务

遇到此种情况暂停数据任务

删除映射并删除目的地表中字段和数据

删除对应数据链路中的字段映射,删除目的地表中该字段(alter table)

删除映射但保留目的地表中字段和数据,并写入空值

删除对应数据链路中的字段映射,但不对数据目的地表结构和历史数据进行操作,后续同步向该字段写入空值

自动重启策略

数据融合任务的稳定性与容错性是分布式数据同步系统的核心指标。在2.8版本中,我们对任务自动重启策略进行了迭代。

在任务运行过程中,如任务报错,自动重启策略将介入任务运行,尝试恢复任务,在30分钟内,进行5次自动重启。

在不断服务客户的过程中,我们也发现了部分错误重启不能解决,当任务遇到这部分错误时,即直接运行失败,不进行自动重启。同时,我们也支持向自动重启策略中添加控制规则,对错误堆栈进行匹配,决定是否重启任务。

错误队列策略

在之前版本的产品中,错误队列会预处理部分数据,并计算错误队列在其中占据的比例,并根据策略中指定的比例值来限制任务的运行,并发送预警信息。

通常情况下,数据中的错误数据分布不会十分均匀,在错误队列策略执行过程中,可能会因为部分错误数据在靠前的位置导致任务被暂停;且在数据同步场景中,较为严肃的场景不允许出现错误数据,对数据时效性要求极高的场景中,对错误数据的容忍度是无限的。

在2.8版本中,我们通过错误数据条目来配置策略限制任务的运行,针对不允许出现错误数据的场景与对数据时效性要求高于数据准确性要求的场景,通过配置错误数据超过一定条数暂停数据任务、待处理错误数据超过一定条数不允许激活数据任务的选项,可以达成预期目的。

于此同时,我们将错误队列数据缓存的存储组件从Kafka+MySQL 调整到了ElasticSearch,方便了数据检索与大量数据的持久化存储,便于在任务错误队列页面处理错误数据。

错误队列预警与错误队列日志调整到了预警策略与日志策略中统一配置。

预警策略

随着DataPipeline产品越来越多的应用于客户的核心业务系统,相应的管理要求也越来越高,为了保证系统运维与错误处理的及时性,我们对预警功能进行了优化与迭代。

  • 新增Webhook预警渠道,向API推送预警信息,无代码集成钉钉、企业微信、企业级预警平台等第三方服务。

  • 新增预警发送组与预警内容自定义编辑。

  • 新增节点、链路、任务、系统预警策略功能,包括错误预警、配置变更预警、状态变更预警三个类别中的数十种预警指标。

  • 新增预警信息分级、预警发送频次限制,重要预警消息及时处理。

  • 新增预警信息查看页面。

日志策略

随着客户的信息化水平逐步提升,管理与审计要求也随之而来,同时为了降低运维问题排查难度,提升系统易用性,我们对日志策略进行了优化。

  • 新增节点、链路、任务、系统日志查看页面,支持检索筛选。

  • 优化日志记录内容,使之更加通俗易懂,新增配置变更日志、状态变更日志、用户与权限变更日志、用户登录审计日志等种类的日志记录。

  • 支持日志文件输出至DataPipeline部署服务器指定目录,便于对接外部日志采集系统。

最后更新于

这有帮助吗?