一种通用SQL数据处理方法和系统技术方案

技术编号:7662624 阅读:187 留言:0更新日期:2012-08-09 07:11
本发明专利技术涉及一种通用SQL数据处理方法及系统,它包括以下步骤:①安装TCL脚本;②当执行TCL脚本时,读取数据库连接配置文件;③当成功连接到目标数据库后,读取与目标数据库函数相对应的TCL函数映射文件;④用TCL函数映射文件将TCL脚本中对应的TCL函数进行解析,生成目标数据库函数;⑤将生成的目标数据库函数和SQL语句提交到目标数据库执行。本发明专利技术的特点是支持多种异构数据源,在多种数据库中能够实现一套代码不用作任何修改就能运行并且可以保证实现的功能和最终数据一致。通过自定义SQL标准为企业解决了数据迁移过程中大量程序代码修改的难题,减少了人力、财力投入。

【技术实现步骤摘要】

本专利技术涉及数据仓库领域,特别涉及数据仓库领域的数据迁移。
技术介绍
现有技术一通过在数据库中写相关的存储过程或函数来对数据进行计算、汇总、清洗转换的。对于DB2,SYBASE, ORACLE, GREENPLUM, TERDATA这类数据仓库环境,现有技术方案都是通过在DB2,SYBASE, ORACLE, GREENPLUM, TERDATA内部写大量的存储过程,函数对 已有数据进行计算,再把计算后的数据插入到自身的数据仓库环境中。对于这些内部的存储过程和函数在创建或发生修改时,需要编译后再运行,否则不会生效。现有技术一的缺点是所有的存储过程或函数在发生任何修改后都需要重新编译一次才能使最新的修改生效,而且还会涉及到存储过程,函数依赖的情况,如果有存储过程,函数依赖,所有依赖的存储过程和函数也要重新编译才能生效,否则在执行时会报错,这样维护起来会非常得麻烦,不利于管理和维护,同时也给数据仓库带来一定压力。现有技术二 通过在外部perl,shell里面嵌套SQL语句对数据库的数据进行计算,清洗。在外部的perl,shell程序中,嵌套每种类型的数据库的SQL语句,在外部环境下直接运行,不需要编译peri, shell程序,当执行perl, shell程序时,里面嵌套的SQL会被提交到数据库中执行,把运行完成的数据再插入到自身数据库中的目标表中。现有技术二的缺点是每种类型数据库的SQL语句的语法和用法都各不一样,而外部perl,shell程序里面嵌套的SQL只支持一种数据库环境,所以不支持跨平台异构数据库环境,当程序迁移到另外一种数据库环境中时,所有的perl,shell程序要全部进行修改以支持新的数据库环境。所以迁移的时候改动的工作量很大,不能实现一套代码在所有数据库环境中都能运行。
技术实现思路
本专利技术所要解决的技术问题是提供一种可不用编译,直接在外部执行,代码不用做任何修改即可在不同数据库中运行,没有任何其阿姨成本和修改量的通用SQL数据处理方法和系统。本专利技术解决上述技术问题的技术方案如下一种通用SQL数据处理方法,它包括以下步骤①安装TCL脚本;②当执行TCL脚本时,读取数据库连接配置文件;③当成功连接到目标数据库后,读取与目标数据库函数相对应的TCL函数映射文件;④用TCL函数映射文件将TCL脚本中对应的TCL函数进行解析,生成目标数据库函数;⑤将生成的目标数据库函数和SQL语句提交到目标数据库执行。在上述技术方案的基础上,本专利技术还可以做如下改进。进一步,所述所述步骤①为root用户执行以下步骤a、解压SQL系统的程序包;b、打开目录;C、生成配置文件;d、编译;e、安装。进一步,所述配置文件包括对应的目标数据类型和连接参数信息,用于连接和匹配目标数据库。一种通用SQL数据处理系统,它包括安装模块、读取模块、读取模块、解析模块、执行模块,其中,安装模块,用于安装TCL脚本;读取配置文件模块,用于当执行TCL脚本时,读取数据库连接配置文件;读取映射文件模块,用于当成功连接到目标数据库后,读取与目标数据库函数相对应的TCL函数映射文件;解析模块,用TCL函数映射文件将TCL脚本中对应的TCL函数进行解析,生成目标数据库函数;执行模块,将生成的目标数据库函数和SQL语句提交到目标数据库执行;进一步,所述安装模块包括解压子模块,打开目录子模块,生成配制文件子模块,编译子模块,安装子模块。进一步,所述读取配置文件模块中的配置文件包括对应的目标数据类型和连接参数信息的文件,用于连接和匹配目标数据库。采用上述方案的有益效果是通过将TCL脚本中的TCL函数映射成目标数据库函数在倒目标数据库执行,这种方法不用编译,不用在数据库中编写任何存储过程或函数,直接在外部执行,可以支持跨平台异构数据库环境,实现一套代码不用做任何修改即可以不同的数据库中运行,没有任何迁移成本和修改量。附图说明图I为本专利技术整体步骤流程图;图2为本专利技术TCL函数与数据库函数映射示意具体实施例方式以下结合附图对本专利技术的原理和特征进行描述,所举实例只用于解释本专利技术,并非用于限定本专利技术的范围。如图I所示,通用SQL数据处理方法包括以下步骤①安装TCL脚本; 在Iinux下安装IS/BI-GSQL通用SQL系统的程序包tar xzvf dwpro. tar. gztar xzvf dwtools. tar. gz②当执行TCL脚本时,读取数据库连接配置文件;修改数据库连接配置文件vi/datal/dwdev/dwpro/etc/common, cfg③当成功连接到目标数据库后,读取与目标数据库函数相对应的TCL函数映射文件;#oracle数据库连接设置set dbName_oracle dwtest3set dbUser_oracle dwset dbPassword_oracIe 340ilB2hlQ8j106g#SyIQ数据库连接设置set dbName_sybaseiq asiqdemoset dbUser_sybaseiq dbaset dbPassword_sybaseiq sql#Postgres数据库连接设置setdbName_postg" vipshop 192. 168. 0. 19:54321 vipshop :6o069L0D0g9WlP06222"set dbUser_pos tg""set dbPassword_postg""set TMPTBSPACE""set TMPINDXTBSPACE""④用TCL函数映射文件将TCL脚本中对应的TCL函数进行解析,生成目标数据库函数;编写TCL程序,在TCL程序中调用通用SQL的TCL函数st_trd_sts_total_rpt_ws_update.tcl 调用这个函数。⑤将生成的目标数据库函数和SQL语句提交到目标数据库执行。执行TCL程序/datal/dwdev/dwpro/bin/dss_postg-ul-vl-sst_trd_sts_total_rpt_ws_update, tcl-t 20110923-O当在greenplum数据库环境下执行时tcl_func_char_to_timestamp函数会被映射成greenplum的to_timestamp数据库函数,从而可以正常运行。所述所述步骤①为root用户执行以下步骤a、解压SQL系统的程序包;b、打开目录;c、生成配置文件;d、编译;e、安装TCL脚本。所述配置文件包括对应的目标数据类型和连接参数信息,用于连接和匹配目标数据库。 图2为通过每种类型的数据库与TCL函数映射文件,TCL中创建的通用SQL的TCL函数就可以与db2, Sybase, oracle, greenplum, teradata数据库中的函数相对应起来,而在TCL脚本中是调用封装好的TCL函数,所以就不存在连不同的数据库,SQL中函数会不一样,这样就全部统一起来,便于代码迁移和跨平台进行运行TCL程序。以上所述仅为本专利技术的较佳实施例,并不用以限制本专利技术,凡在本专利技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本专利技术的保护范围之内。权利要求1.ー种通用SQL数据处理方法,其特征在于,它包括以下步骤 ①安装TCL脚本; 本文档来自技高网
...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:官辉鲁超齐科军李俊
申请(专利权)人:北京英孚斯迈特信息技术有限公司
类型:发明
国别省市:

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

1