本发明专利技术提供一种不同存储介质间的数据交换系统、方法、装置和存储介质,所述系统包括:数据模块,用于不同介质间的数据导入、数据导出和数据连接;参数管理模块,用于对数据设置参数初始值和线程参数管理;工具模块,用于获取所述数据的营业日期、数据库密码加解密、文件格式校验和数据格式化;以及接口模块,用于提供所述数据连接的统一接口,使用dp‑dx脚本配置文件参数。本发明专利技术通过一种在不同存储介质之间进行大数据交换的方式,规范统一的接口、统一的配置文件描述等内容,可以大大降低开发和应用成本,极大提高应用的可扩展性。
【技术实现步骤摘要】
不同存储介质间的数据交换系统、方法、装置和存储介质
本专利技术涉及数据处理领域,具体而言,涉及一种不同存储介质间的数据交换系统、方法、装置和存储介质。
技术介绍
当前数据存储介质有很多,比如Oracle关系数据库和mysql关系数据库,Cassandra分布式数据库和HBase分布式数据库,本地文件系统,分布式文件系统hdfs等。在行内,不同存储介质有自身的使用场景。比如oracle,适用于联机交易服务开发;hbase和hdfs,适用于离线批数据处理任务开发。那么如何让数据在以上不同存储介质中迁移和转换,成为一个非常关键的环节。比如oracle数据库中的数据迁移到hbase中进行大数据分析,hdfs中批量任务计算得到的结果迁移到oracle供联机交易使用等场景非常普遍。当前确实有不少迁移工具能够支持部分存储介质间数据迁移,比如sqoop(实现oracle、mysql与hdfs的数据交换)、expdp(oracle提供的工具,实现数据导出到本地磁盘)等。但是各工具比较独立,都只能满足部分存储介质之前的数目迁移需求,且使用方法迥异,学习成本较高。所以如果设计一套通用的数据迁移框架,规范统一的迁移接口,满足所有常用存储介质之间的数据迁移,具有非常重要的意义。当前的数据交换工具,都是特定存储介质之间的数据交换。比如sqoop,实现关系数据库(oracle,mysql等)与分布式文件系统hdfs的数据交换;expdp,oracle自带的工具,能够将oracle数据导出到本地磁盘;bulkload,能够将hdfs上的bulk文件导入到hbase表中等等现有的这些数据迁移工具种类繁多,但是每个工具的功能都有限:(1)只能满足少数存储介质之间的数据交换;(2)使用方法不一样,部署方式不一样。有单机工具,有MapReduce工具,有api调用,使得学习和部署成本比较高。
技术实现思路
为解决上述技术问题,本专利技术提供了一种不同存储介质间的数据交换系统、方法、装置和存储介质,解决当前不同存储介质之间数据交换不便,学习和部署成本高的问题。根据本专利技术实施例的第一方面,提供了一种不同存储介质间的数据交换系统,所述系统包括:数据模块,用于不同介质间的数据连接、数据导入和数据导出;参数管理模块,用于对数据设置参数初始值和线程参数管理;工具模块,用于获取所述数据的营业日期、数据库密码加解密、文件格式校验和数据格式化;以及接口模块,用于提供所述数据连接的统一接口,使用dp-dx脚本配置文件参数。根据本专利技术实施例的第二方面,提供一种不同存储介质间的数据交换方法,所述方法包括:参数管理模块对数据设置参数初始值和线程参数管理;工具模块获取所述数据的营业日期、数据库密码加解密、文件格式校验和数据格式化;接口模块提供数据连接的统一接口,使用dp-dx脚本配置文件参数;以及数据模块对不同介质间的所述数据进行所述数据连接、数据导入和数据导出。根据本专利技术实施例的第三方面,提供一种计算机可读存储介质,所述计算机存储介质包含有计算机程序,其中,所述计算机程序在被一个或多个计算机执行时使得所述一个或多个计算机执行如下操作:所述操作包括如上中任一项所述的不同存储介质间的数据交换方法所包含的步骤。根据本专利技术实施例的第四方面,提供一种不同存储介质间的数据交换装置,所述装置包括:存储器,存储有计算机可读指令;处理器,执行所述计算机可读指令以执行如上所述的不同存储介质间的数据交换方法所包含的步骤。实施本专利技术实施例提供的一种不同存储介质间的数据交换系统、方法、装置和存储介质,具有以下优点:规范统一的接口、统一的配置文件描述等内容,可以大大降低开发和应用成本,极大提高应用的可扩展性。附图说明图1是本专利技术实施例的一种不同存储介质间的数据交换系统1的结构示意图;图2是本专利技术实施例所述系统1中所述行为数据模块100的结构示意图;图3是本专利技术实施例的一种不同存储介质间的数据交换方法的流程图;图4是本专利技术实施例所述方法中步骤S4的流程图。具体实施方式为使本专利技术的实施例的目的、技术方案和优点更加清楚,下面将结合附图对本专利技术作进一步地详细描述。图1是本专利技术实施例的一种不同存储介质间的数据交换系统1的结构示意图,参见图1,所述系统1包括:数据模块100,用于不同介质间的数据连接、数据导入和数据导出;参数管理模块200,用于对数据设置参数初始值和线程参数管理;工具模块300,用于获取所述数据的营业日期、数据库密码加解密、文件格式校验和数据格式化;以及接口模块400,用于提供所述数据连接的统一接口,使用dp-dx脚本配置文件参数。工具提供的对外统一接口,使用dp-dx都以该脚本外加不同的配置文件作为参数来执行对应的功能。在本专利技术的实施方式中,所述系统还包括:参数配置模块,用于执行所述数据库配置和导数参数配置。运行日志模块,用于保存所述工具模块执行过程中生成的日志信息。依赖jar包(JavaArchiveFile,Java档案文件),所有工具需要的jar文件都在该目录下。本专利技术通过一种在不同存储介质之间进行大数据交换的方式,规范统一的接口、统一的配置文件描述等内容,可以大大降低开发和应用成本,极大提高应用的可扩展性。其中,分布式平台数据交互工具dp-dx是用来实现HDFS分布式平台数据与其他存储介质数据交互的工具。目的用来在DB和HDFS间同步数据,以及HDFS上的数据备份。目前功能包括关系数据库数据和HDFS的数据之间的导入导出,NAS文件系统和HDFS的数据交互。核心接口说明:数据导入接口com.ccb.dp.dx.IImoprtDataToHDFS支持多种数据源的数据导入到HDFS,目前仅实现了oracle数据导入。IntimportDataToHDFS(Map<String,String>params)根据配置文件和脚本传入的参数将数据导入到本地或NAS文件目录,后续由该目录再上传至HDFS;数据导出接口com.ccb.dp.dx.IExportDataFromHDFS;IntexportDataToHDFS(Map<String,String>params);根据配置文件和脚本传入的参数将数据由HDFS导出到对应的数据库表多线程的数据导入接口com.ccb.dp.dx.DataExchangeRunner;继承自runnable接口,为了实现分库分表数据的多线程导入。每个DataExchangeRunner对应一个runner,即对应一个线程。通过在线程池中添加对应的线程,再依次提交,实现多线程导入数据。类ExportTable实现了该接口DataExchangeRunner的run方法。具体实现从数据库导数的工作。配置总览如下表所述:环境配置env.sh日志配置log4j.xml数据库连接配置db.conf功能参数配置dp-dx_*.conf通用配置common.conf运行脚本dataExchange.sh重要配置说明:env.sh;在打包前根据生产环境配置完毕。配置所需的环境变量。db.conf该脚本配置数据交互工具所使用的数据库信息,配置规则为:sysId|DBUrl|uid|pwd。示例如下:注:uid:数据库用本文档来自技高网...
【技术保护点】
1.一种不同存储介质间的数据交换系统,其特征在于,所述系统包括:数据模块,用于不同介质间的数据连接、数据导入和数据导出;参数管理模块,用于对数据设置参数初始值和线程参数管理;工具模块,用于获取所述数据的营业日期、数据库密码加解密、文件格式校验和数据格式化;以及接口模块,用于提供所述数据连接的统一接口,使用dp‑dx脚本配置文件参数。
【技术特征摘要】
1.一种不同存储介质间的数据交换系统,其特征在于,所述系统包括:数据模块,用于不同介质间的数据连接、数据导入和数据导出;参数管理模块,用于对数据设置参数初始值和线程参数管理;工具模块,用于获取所述数据的营业日期、数据库密码加解密、文件格式校验和数据格式化;以及接口模块,用于提供所述数据连接的统一接口,使用dp-dx脚本配置文件参数。2.如权利要求1所述系统,其特征在于,所述数据模块包括:数据导入子模块,用于通过sql查询方式将所述数据卸数到文件,再将所述文件上传至HDFS;数据导出子模块,用于利用Sqoopjavaclient卸数,导出所述数据到数据库;以及数据库连接子模块,用于所述数据库连接池的创建和管理,并通过配置文件解析建立jdbc连接。3.如权利要求2所述系统,其特征在于,所述系统还包括:参数配置模块,用于执行所述数据库配置和导数参数配置。4.如权利要求3所述系统,其特征在于,所述系统还包括:运行日志模块,用于保存所述工具模块执行过程中生成的日志信息。5.一种不同存储介质间的数据交换方法,其特征在于,所述方法包括:参数管理模块对数据设置参数初始值和线程参数管理;工具模块获取所述数据的营业日期、数据库密码加解密、文件格式校验和数据格式化;接口模块提供数据连接的统一接口,使用dp-dx脚...
【专利技术属性】
技术研发人员:李卓,张欣,
申请(专利权)人:中国建设银行股份有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。