用于数据转换、数据迁移的方法和装置制造方法及图纸

技术编号:12888640 阅读:63 留言:0更新日期:2016-02-17 22:41
本申请公开了一种用于数据转换的方法和装置、以及一种用于数据迁移的方法和装置。其中所述用于数据转换的方法包括:从预先生成的配置文件中读取采用领域专用语言描述的数据转换规则,所述数据转换规则,用于指定根据待转换数据生成目标数据所需执行的转换操作;解析所述数据转换规则,生成与所述数据转换规则对应的数据转换算法;读取待转换数据,并根据所述数据转换算法对所述待转换数据进行转换。采用本申请提供的方法,实现了数据转换代码的复用,有效减少开发人员的工作量;而且由于采用了领域特定语言进行数据转换规则的描述,简单易懂,学习成本低,即使是执行数据转换操作的普通用户也可以胜任对配置文件中的数据转换规则的配置或修改工作。

【技术实现步骤摘要】

本申请涉及数据处理技术,具体提供一种用于数据转换的方法和装置。本申请同 时提供一种用于数据迁移的方法和装置。
技术介绍
随着互联网的发展,社交数据、在线交易记录、社交媒体等数据日益增多,大量企 业开始拥有海量的客户信息,不仅需要计算机存储和处理的数据数量成指数级增长,而且 数据类型也越来越复杂。这些数据通常存储在各种数据源中,有的存储在传统的关系型数 据库中,例如:mySQL、oracle等数据库系统;有的存储在近年来蓬勃发展的NoSQL数据库 中,例如:HBase、Redis等数据库系统;有的则存储在文件系统中,例如:分布式系统集群 Hadoop的分布式文件系统HDFS(Hadoop Distributed File System,HDFS)中。 由于系统备份、升级、数据交换或者数据共享等需求,有时需要在上述各种数据源 之间进行数据迁移,即:从作为源端的数据源中导出数据,并将导出的数据导入到作为目的 端的数据源中。由于各种数据源的数据模型不同,例如,关系型数据库与NoSQL数据库的数 据组织方式不同,或者虽然两个数据源都属于关系型数据库,但是数据表的结构不同,都会 导致在上述导出、导入的过程中需要进行数据转换操作,将从源端读取的数据转换为符合 目的端数据模型的数据。 现有技术中针对数据导入导出过程中的数据转换需求,通常有两种解决方案。一 种是case by case的,即针对每一次的数据迁移需求,根据具体的数据源端和数据目的端 的数据模型,编写代码实现数据的导出、转换和导入操作;另一种是采用DataX工具进行迁 移,即采用DataX提供的从数据源端读取数据、并进行数据转换的reader插件和向数据目 的端写入数据的writer插件,实现不同数据源之间的数据迁移。 在实际应用中,上述两种解决方案存在如下缺陷: 方案一,如果采用case by case的方式在多个数据源之间进行数据迁移,每增加 一个数据源,就需要依次编写该数据源与其它数据源之间的数据迁移代码,例如,新增一个 数据源与已有的3个数据源之间进行数据迁移,则需要开发人员分别针对3个数据源编写 三套代码。显然采用这种方式程序代码无法复用,而且当数据转换规则发生变化时,必须 重新修改和编译代码,开发人员需要付出大量重复劳动,增加了开发成本,而且代码难以维 护。 方案二,采用DataX架构提供的插件,在某种程度上可以减少开发人员的工作量, 但是DataX已有的某些数据源端reader,并没有提供数据转换功能,因此开发人员仍然需 要按照DataX的架构自行开发相关的代码,例如,云梯reader不提供数据变换能力,开发人 员需要通过map/reduce任务产出计算好的待导入的数据;此外,要使用DataX提供的插件, 还需要使用者学习该插件的配置方法,特别是reader插件通常采用专业的SQL语句进行数 据转换规则的配置,学习成本高,因此在数据转换规则变更的情况下,负责进行业务数据迁 移的普通用户通常难以胜任对配置文件的修改工作,仍然需要开发人员参与。
技术实现思路
本申请提供一种用于数据转换的方法和装置,以解决现有的数据转换代码无法复 用、以及数据转换规则配置复杂的问题。本申请另外提供一种用于数据迁移的方法和装置。 本申请提供一种用于数据转换的方法,包括: 从预先生成的配置文件中读取采用领域专用语言描述的数据转换规则,所述数据 转换规则,用于指定根据待转换数据生成目标数据所需执行的转换操作; 解析所述数据转换规则,生成与所述数据转换规则对应的数据转换算法; 读取待转换数据,并根据所述数据转换算法对所述待转换数据进行转换。 可选的,所述生成的与数据转换规则对应的数据转换算法,是采用抽象语法树存 储的。 可选的,用于描述数据转换规则的所述领域专用语言的语法规则包括: 数据转换规则由一个或者一个以上数据转换语句组成,相邻语句之间采用特定分 隔符号分隔;和, 每个数据转换语句由用等号连接的目的字段名和转换表达式组成;和,目的字段名不能包含等号以及所述特定分隔符号;和, 转换表达式包括以下形式:常量、内置变量、或者用运算符连接的常量和/或内置 变量;和, 内置变量的名称包含预先设定的表示该变量的取值来自待转换数据的字母、以及 与该变量对应的待转换数据中的特定字段的下标。 可选的,所述语法规则中的运算符包括:加法、减法、乘法、除法、或者取模运算符 中的一种或者多种。 可选的,所述语法规则还包括: 支持的数据类型包括:长整形long、双精度浮点型double、日期类型Date、字符串 类型String,上述类型的常量采用对应的字面量词法表示; 支持的数据类型还包括:大数字类型Biglnteger和BigDecimal,上述类型的常量 采用显示的类型转换方式表示。 可选的,所述语法规则还包括: 支持内置变量采用显示的类型转换方式表示。 相应的,本申请还提供一种用于数据转换的装置,包括: 规则读取单元,用于从预先生成的配置文件中读取采用领域专用语言描述的数据 转换规则; 算法生成单元,用于解析所述数据转换规则,生成与所述数据转换规则对应的数 据转换算法; 数据转换单元,用于读取待转换数据,并根据所述数据转换算法对所述待转换数 据进行转换。 可选的,所述算法生成单元生成的数据转换算法,是采用抽象语法树存储的。 此外,本申请还提供一种用于数据迁移的方法,包括: 从数据源端读取待迁移数据; 根据已生成的数据转换算法将所述待迁移数据转换为符合数据目的端数据模型 的数据,所述数据转换算法是根据预先生成的配置文件中的、采用领域专用语言描述的数 据转换规则生成的; 将执行转换操作后的数据写入数据目的端。 可选的,在将所述待迁移数据转换为符合数据目的端数据模型的数据之前,执行 下述操作: 从所述预先生成的配置文件中读取采用领域专用语言描述的数据转换规则; 解析所述数据转换规则,生成与所述数据转换规则对应的数据转换算法。 可选的,所述生成的与数据转换规则对应的数据转换算法,是采用抽象语法树存 储的。 可选的,用于描述数据转换规则的所述领域专用语言的语法规则包括: 数据转换规则由一个或者一个以上数据转换语句组成,相邻语句之间采用特定分 隔符号分隔;和, 每个数据转换语句由用等号连接的目的字段名和转换表达式组成;目的字段名不能包含等号以及所述特定分隔符号;和, 转换表达式包括以下形式:常量、内置变量、或者用运算符连接的常量和/或内置 变量;和, 内置变量的名称包含预先设定的表示该变量的取值来自待迁移数据的字母、以及 与该变量对应的待迁移数据中的特定字段的下标。 可选的,所述语法规则还包括: 支持的运算符包括:加法、减法、乘法、除法、或者取模运算符中的一种或者多种; 和/或, 支持的数据类型包括:长整形long、双精度浮点型double、日期类型Date、字符串 类型String,上述类型的常量采用对应的字面量词法表示;和/或, 支持的数据类型还包括:大数字类型Biglnteger和BigDecimal,上述类型的常量 采用显示的类型转换方式表示;和/或, 支持内置变量采用显示的类型转换方式表示。 可选的,所述方法还包括: 将从数据源端读取的待迁移数据存储在数据缓本文档来自技高网
...

【技术保护点】
一种用于数据转换的方法,其特征在于,包括:从预先生成的配置文件中读取采用领域专用语言描述的数据转换规则,所述数据转换规则,用于指定根据待转换数据生成目标数据所需执行的转换操作;解析所述数据转换规则,生成与所述数据转换规则对应的数据转换算法;读取待转换数据,并根据所述数据转换算法对所述待转换数据进行转换。

【技术特征摘要】

【专利技术属性】
技术研发人员:史策
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛;KY

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1