CN1277231C - 从远程数据源加载数据 - Google Patents

从远程数据源加载数据 Download PDF

Info

Publication number
CN1277231C
CN1277231C CNB028057082A CN02805708A CN1277231C CN 1277231 C CN1277231 C CN 1277231C CN B028057082 A CNB028057082 A CN B028057082A CN 02805708 A CN02805708 A CN 02805708A CN 1277231 C CN1277231 C CN 1277231C
Authority
CN
China
Prior art keywords
data
source
record
database
dbms
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.)
Expired - Fee Related
Application number
CNB028057082A
Other languages
English (en)
Other versions
CN1541363A (zh
Inventor
伊丽莎白·B.·哈迈
迈克尔·T.·霍
詹姆斯·C.·克里温
马克·D.·里奇
萨姆·S.·莱特斯顿
约翰·A.·麦克皮尔森
詹姆斯·A.·陆迪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1541363A publication Critical patent/CN1541363A/zh
Application granted granted Critical
Publication of CN1277231C publication Critical patent/CN1277231C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/254Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99934Query formulation, input preparation, or translation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99935Query augmenting and refining, e.g. inexact access

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提出了一种在通过数据库连接通信线路连接源端和目标端的计算机系统网络中逐个记录地从远程数据源加载数据的方法、设备和产品。源端拥有至少一个数据源和一个具有对库管理系统(DBMS)的多数据库访问的分布式关系数据库体系(DRDA)软件服务器。目标端通过一组结构化查询语言(SQL)语句请求从源端DRDA加载数据。根据DRDA通信协议,数据通过数据库连接通信线路逐个记录地输送,其中,在源端卸载记录的同时目标端加载记录。数据加载也可以以流水线的方式实现,以多个并行的流将数据记录加载到多个分区内,所述多个并行流被多个数据源分区指针所指向。

Description

从远程数据源加载数据
技术领域
本发明一般涉及数据库管理系统,以及,尤其是在基于计算机的数据库管理系统内,用于将驻留在一个数据源的持续数据卸载、传送并加载到远程数据源,而不被源或目标的文件传输系统的物理约束所限制的机制。
背景技术
电子商务的日益普及已经促使许多公司求助于应用程序服务器来有效地部署和管理它们的应用程序。非常普遍地,这些应用程序服务器配置成与一个用于数据存储和检索的数据库管理系统(DBMS)接口。这通常意味着新的应用程序必须在分布式数据环境下工作。结果,应用程序开发者往往发现,他们对哪个DBMS产品将被用来支持他们的应用程序或如何设计数据库只有很少的或没有控制权。在许多情况下,开发者发现他们的应用程序重要的数据扩散到了由不同软件厂商开发的多个DBMS。
通常希望从一个数据源卸载/提取/导出数据,将它输送到目标端(target site),并且加载/导入数据到目标端数据存储库,而不被在源端(source site)或目标端的文件传输系统的物理约束所限制。也希望目标记录的加载可以在源记录卸载的同时实现。如果数据是逐个记录地输送,这就可以实现,那样发送一个记录和接收另一个记录的操作在源端和目标端同时进行。
然而,目前还没有这种能力。数据被卸载到一个文件、整个该文件被传送、然后数据加载到目标端。文件中的数据传输通常使用文件传输程序(FTP)执行。令人遗憾的是,公司使用FTP用于DBMS应用程序可能会遇到一些障碍。通常需要关注的是,源端和目标端文件格式可能不兼容。此外,传送的数据量可能超过了目标端操作系统文件的最大大小。而且,如果设计需求要求从属性必须跨越多个DBMS的数据库表中传输记录数据,则目前并不支持,因为目前来自多个数据源的记录数据在传送时不能被连接起来。此外,希望使用多种主导信息技术厂商支持的不同数据库产品,因为它们提供了许多潜在的商业利益,比如增强的便携性和高度的代码重用。令人遗憾的是,当前的DBMS厂商不支持在数据记录被传送时,逐个记录地的数据传送模式,或来自多数据源的数据连接。
因此,开发者被迫转向更复杂(且潜在不方便)的其它可供选择的方法来获得对所需数据记录的访问。其它方法的实现通常代价高且耗时,这需要一个更复杂的编程技巧集来实现DBMS技术,其执行消耗了附加的机器资源,可能增加开发和测试的劳动力需求,并潜在地禁止了数据本身的便携性。
当应用程序开发者需要构造一个访问和传输在多个数据源中出现的重要数据的应用程序时,一种目前可用的解决问题的方法包括人工模拟的透明接入。在这种情况下,程序员担负了编写个别地连接到每个必要的数据源、读入任何必要的数据、关联(或连接)从多个数据源读入的结果、执行任何必要的数据翻译等的软件的责任。这实际上有大量的工作,并大大超出了许多程序员的技术水平。而且导致了巨大的成本。另外,还需要相当多关于所涉及的每个数据源的应用编程接口(API)的知识,并提供较少的进行查询优化的机会,这可能会抑制性能。
另一种目前可用来解决这个问题的方法需要数据的物理合并,其中来自不同数据源的数据必须拷贝到单一的数据源中,随后程序员将传送该数据源。然而,这增加了包括数据等待时间和额外开销的问题。由于数据等待时间,数据的副本将从略微到严重地“老”于原始数据源包含的数据。采用过时的(且潜在不精确的)数据工作对许多应用程序可能是不能接受的。增加的开销包括软件开销,这是因为必须购买、安装、配置和维护附加软件,以根据进度表或周期性原则从一个源到另一个源拷贝数据,同时还包含人力开销。该软件必须支持数据迁移工作或实现支持很低数据等待时间的数据复制过程。
因此,有必要提供一种能够逐个记录地,将通常驻留在多个数据源并可能以不同的格式存储的持续数据传送到目标端仓库的方法和系统。这将简化应用程序的设计、开发和维护,并提供更可靠的、具有否则将不能访问的功能的应用程序。
发明内容
本发明提供一种在通过数据库连接通信线路连接源端和目标端的计算机系统网络中逐个记录地从远程数据源加载数据的方法,该方法包括下列步骤:(a)连接源端到至少一个数据源和一个具有对DBMS的多数据库访问的软件服务器;(b)在目标端通过一组SQL语句请求从源端加载数据;并(c)根据多数据库访问通信协议,通过数据库连接通信线路逐个记录地输送数据,其中在源端卸载记录的同时目标端加载记录。
本发明提供一种用于逐个记录地从远程数据源加载数据的系统,包括:连接到至少一个数据源并具有带有对DBMS的多数据库访问的软件服务器的源端;通过一组SQL语句请求从源端加载数据的目标端;以及根据多数据库访问通信协议,逐个记录地输送数据的数据库连接通信线路,其中在源端卸载记录的同时目标端加载记录。
本发明上述及其它目标,特征和优势,由下面参考几幅插图对优选实施例的详细描述中将变得明显。
本发明的一个优选实施例是在一个通过数据库连接通信线路连接源端和目标端的计算机系统网络中,从远程数据源逐个记录地加载数据的方法。源端拥有至少一个数据源和一个具有访问DBMS的多数据库访问的软件服务器。目标端通过一组结构化查询语言(SQL)语句或其等价物请求从源端加载数据。根据多数据库访问通信协议,数据通过数据库连接通信线路逐个记录地输送,其中源端卸载记录的同时目标端加载记录。数据加载也可以以流水线(pipeline)的方式执行,以多个并行流将数据记录加载到多个分区中,所述多个并行流由多个数据源分区指针(cursor)所指向。具有对DBMS的多数据库访问的软件服务器,优选使用分布式关系数据库体系(DRDA),并且数据库连接通信线路优选使用TCP/IP协议。
本发明的另一个优选实施例是实现本发明上述方法实施例的设备。
而本发明的另一个优选实施例是明确配置了计算机可执行的指令程序来执行本发明上述方法实施例的方法步骤的计算机可读的程序存储设备。
附图说明
现在参看插图,其中例如参考数字代表了全篇相应的部分:
图1根据本发明的优选实施例图解说明一个典型的计算机硬件和软件环境的框图;以及
图2根据本发明的优选实施例图解说明了LOAD命令的几个选项的语法格式。
具体实施方式
在下文所描述的优选实施例中,提及伴随的形成其一部分的参考图,参考图阐明特定的发明可行的实施例。其它的实施例能被利用,并且结构和功能的变化能不脱离本发明的范围将被理解。
本发明集中在系统、方法和程序存储设备上,该设备包含计算机可执行的指令程序来实现本发明的方法,该方法逐个记录地将通常驻留在多个数据源并可能以不同的格式存储的持续数据传送到目标端仓库。来自多数据源可能以不同格式存储的数据的传输,采用被称为多数据库软件服务器的现有的常规技术来完成。因此,开发者能够逐个记录地传输数据且记录属性可能跨越多个数据源。而且,它们能够在单一的事务中访问任何或所有的这些属性。由于本发明可以被多种主导信息技术厂商所支持,这提供了许多潜在的商业利益,比如增强的便携性和高度的代码重用,而不用给应用程序开发者安置任何编程负担。
本发明的优选实施例优选使用具有对DBMS的多数据库访问的软件服务器访问数据源,例如分布式关系数据库体系(DRDA)软件服务器,目标端通过结构化查询语言(SQL)命令或其等价物可访问该软件服务器。数据优选根据DRDA通信协议规则逐个记录地格式化和传送,并直接加载到目标端。本发明优选使用标准的SQL命令,该命令可能是复杂的SQL命令。这允许使用联合和连接函数(union and join function)用于将来自多个数据源的数据连接起来。
由本发明的实施例,一旦一个或多个数据记录从源端卸载,数据记录就能够被传送,并且一旦一个记录被传送到目标端,目标端的数据加载就能够开始。因此,在源端卸载记录的同时目标端能够加载记录。而且,由于所有将被传输的数据不必完全在传输之前加载到一个文件,数据量可能是无限的,且不被最大文件传输系统大小所限制。而且使用DRDA或类似的通信协议提供了一种中性的数据格式,并不关注加载和卸载端文件格式是否兼容。
本发明允许目标端的用户请求数据从源端传送到目标端。这优选采用SQL DECLARE CURSOR FOR SELECT语句来完成,它通过指针名称引用源端表的SELECT命令结果行。这个命令送到源端执行。下一步,目标端的用户使用LOAD命令,该命令指定目标端表格。LOAD命令使用一个在本发明中定义的新的算子INCURSOR,它使用和SELECT语句中相同的指针名称,指示将要加载到目标端表格中的数据位置。因此,本发明使用指针名而不是当前用INDDN定义的文件名来分别引用每一个数据记录,而不是引用整个文件。
图1根据本发明的优选实施例图解说明一个典型的计算机硬件和软件环境的框图,包括目标端100和源端102,每端有一个或多个执行存储在关联的计算机存储器(未绘出)中的指令的常规处理器(未绘出)。工作存储器可加载通过可选的存储驱动器或通过与网络的接口接收的指令。当本发明的优选实施例使用在网络环境中时特别有利,在目标端100有一个控制台终端(未绘出),且目标端100的处理器通过数据库连接通信线路116连网到源端102,所述数据库通信线路最好是TCP/IP通信线路,根据DRDA通信协议规则在该通信线路上传送记录。
源端102处理器连接到一个或多个电子存储设备106,例如存储一个或多个关系数据库的磁盘驱动器。存储设备104也应用在目标端100。它们可能包括,例如,光盘驱动器、磁带和/或半导体存储器。每一个存储设备允许接收程序存储设备,例如磁介质盘、磁带、光盘、半导体存储器和其它机器可读的存储设备,并允许将记录在程序存储设备上的程序步骤读取并传送到计算机存储器。记录的程序指令可能包括用于本发明的实施例的方法的代码。另外的,程序步骤可以从计算机通过网络接收到工作存储器。
在目标端100的控制台终端的操作者使用标准的操作者终端界面(未示出),例如IMS/DB/DC,CICS,TSO,OS/2或其它类似的界面,来向目标端100和从目标端100发送电子信号,该信号代表了在源端用于执行各种任务的命令,例如在存储于电子存储设备106上的数据库中搜索和检索函数或术语查询。在当前的发明中,这些查询优选符合SQL标准,并调用由位于源端102的数据库管理系统(DBMS)(这可能是DBMS家族108的一部分)执行的函数。在目标端100也存在DBMS 110。在本发明的优选实施例中,RDBMS软件是IBM为AS400、OS390或OS/2操作系统、微软视窗操作系统或任何基于UNIX被DB2支持的操作系统提供的DB2产品。但是,本领域技术人员将认识到将本发明应用到任何使用SQL的RDBMS软件,并可类似的应用到非SQL查询。
图1进一步图解说明了可实现本发明优选实施例的软件环境。图1所示的系统中,目标端100进一步包括了本发明的交叉加载(crossloader)软件114,该软件能通过数据库连接通信线路116和位于源端102的交叉加载软件112通信。每一个交叉加载软件112、114如下所示,包括一组指令用来逐个记录地执行本发明的数据发送。目标端100还包括DRDA界面118且源端也包括DRDA界面120。交叉加载软件114也和DBMS 110连接,且交叉加载软件112连接到DBMS 108,以允许对数据库条目的访问。而且,目标端100还包括数据类型转换模块122,需要时用来进行DRDA协议支持的数据类型转换。源端102进而包括多数据库软件服务器124,例如图1所示的连接于交叉加载软件112和DBMS家族108之间的数据连接器(DataJoiner)模块,用于从不同的DBMS迁移数据(例如从Oracle到DB2)。
本发明实施例的方法包括下面的步骤。首先,用户确定要发送的数据,数据可能在不同的数据源端,并以不同的格式存储。例如,她/他可以识别驻留在DB2、Oracle、Sysbase、Informix、IMS或VSAM数据库,SQL服务器或NCR Teradata中的DBMS家族108的表格中的某些记录与他/她的应用程序相关并应当迁移。数据源识别中所涉及的步骤的精确特性可以改变。本发明的优选实施例通过发布SQL命令来实现,但能够使用许多的其它方法。
如果使用的数据来自分布式数据源,在下一步,用户使用软件工具从包含数据的DBMS家族108连接到数据源,并使用该软件工具注册这些数据对象。如图1所示的数据连接器124,这种软件工具具有多数据库软件服务器的能力,有时称为联合DBMS(federated DBMS),它可以访问多数据源,其中的每一个可以驻留在不同的系统中,并以不同的格式存储。本发明的优选实施例使用IBM的DB2数据连接器多数据库软件服务器124,例如用于DB2V6.1的数据连接器V2.1,来实现与包括Oracle DBMS、Sybase DBMS、Informix DBMS等的DBMS家族108的连接。
然后,使用软件工具,即多数据库软件服务器,用户从数据源创建将来自先前注册的数据的多个多属性合并的命令。该步骤的一个实现可能包括交叉加载软件114使用一条SQL SELECT语句访问关系DBMS表格或景象(view),该景象基于应用程序的特定需求连接从不同的,有时是远程的数据源(例如表格)来的数据。每一句SELECT命令适当的过滤数据,有时进行选择以将得到的记录或景象限制为与一个或多个数据源(表)相关联的行和列的子集。对SELECT语句,用户必须声明一个指针。这可以允许标准的数据库连接机制连接到软件工具,即多数据库软件服务器,以便逐个记录地索引数据,仿佛数据来自单一的表。
接下来,在目标端100的交叉加载软件114中的标准的SQL命令,例如LOAD命令,可用于建立与上述声明的指针的连接,用于加载由上述定义的景象所代表的数据。一旦完成上面略述的步骤,程序员能以隐藏他们所需访问数据的分布式属性的方式获得对数据的访问。这推动了许多有用的商业应用程序地有效开发,因而最小化了开发和维护成本。使用本发明,用户能够将应用程序从DB2家族的一个成员迁移到另一个成员。表可能大于服务器操作系统所处理的文件大小。
由于当前发明使用标准的SQL,它能够使用三部分名称来通过数据位置、方案名称和表格名称标识源数据(如对分布式访问所要求的那样)。另一实施例使用CONNECT语句来连接源端102和目标端100。本发明优选使用动态SQL语句构造SQL语句的实用程序块。EXEC SQL实用程序命令用于指针声明。一些其它的可动态执行的SQL语句也可以在同一EXEC SQL命令中定义。
下面的语法图说明EXEC SQL命令的格式,其中在同一程序块中“declare cursor spec”命令后面可跟随“non-select dynamicSQL statement”:
>>--EXEC--SQL-- -declare cursor spec------- ---ENDEXEC------->
            ‘-non-select dynamic SQL statement-’
短语“declare cursor spec”作为DECLARE CURSOR语句输入来定义指向SELECT语句结果的指针。它具有下述SQL格式:
>>--DECLARE--cursor-name--CURSOR--FOR--select-statement--ENDEXEC-->
短语“cursor-name”识别一个指针。“select-statement”确定SQL SELECT命令,用于从由在指针声明的语句中声明的指针所指向的表格中提供结果行。
短语“non-select dynamic SQL statement”指向用于执行在EXECUTE IMMEDIATE模式中的指定SQL语句的命令。“non-select dynamic SQL statement”可以是下述SQL语句中的一个:
°ALTER            °RENAME
°COMMENT ON       °REVOKE
°COMMIT           °ROLLBACK
°CREATE           °SET CURRENT DEGREE
°DELETE           °SET CURRENT LOCALE LC_CTYPE
°DROP             °UPDATE
°EXPLAIN          °SET CURRENT OPTIMIZATION HINT
°GRANT            °SET CURRENT PATH
°INSERT           °SET CURRENT SQLID
°LABEL ON         °SET CURRENT PRECI SION
°LOCK TABLE       °SET CURRENT RULES
SQL语句执行时,指定的语句串被解析和校验错误。如果SQL语句无效,它就不会被执行,且阻止它执行的错误状态被报告。如果SQL语句有效,但是在它执行时发生了错误,该错误状态被报告。如果语句完成需要花费过多的处理器时间,DB2可以停止SQL语句的执行。当这种情况出现时,发生错误并进行报告。无论何时错误发生,实用程序会终止。
一个用来声明一个指针以从MYSOURCE示例表中选取所有的行和列的有效DECLARE CURSOR语句的例子如下所示:
EXEC SQL
 DECLARE C1 CURSOR FOR SELECT*FROM MYSOURCE
ENDEXEC
LOAD命令可以有多种选项。图2根据本发明的优选实施例图解说明了LOAD命令几个选项的语法格式。
在LOAD命令中“INCLUDE cursor-name”参数的使用是本发明的优选实施例。LOAD命令指定同一指针指向要卸载的源端数据。因而,指针必定已经在“declare cursor for select”语句中声明。在SELECT语句表中的列名称一定要与目标表中的列名称相一致,以接收加载的记录。然而,选择列表中的“AS”子句能够用来改变SELECT语句返回的列名称。
下面的两个例子说明了本发明的优选实施例的实现。
例1:此例声明指针C1并把记录从源端表格中加载到目标端表格中,这作为声明指针C1的SELECT语句的结果而得到。
LOAD命令被修改以接受INCURSOR参数,用于逐个记录的传输模式,这代替了用于常规的整个文件传输的INDDN参数。
EXEC SQL
 CREATE TABLE MYTARGET LIKE MYSOURCE
ENDEXEC
EXEC SQL
 DECLARE C1 CURSOR FOR SELECT*FROM MYSOURCE
ENDEXEC
LOAD DATA
 INCURSOR(C1)
 REPLACE
 INTO TABLE MYTARGET
本发明也具有可以以多个并行流(即以流水线模式)执行数据传输的优选实施例。
例2:本例说明并行加载数据到MYTRAGET表格的多个分区的方法,数据作为SELECT语句的结果而得到,如为每一分区指针C1-C4所声明的那样。执行LOAD命令以在由分区指针C1-C4所指向的四个并行流中取数据(流水线模式),
EXEC SQL
 DECLARE C1 CURSOR FOR SELECT*FROM MYSOURCE
 WHERE EMPNO<=’099999’
ENDEXEC
EXEC SQL
 DECLARE C2 CURSOR FOR SELECT*FROM MYSOURCE
 WHERE EMPO>’099999’AND EMPNO<=’199999’
ENDEXEC
EXEC SQL
 DECLARE C3 CURSOR FOR SELECT*FROM MYSOURCE
 WHERE EMPO>’199999’AND EMPNO<=’299999’
ENDEXEC
EXEC SQL
 DECLARE C4 CURSOR FOR SELECT*FROM MYSOURCE
 WHERE EMPO>’299999’AND EMPNO<=’999999’
ENDEXEC
LOAD DATA
 INTO TABLE MYTARGET PART 1 REPLACE INCURSOR(1)
 INTO TABLE MYTARGET PART 2 REPLACE INCURSOR(2)
 INTO TABLE MYTARGET PART 3 REPLACE INCURSOR(3)
 INTO TABLE MYTARGET PART 4 REPLACE INCURSOR(4)
本发明优选通过DRDA处理分布式数据库之间的交互作用,当程序员需要访问存储在DBMS家族108的多个DBMS中的数据时,这可以简化开发任务。DRDA提供公用的SQL API,位置透明以及(在某些情况)功能性补偿。此外,可以执行多数据库连接和联合,而不用手动连接每一个数据源,从每一个数据源检索必要的数据,在一些应用程序管理的数据结构中临时存储这些数据,并编码必要的逻辑来处理与连接或联合操作相关联的数据集成。这些工作通过多数据库软件服务器自动处理,它提供物理上可能分布并存储于不同的DBMS的数据的单端映像(single-site image)。
本发明的优选实施例消除了从不同数据源来的数据的物理合并的需要,因此避免了所涉及的软件和劳动力开销,也避免了由于数据等待时间所引入的逻辑曝露问题。它们也减轻了程序员编写用于分别连接到每一个所需的数据源,读入任何所需数据,使从不同数据源读入的结果相关(或连接),执行任何所需数据翻译的软件等的负担。这是完全超过了许多程序员技术水平的实质性工作量,并会导致大量的成本。此外,程序员不必拥有不同数据源间的差别的详细知识。
本发明优选根据RDRA协议使用数据格式,并通过TCP/IP数据库连接通信线路应用千兆以太网传送数据。它可以用来从本地或远程目标端表格加载数据。由于本发明的高速度、稳定性、高效性和灵活性,它尤其对来自主机计算机(源端)仓库(CC或可视仓库)的大量数据的常规自动更新(下载)有用。它也能够用于除了DB2的其它DBMS,例如DL/I或VSAM。本发明可以用于不同操作系统,例如OS/390,UNIX,Windows,OS/2等,支持的DBMS。它支持实用程序中的DDL和DML执行,例如CREATE/DROP表,GRANTs INSERT/UPDATE/DELETE,等,而无需使用DSNTIAD。
本发明的优选实施例可以支持由数据转换模块122执行的几种数据类型转换,例如数字的,ASCII/EBCIDIC/Unicode、代码页等,以及取数据块,且没有文件大小的限制或行和域的开销。这些简化了应用程序的设计、开发和维护,并提供了更可靠的、具有当前不能实现的功能的应用程序。
本发明优选实施例的上述描述为了描述和图解说明而提出。它不意指详尽的或限制本发明公开的精确形式。根据上述的教导有可能有许多修改和变化。这意指本发明的范围不被详细描述所限制而是被关于本发明随附的权利要求所限制。

Claims (16)

1.在通过数据库连接通信线路连接源端和目标端的计算机系统网络中逐个记录地从远程数据源加载数据的方法,该方法包括下列步骤:
(a)连接源端到至少一个数据源和具有对DBMS的多数据库访问的软件服务器;
(b)在目标端通过一组SQL语句请求从源端加载数据;并
(c)根据多数据库访问通信协议,通过数据库连接通信线路逐个记录地输送数据,其中在源端卸载记录的同时目标端加载记录。
2.根据权利要求1所述的方法,其特征在于一旦一个或多个数据记录从源端卸载,数据记录就通过数据库连接通信线路被传送,并且一旦记录被传送到目标端,目标端的数据加载便开始。
3.根据权利要求1所述的方法,其特征在于数据加载以流水线的方式执行,以多个并行流将数据记录加载到多个分区中,所述多个并行流被多个数据源分区指针所指向。
4.根据权利要求1所述的方法,其特征在于该组SQL语句包括在EXECUTE IMMEDIATE模式中所执行的动态可执行SQL语句。
5.根据权利要求1所述的方法,其特征在于该组SQL语句包括:
SQL DECLARE CURSOR FOR SELECT语句,用于定义分别索引从服务器端卸载的每个SELECT语句结果记录的指针,以及
LOAD命令和具有相同的指针名称、用于指向目标端接收记录的INCURSOR运算符。
6.根据权利要求1所述的方法,其特征在于服务器端具有对多个数据源的访问,它们是物理上分布的并且不同的DBMS,驻留于不同的硬件系统且以不同格式存储数据。
7.根据权利要求6所述的方法,其特征在于服务器端从多个数据源加载数据,进而包括采用用于合并来自多个数据源的数据的装置的步骤。
8.根据权利要求1所述的方法,其特征在于数据库连接通信线路使用TCP/IP协议,且具有对DBMS的多数据库访问的软件服务器包括分布式关系数据库体系。
9.用于逐个记录地从远程数据源加载数据的系统,包括:
连接到至少一个数据源并具有带有对DBMS的多数据库访问的软件服务器的源端;
通过一组SQL语句请求从源端加载数据的目标端;以及
根据多数据库访问通信协议,逐个记录地输送数据的数据库连接通信线路,其中在源端卸载记录的同时目标端加载记录。
10.根据权利要求9所述的系统,其特征在于一旦一个或多个数据记录从源端卸载,数据记录就通过数据库连接通信线路被传送,并且一旦记录被传送到目标端,目标端的数据加载便开始。
11.根据权利要求9所述的系统,其特征在于数据加载以流水线的方式执行,以多个并行流将数据记录加载到多个分区中,所述多个并行流被多个数据源分区指针所指向。
12.根据权利要求9所述的系统,其特征在于该组SQL语句包括在EXECUTE IMMEDIATE模式中所执行的动态可执行SQL语句。
13.根据权利要求9所述的系统,其特征在于该组SQL语句包括:
SQL DECLARE CURSOR FOR SELECT语句,用于定义分别索引从服务器端卸载的每个SELECT语句结果记录的指针,以及
LOAD命令和具有相同的指针名称、用于指向目标端接收记录的INCURSOR运算符。
14.根据权利要求9所述的系统,其特征在于服务器端具有对多个数据源的访问,它们是物理上分布的且不同的DBMS,驻留于不同的硬件系统且以不同格式存储数据。
15.根据权利要求14所述的系统,其特征在于服务器端从多个数据源加载数据,进而包括用于合并来自多个数据源的数据的装置。
16.根据权利要求9所述的系统,其特征在于数据库连接通信线路使用TCP/IP协议,且具有对DBMS的多数据库访问的软件服务器包括分布式关系数据库体系。
CNB028057082A 2001-02-28 2002-02-25 从远程数据源加载数据 Expired - Fee Related CN1277231C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US27268001P 2001-02-28 2001-02-28
US60/272,680 2001-02-28

Publications (2)

Publication Number Publication Date
CN1541363A CN1541363A (zh) 2004-10-27
CN1277231C true CN1277231C (zh) 2006-09-27

Family

ID=23040811

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB028057082A Expired - Fee Related CN1277231C (zh) 2001-02-28 2002-02-25 从远程数据源加载数据

Country Status (8)

Country Link
US (1) US7418441B2 (zh)
EP (1) EP1390878A2 (zh)
JP (1) JP2004532465A (zh)
KR (1) KR20030082602A (zh)
CN (1) CN1277231C (zh)
CA (1) CA2441960C (zh)
TW (1) TW591422B (zh)
WO (1) WO2002084522A2 (zh)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1271342A1 (en) * 2001-04-30 2003-01-02 Sun Microsystems, Inc. Method for accessing database table columns
US20030177146A1 (en) * 2002-03-18 2003-09-18 International Business Machines Corporation Method, system, and program product for migrating data from one data base management system to another data base management system
EP2264628A1 (en) * 2002-09-18 2010-12-22 Netezza Corporation Intelligent storage device controller
US8341120B2 (en) * 2003-09-05 2012-12-25 Oracle International Corporation Apparatus and methods for transferring database objects into and out of database systems
CN1307585C (zh) * 2003-12-31 2007-03-28 中兴通讯股份有限公司 一种用于实现数据库多表查询的数据处理方法
US7577640B1 (en) * 2004-03-31 2009-08-18 Avaya Inc. Highly available, highly scalable multi-source logical database with low latency
CN100397827C (zh) * 2006-03-18 2008-06-25 华为技术有限公司 一种单板软件存储和加载的方法及系统
JP5238219B2 (ja) * 2007-10-29 2013-07-17 株式会社東芝 情報処理システム及びパイプライン処理制御方法
US8190596B2 (en) * 2007-11-28 2012-05-29 International Business Machines Corporation Method for assembly of personalized enterprise information integrators over conjunctive queries
US8145684B2 (en) * 2007-11-28 2012-03-27 International Business Machines Corporation System and computer program product for assembly of personalized enterprise information integrators over conjunctive queries
US8655833B2 (en) * 2008-06-17 2014-02-18 Qualcomm Incorporated Database architecture for supporting group communications among wireless communication devices
US8813048B2 (en) * 2009-05-11 2014-08-19 Accenture Global Services Limited Single code set applications executing in a multiple platform system
US8832699B2 (en) 2009-05-11 2014-09-09 Accenture Global Services Limited Migrating processes operating on one platform to another platform in a multi-platform system
WO2011025892A1 (en) * 2009-08-27 2011-03-03 Mastercard International Incorporated Multi-database query system and method
US9665620B2 (en) 2010-01-15 2017-05-30 Ab Initio Technology Llc Managing data queries
CN102486798A (zh) * 2010-12-03 2012-06-06 腾讯科技(深圳)有限公司 数据加载的方法及装置
US8543581B2 (en) 2011-04-04 2013-09-24 Microsoft Corporation Synchronizing records between databases
US10546057B2 (en) * 2011-10-28 2020-01-28 Microsoft Technology Licensing, Llc Spreadsheet program-based data classification for source target mapping
US8938480B2 (en) * 2011-12-29 2015-01-20 Teradata Us, Inc. Techniques for fast loading of data from an external distributed file system to a database management system
US10324917B2 (en) * 2012-10-15 2019-06-18 Qliktech International Ab Methods and systems for data management
CN107622025B (zh) * 2012-11-22 2021-03-23 华为终端有限公司 数据传输的方法及设备
CN104281587B (zh) * 2013-07-03 2018-05-11 阿里巴巴集团控股有限公司 一种建立连接的方法及装置
CN103544285B (zh) * 2013-10-28 2017-09-26 华为技术有限公司 一种数据加载方法及装置
US10417281B2 (en) * 2015-02-18 2019-09-17 Ab Initio Technology Llc Querying a data source on a network
CN106155878B (zh) * 2015-03-24 2018-08-10 富士施乐实业发展(中国)有限公司 用于在数据库中创建供软件测试用的测试环境的方法和装置
CN105760517A (zh) * 2016-02-25 2016-07-13 浪潮(北京)电子信息产业有限公司 将数据从Oracle数据库迁移至DB2数据库的方法和装置
US11449497B1 (en) * 2016-10-21 2022-09-20 Jpmorgan Chase Bank, N.A. Method and system for implementing dynamic stored procedures
US10649965B2 (en) 2016-11-14 2020-05-12 International Business Machines Corporation Data migration in a networked computer environment
CN111797070A (zh) * 2019-04-08 2020-10-20 杭州晨熹多媒体科技有限公司 票务数据处理方法及装置
CN110134695B (zh) * 2019-05-21 2022-08-16 电子科技大学 一种面向流水线结构化数据查询的数据库智能分区方法
US11042517B2 (en) * 2019-06-07 2021-06-22 Sap Se Online migration of database systems
US11093223B2 (en) 2019-07-18 2021-08-17 Ab Initio Technology Llc Automatically converting a program written in a procedural programming language into a dataflow graph and related systems and methods
CN112328408B (zh) * 2020-10-21 2024-09-10 中国建设银行股份有限公司 数据处理方法、装置、系统、设备及存储介质
CN112579320A (zh) * 2020-12-16 2021-03-30 中国建设银行股份有限公司 一种开放系统与zos系统之间的通信方法及装置
CN113032385B (zh) * 2021-05-31 2021-09-07 北京江融信科技有限公司 一种易扩展可配置化的数据备份系统及方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5408656A (en) 1992-09-23 1995-04-18 International Business Machines Corporation Method and system for non-specific address data retrieval in a data storage subsystem which includes multiple datasets stored at specific addresses
US5511186A (en) * 1992-11-18 1996-04-23 Mdl Information Systems, Inc. System and methods for performing multi-source searches over heterogeneous databases
US5596744A (en) * 1993-05-20 1997-01-21 Hughes Aircraft Company Apparatus and method for providing users with transparent integrated access to heterogeneous database management systems
US5410693A (en) 1994-01-26 1995-04-25 Wall Data Incorporated Method and apparatus for accessing a database
US6381595B1 (en) * 1994-09-29 2002-04-30 International Business Machines Corporation System and method for compensation of functional differences between heterogeneous database management systems
GB9605473D0 (en) 1996-03-15 1996-05-15 Int Computers Ltd Parallel searching technique
US6044216A (en) * 1996-06-24 2000-03-28 Oracle Corporation Method and apparatus for implementing cursor variables for accessing data from database
US6006229A (en) 1996-08-19 1999-12-21 Extended Systems, Inc. Xbase transaction processing system
US5884327A (en) 1996-09-25 1999-03-16 International Business Machines Corporation System, method and program for performing two-phase commit with a coordinator that performs no logging
US5987472A (en) * 1997-03-31 1999-11-16 Combustion Engineering, Inc. System and method for handling database cross references
US6151602A (en) * 1997-11-07 2000-11-21 Inprise Corporation Database system with methods providing a platform-independent self-describing data packet for transmitting information
JP2000132435A (ja) * 1998-10-29 2000-05-12 Hitachi Ltd 異種データベース管理システム間のデータ整合処理装置
US6339772B1 (en) * 1999-07-06 2002-01-15 Compaq Computer Corporation System and method for performing database operations on a continuous stream of tuples
US6594651B2 (en) * 1999-12-22 2003-07-15 Ncr Corporation Method and apparatus for parallel execution of SQL-from within user defined functions

Also Published As

Publication number Publication date
US20020161748A1 (en) 2002-10-31
WO2002084522A3 (en) 2003-12-11
WO2002084522A2 (en) 2002-10-24
JP2004532465A (ja) 2004-10-21
TW591422B (en) 2004-06-11
CN1541363A (zh) 2004-10-27
EP1390878A2 (en) 2004-02-25
KR20030082602A (ko) 2003-10-22
US7418441B2 (en) 2008-08-26
CA2441960A1 (en) 2002-10-24
CA2441960C (en) 2010-11-09

Similar Documents

Publication Publication Date Title
CN1277231C (zh) 从远程数据源加载数据
Camacho-Rodríguez et al. Apache hive: From mapreduce to enterprise-grade big data warehousing
US11354284B2 (en) System and method for migration of a legacy datastore
JP4627777B2 (ja) データに関数を適用した結果に対する構造化インデックス
CN1297904C (zh) 使用动态内容表和内容表集的分级存储管理方法和装置
US8056054B2 (en) Business information warehouse toolkit and language for warehousing simplification and automation
US20210224235A1 (en) Parallel and efficient technique for building and maintaining a main memory csr based graph index in a rdbms
CN1975731A (zh) 用于管理对数据库中数据的访问的系统和方法
US20100287208A1 (en) Object-Relational Based Data Access for Nested Relational and Hierarchical Databases
CN1705945A (zh) 全局查询相关属性
CN1713179A (zh) 在对象模型中的影响分析
US20060195437A1 (en) Materialized query table matching with query expansion
US20070038995A1 (en) System and method for navigating beans using filters and container managed relationships
US8639717B2 (en) Providing access to data with user defined table functions
US7925665B2 (en) Using query persistence for efficient subquery evaluation in federated databases
CA2327948A1 (en) System and method for accessing non-relational data by relational access methods
JP5174352B2 (ja) データベースシステムにおけるラージオブジェクトインフラストラクチャのためのシステムおよび方法
US10528538B2 (en) Leveraging SQL with user defined aggregation to efficiently merge inverted indexes stored as tables
US6845376B1 (en) Method for accessing hierarchical data via JDBC
US20050114404A1 (en) Database table version upload
US8176035B2 (en) Detecting and tracking monotonicity for accelerating range and inequality queries
US7299225B2 (en) High performance predicate push-down for non-matching predicate operands
US11977582B2 (en) Global index with repartitioning operator
EP1128281A2 (en) System and method for accessing non-relational data by relational access methods
Tan A database optimization model for java web architecture

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20060927

Termination date: 20120225