CN102629277A - 一种通用sql数据处理方法和系统 - Google Patents
一种通用sql数据处理方法和系统 Download PDFInfo
- Publication number
- CN102629277A CN102629277A CN2012100768657A CN201210076865A CN102629277A CN 102629277 A CN102629277 A CN 102629277A CN 2012100768657 A CN2012100768657 A CN 2012100768657A CN 201210076865 A CN201210076865 A CN 201210076865A CN 102629277 A CN102629277 A CN 102629277A
- Authority
- CN
- China
- Prior art keywords
- tcl
- function
- module
- sql
- database
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及一种通用SQL数据处理方法及系统,它包括以下步骤:①安装TCL脚本;②当执行TCL脚本时,读取数据库连接配置文件;③当成功连接到目标数据库后,读取与目标数据库函数相对应的TCL函数映射文件;④用TCL函数映射文件将TCL脚本中对应的TCL函数进行解析,生成目标数据库函数;⑤将生成的目标数据库函数和SQL语句提交到目标数据库执行。本发明的特点是支持多种异构数据源,在多种数据库中能够实现一套代码不用作任何修改就能运行并且可以保证实现的功能和最终数据一致。通过自定义SQL标准为企业解决了数据迁移过程中大量程序代码修改的难题,减少了人力、财力投入。
Description
技术领域
本发明涉及数据仓库领域,特别涉及数据仓库领域的数据迁移。
背景技术
现有技术一:通过在数据库中写相关的存储过程或函数来对数据进行计算、汇总、清洗转换的。对于DB2,SYBASE,ORACLE,GREENPLUM,TERDATA这类数据仓库环境,现有技术方案都是通过在DB2,SYBASE,ORACLE,GREENPLUM,TERDATA内部写大量的存储过程,函数对已有数据进行计算,再把计算后的数据插入到自身的数据仓库环境中。对于这些内部的存储过程和函数在创建或发生修改时,需要编译后再运行,否则不会生效。
现有技术一的缺点是:所有的存储过程或函数在发生任何修改后都需要重新编译一次才能使最新的修改生效,而且还会涉及到存储过程,函数依赖的情况,如果有存储过程,函数依赖,所有依赖的存储过程和函数也要重新编译才能生效,否则在执行时会报错,这样维护起来会非常得麻烦,不利于管理和维护,同时也给数据仓库带来一定压力。
现有技术二:通过在外部perl,she11里面嵌套SQL语句对数据库的数据进行计算,清洗。在外部的perl,she11程序中,嵌套每种类型的数据库的SQL语句,在外部环境下直接运行,不需要编译perl,she11程序,当执行perl,she11程序时,里面嵌套的SQL会被提交到数据库中执行,把运行完成的数据再插入到自身数据库中的目标表中。
现有技术二的缺点是:每种类型数据库的SQL语句的语法和用法都各不一样,而外部perl,she11程序里面嵌套的SQL只支持一种数据库环境,所以不支持跨平台异构数据库环境,当程序迁移到另外一种数据库环境中时,所有的perl,she11程序要全部进行修改以支持新的数据库环境。所以迁移的时候改动的工作量很大,不能实现一套代码在所有数据库环境中都能运行。
发明内容
本发明所要解决的技术问题是提供一种可不用编译,直接在外部执行,代码不用做任何修改即可在不同数据库中运行,没有任何其阿姨成本和修改量的通用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函数映射成目标数据库函数在倒目标数据库执行,这种方法不用编译,不用在数据库中编写任何存储过程或函数,直接在外部执行,可以支持跨平台异构数据库环境,实现一套代码不用做任何修改即可以不同的数据库中运行,没有任何迁移成本和修改量。
附图说明
图1为本发明整体步骤流程图;
图2为本发明TCL函数与数据库函数映射示意图;
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
如图1所示,通用SQL数据处理方法包括以下步骤:
①安装TCL脚本;
在linux下安装IS/BI-GSQL通用SQL系统的程序包
tar xzvf dwpro.tar.gz
tar xzvf dwtools.tar.gz
②当执行TCL脚本时,读取数据库连接配置文件;
修改数据库连接配置文件
vi/data1/dwdev/dwpro/etc/common.cfg
③当成功连接到目标数据库后,读取与目标数据库函数相对应的TCL函数映射文件;
#oracle数据库连接设置
set dbName_oracle dwtest3
set dbUser_oracle dw
set dbPassword_oracle 340i1B2h1Q8j1O6g
#SyIQ数据库连接设置
set dbName_sybaseiq asiqdemo
set dbUser_sybaseiq dba
set dbPassword_sybaseiq sql
#Postgres数据库连接设置
setdbName_postg
″vipshop:192.168.0.19:54321:vipshop:6o069L0D0g9W1P06222″
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调用[tcl_func_char_to_timestamp′${firstday_week}′]这个函数。
⑤将生成的目标数据库函数和SQL语句提交到目标数据库执行。
执行TCL程序
/data1/dwdev/dwpro/bin/dss_postg-u1-v1-sst_trd_sts_total_rpt_ws_update.tcl-t 20110923-o
当在greenplum数据库环境下执行时tc1_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程序。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种通用SQL数据处理方法,其特征在于,它包括以下步骤:
①安装TCL脚本;
②当执行TCL脚本时,读取数据库连接配置文件;
③当成功连接到目标数据库后,读取与目标数据库函数相对应的TCL函数映射文件;
④用TCL函数映射文件将TCL脚本中对应的TCL函数进行解析,生成目标数据库函数;
⑤将生成的目标数据库函数和SQL语句提交到目标数据库执行。
2.根据权利要求1所述的通用SQL数据处理方法,其特征在于,所述步骤①为root用户执行以下步骤:
a、解压SQL系统的程序包;
b、打开目录;
c、生成配置文件;
d、编译;
e、安装。
3.根据权利要求1所述的通用SQL数据处理方法,其特征在于:所述配置文件包括对应的目标数据类型和连接参数信息,用于连接和匹配目标数据库。
4.一种通用SQL数据处理系统,其特征在于,它包括安装模块、读取模块、读取模块、解析模块、执行模块,其中,
安装模块,用于安装TCL脚本;
读取配置文件模块,用于当执行TCL脚本时,读取数据库连接配置文件;
读取映射文件模块,用于当成功连接到目标数据库后,读取与目标数据库函数相对应的TCL函数映射文件;
解析模块,用TCL函数映射文件将TCL脚本中对应的TCL函数进行解析,生成目标数据库函数;
执行模块,将生成的目标数据库函数和SQL语句提交到目标数据库执行。
5.根据权利要求4所述的通用SQL数据处理系统,其特征在于:所述安装模块包括解压子模块,打开目录子模块,生成配制文件子模块,编译子模块,安装子模块。
6.根据权利要求4所述的通用SQL数据处理系统,其特征在于:所述读取配置文件模块中的配置文件包括对应的目标数据类型和连接参数信息的文件,用于连接和匹配目标数据库。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012100768657A CN102629277A (zh) | 2012-03-21 | 2012-03-21 | 一种通用sql数据处理方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012100768657A CN102629277A (zh) | 2012-03-21 | 2012-03-21 | 一种通用sql数据处理方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102629277A true CN102629277A (zh) | 2012-08-08 |
Family
ID=46587537
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012100768657A Pending CN102629277A (zh) | 2012-03-21 | 2012-03-21 | 一种通用sql数据处理方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102629277A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104102511A (zh) * | 2014-07-17 | 2014-10-15 | 福建星海通信科技有限公司 | 一种基于SQL Server的脚本自动升级系统及方法 |
CN107958057A (zh) * | 2017-11-29 | 2018-04-24 | 苏宁云商集团股份有限公司 | 一种用于异构数据库中数据迁移的代码生成方法及装置 |
CN109992259A (zh) * | 2019-04-15 | 2019-07-09 | 成都四方伟业软件股份有限公司 | 函数动态创建方法、装置及电子设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1949186A (zh) * | 2006-11-17 | 2007-04-18 | 深圳市领测科技有限公司 | 一种程序调测系统及用于程序调测系统的映射方法 |
-
2012
- 2012-03-21 CN CN2012100768657A patent/CN102629277A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1949186A (zh) * | 2006-11-17 | 2007-04-18 | 深圳市领测科技有限公司 | 一种程序调测系统及用于程序调测系统的映射方法 |
Non-Patent Citations (3)
Title |
---|
付文霞: "脚本在面向对象实时数据库中的应用研究", 《科学技术与工程》, vol. 8, no. 17, 30 September 2008 (2008-09-30), pages 5024 - 5027 * |
何瑾等: "基于开源思想的软件应用开发", 《河北师范大学学报(自然科学版)》, vol. 31, no. 1, 31 January 2007 (2007-01-31), pages 32 - 35 * |
当里个当9527: "TCL脚本教程", 《HTTP://WENKU.BAIDU.COM/LINK?URL=CA7LLUZU7NPSDHZEK1-95ZPJIUY93AVLHVX8MKIJO1PB5QZ_NAZ467ERIGY6TBDLAH_TVSU2KU8TBTPCUK2V8JCJHNGQO-J5JJDMIJQMICC》, 21 February 2012 (2012-02-21), pages 35 - 42 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104102511A (zh) * | 2014-07-17 | 2014-10-15 | 福建星海通信科技有限公司 | 一种基于SQL Server的脚本自动升级系统及方法 |
CN107958057A (zh) * | 2017-11-29 | 2018-04-24 | 苏宁云商集团股份有限公司 | 一种用于异构数据库中数据迁移的代码生成方法及装置 |
CN107958057B (zh) * | 2017-11-29 | 2022-04-05 | 苏宁易购集团股份有限公司 | 一种用于异构数据库中数据迁移的代码生成方法及装置 |
CN109992259A (zh) * | 2019-04-15 | 2019-07-09 | 成都四方伟业软件股份有限公司 | 函数动态创建方法、装置及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Bacon et al. | Spanner: Becoming a SQL system | |
US11468043B1 (en) | Batching database queries for migration to a different database | |
Zhou et al. | SCOPE: parallel databases meet MapReduce | |
US11354284B2 (en) | System and method for migration of a legacy datastore | |
Abouzeid et al. | HadoopDB: an architectural hybrid of MapReduce and DBMS technologies for analytical workloads | |
CA2860223C (en) | Methods of micro-specialization in database management systems | |
US8239369B2 (en) | Method and apparatus for enhancing performance of database and environment thereof | |
US10585909B2 (en) | Task-execution in a DBMS using stored procedures | |
US9430505B2 (en) | Automated data warehouse migration | |
CN104899295B (zh) | 一种异构数据源数据关联分析方法 | |
CN102323945A (zh) | 一种基于sql的数据库管理方法和装置 | |
CN103778133A (zh) | 一种数据库对象的变更方法及装置 | |
CN101727320A (zh) | 用于识别数据库更改对应用的影响的方法和系统 | |
CN103853803A (zh) | 数据库的配置文件的封装方法和操作方法及其操作装置 | |
US20210263930A1 (en) | Partial group by for eager group by placement query plans | |
CN101174271A (zh) | 数据库系统管理方法 | |
Aluko et al. | Big SQL systems: an experimental evaluation | |
CN102629277A (zh) | 一种通用sql数据处理方法和系统 | |
Wang et al. | QMapper for smart grid: Migrating SQL-based application to Hive | |
EP2005332A1 (en) | Management of statistical views in a database system | |
CN102707956A (zh) | 用于处理触发器返回结果不确定性的方法 | |
CN102693239A (zh) | 基于xml描述及静态编译框架的应用程序组织方法及系统 | |
Nakamura et al. | Extending postgreSQL to handle OLXP workloads | |
Clarkson et al. | Bifrost: A future graph database runtime | |
CN112732704B (zh) | 一种数据处理方法、装置及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20120808 |