JP2005524909A - データベースシステムにおける変更データ収集のための方法および装置 - Google Patents

データベースシステムにおける変更データ収集のための方法および装置 Download PDF

Info

Publication number
JP2005524909A
JP2005524909A JP2004504145A JP2004504145A JP2005524909A JP 2005524909 A JP2005524909 A JP 2005524909A JP 2004504145 A JP2004504145 A JP 2004504145A JP 2004504145 A JP2004504145 A JP 2004504145A JP 2005524909 A JP2005524909 A JP 2005524909A
Authority
JP
Japan
Prior art keywords
change
data
database
change data
window
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.)
Granted
Application number
JP2004504145A
Other languages
English (en)
Other versions
JP4647308B2 (ja
Inventor
ノーコット,ウィリアム・ディ
ブレイ,マイケル
ガラネス,ジョン
ビンガム,ポーラ
グスマン,レイモンド
Original Assignee
オラクル・インターナショナル・コーポレイション
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 オラクル・インターナショナル・コーポレイション filed Critical オラクル・インターナショナル・コーポレイション
Publication of JP2005524909A publication Critical patent/JP2005524909A/ja
Application granted granted Critical
Publication of JP4647308B2 publication Critical patent/JP4647308B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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
    • 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/23Updating
    • G06F16/2358Change logging, detection, and notification
    • 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/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface
    • 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/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99954Version management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (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

変更データ収集の方法が開示されており、オンライントランザクション処理(OLTP)テーブルに対して行なわれた修正(たとえば挿入、更新、および削除)は、変更テーブルと呼ばれるデータベースオブジェクトに保持される。変更テーブルの変更データは次に、パブリケーション−サブスクリプションモデルに従ったような制御された態様で、分析アプリケーションに利用されるようになる。

Description

発明の分野
この発明はデータベースシステムに関し、より特定的には、データベースシステムにおける変更データ収集のための方法および装置に関する。
発明の背景
多くの企業および他の大きな組織は今日、リレーショナルデータベース管理システムを用いて商取引を実行し、追跡する。これらのシステムは、オンライントランザクション処理(OLTP)システムとして公知である。たとえば、インターネットを通して製品またはサービスを販売する会社が、OLTPシステムを用いて、各商品についての価格情報、各購入者についての請求および出荷情報、ならびに購入者が行なった各発注についての販売情報を記録する場合がある。OLTPシステムを用いる企業の他の例は、航空会社、銀行、通信販売会社、スーパーマーケット、および製造業者を含む。たとえば1秒あたりのトランザクション数といったOLTPシステムの性能は企業にとって非常に重要であり、したがって、絶対に必要でない限り、OLTPシステムの性能を低下させないことが望ましい。
OLTPシステムにおいて生成および記録されたデータは、大抵の企業にとって貴重である。なぜなら、企業はこのデータを集約および分析して、ある特定の月についての製品販売を把握し、製品の人気における変化する傾向を予測し、収益性の高い、または儲からない製品ラインを識別し、もしくは他のやり方で業務を評価することができるためである。しかしながら、このデータを集約および分析することはコンピュータ的に不経済であり、OLTPシステム自体において実行されると、OLTPシステムの性能を低下させる。したがって、OLTPシステムを有する企業にとっては、OLTPデータベースに含まれる情報を集め、集約し、分析するために、「データウェアハウス」として一般に公知である別個のコンピュータシステムを設立することが一般的になっている。データウェアハウスは、ギガバイト〜多テラバイト単位のデータ(何兆ものバイト)の範囲にわたって非常に大きく増大可能である。データをOLTPシステムにおけるその元のソースからデータウェアハウスに動かすタスクは一般に、データ抽出、伝送およびロード(ETL)と呼ばれている。
従来のデータ抽出、伝送およびロードメカニズムは煩わしい。典型的なアプローチでは、データベースアドミニストレータは一般に、OLTPシステムのテーブルの内容全体をフラットファイルにダンプし、そのフラットファイルをステージングシステムに伝送し、次に、フラットファイル内のデータをデータウェアハウスにロードする。このアプローチでは、抽出、伝送およびロードされたデータの量は、OLTPシステム上のデータが実際にはほんの少しの割合しか新しくなっていない場合でさえ、OLTPシステム内のデータの量と同様に莫大である。したがって、OLTPシステムのデータベーステーブルに対して変更されたデータのみを収集することによって抽出、伝送およびロードされたデータの量を削減する方法を考案することに、多大な関心が寄せられてきた。
OLTPシステムデータベーステーブルに対して変更されたデータを収集するための典型的な一アプローチは、OLTPシステムデータベーステーブルに列を追加して、タイムスタンプまたは連続番号を記憶させ、最新のタイムスタンプまたは連続番号を有するデータを条件付きで抽出することである。このアプローチはいくつかの欠点を有する。第1に、このアプローチは、変更を追跡するためにタイムスタンプを保有する追加の列を加える
といった、スキーマへの変更を必要とする。管理上の悪夢はこのスキーマ変更だけではなく、OLTPシステムの多くのベンダーは、機密保護、保守、および責任という理由で、顧客がスキーマに変更を加えることを一切禁止している。
第2に、新しい、または変更されたデータのすべての行についてタイムスタンプを記憶させる際に性能瞬断が起こるが、性能はOLTPシステムにとって重大である。第3に、タイムスタンプは、挿入または更新によってどの行が変更したかを容易に識別できるが、新しく挿入された行と更新された古い行とを区別できない。さらに、タイムスタンプは削除された行を識別できない。なぜなら、削除された行はもはやデータベースに存在しないためである。この種の変更情報の欠如により、OLTPデータのサマリーを適正に更新することは困難になっており、サマリーデータの不経済な再計算を結果としてもたらす。
従来のフラットファイルアプローチは、データ伝送にとっても不利である。フラットファイルはデータベース管理システムの管理外にある。このため、フラットファイルは、頑強なデータ保護のためのクラッシュ回復、および、効率よいデータ処理のためのデータ区分化ならびに索引付けといった、最新のデータベース管理システムによって提供されるコード化したファイル管理機能を利用できない。したがって、変更されたデータをフラットファイルに記憶させることは、そのデータが失われる、または壊されるリスクを高め、データ分析アプリケーションによる使用のために変更データをデータウェアハウスに記憶されたデータと結合させる、または組合せるタスクを非常に複雑にする。
データロードに関しては、従来のフラットファイルアプローチはまた、データ損失および二重カウントを被っている。フラットファイルアプローチでは、追加的な変更データを有するフラットファイルを更新するプロセスと、変更データを消費および分析するアプリケーションとの間に連係がない。フラットファイルがデータウェアハウスシステムにとって大きくなりすぎると、システムアドミニストレータは自由裁量によってフラットファイル内の最も古いデータを削除しがちである。データ分析アプリケーションが削除されたデータをまだ処理していなかった場合、そのデータはアプリケーションに対して永久に失われ、結果としてOLTPデータの不正確なサマリーをもたらす。他方、データ分析アプリケーションがデータを処理するためにフラットファイル上で多数のパスを行なう必要がある場合、データ分析アプリケーションは、フラットファイルに新しく追加されたデータを識別できない。通常、データ分析アプリケーションは、フラットファイル内の全データを再処理するようにされ、結果として古いデータの二重カウントをもたらす。
したがって、効率よく、スキーマ変更を必要とせず、頑強で、データ損失または二重カウント問題を被っていないデータ抽出、伝送およびロード手法に対する要望がある。
発明の概要
この発明は、変更テーブルと呼ばれるデータベースオブジェクト内のOLTPテーブルになされた修正(たとえば挿入、更新、および削除)を収集することによって、これらのおよび他の要望に対処する。変更テーブル内の変更データは次に、変更データの損失または二重カウントを防止するために、たとえばパブリケーション−サブスクリプションモデルに従った制御された方法で分析アプリケーションに利用されるようになる。
あるパブリケーション−サブスクリプションモデルでは、パブリケーションは、変更テーブルの作成および保持を含む。好ましい一実施例では、変更テーブルは、OLTPシステム上の対応する「ソーステーブル」に対する変更データを含むデータウェアハウス上の
データベースオブジェクトである。変更テーブルはトランザクションの一貫性のために「変更セット」に論理的にグループ化されてもよく、変更テーブルには時折、OLTPシステム上の対応するソーステーブルから抽出された新しい変更データがロードされる。変更テーブルが無制限に大きくなるのを防止するため、および、データ損失問題に対処するために、変更テーブルの内容は、その内容がもはやどのサブスクライバからも必要とされなくなった場合にのみ削除される。
サブスクリプションは、変更データがデータ損失または二重カウントなく検索されるように分析アプリケーションが変更テーブル内の変更データへのアクセスを要求するためのメカニズムを含む。具体的には、(たとえば変更データが処理済であるために)変更データはもはや必要ではないとサブスクライバアプリケーションのすべてが示した場合にのみ、変更データは変更テーブルから削除される。さらに、新しい変更データに対する要求に応答して変更データをサブスクライバに提供するだけで、二重カウントは回避される。このため、サブスクライバは、変更テーブルに収集中およびロード中の新しい変更に関係なく、変更テーブルの同じ行を必要に応じて何度でも再読出できる。
したがって、この発明の一局面は、データベースシステムのソースオブジェクトに対応するデータベースオブジェクトを保持することによって、データベースシステムから収集された変更データを管理するための方法およびソフトウェアに関する。このデータベースオブジェクトは、ソースオブジェクトに対して実行された(たとえば挿入、削除、または更新といった)少なくとも1つの修正を示す変更データを含む。あるアプリケーションに関して、変更データのウィンドウが、第1の時点と第2の時点との間でコミットされたデータベースオブジェクト内のすべての変更データを含むように規定される。第1および第2の時点は、日付の物理的時間(たとえば2000年7月14日の正午12時)、または論理的時間(たとえばシステム変更番号123423、この場合、データベースシステム上の各動作は単調に増加するシステム変更番号で印される)に関して規定されてもよい。ウィンドウは、第2の時点を前に動かすことによって拡張可能であり、または、第1の時点を第2の時点と一致させることによってパージ可能である。アプリケーションからの問合せに応答して、ウィンドウに含まれるデータベースオブジェクトからの変更データのみがアプリケーションに提示される。ソースオブジェクトからの新しい変更データはデータオブジェクトに追加されてもよい。しかしながら、その新しい変更データのみが、ウィンドウの拡張後、アプリケーションに提示される。
さまざまな実施例において、データベースオブジェクトは変更テーブルとして実現可能であり、変更テーブルは、ここで「変更セット」と呼ばれる変更テーブルのグループに関連付けられ得る。変更セットは、トランザクションの一貫性のために、および、変更セットにおける変更テーブルの各々がたとえば2001年6月といったある規定された期間内の変更データのみを含むように保持され得る。データベースシステム上の同じソースオブジェクトを、異なる変更セットにおける多数の変更テーブルと関連付けることができる。さらに、多数のアプリケーションがそれらのそれぞれのウィンドウを同じデータベースオブジェクト上に規定することが可能であり、それらの各ウィンドウは異なる範囲の変更データに対するものであり得る。
この発明のさらに別の局面、特徴、および利点は、この発明を実行するために考えられる最良の態様を含む多数の特定の実施例および実現化例を単に例示することにより、以下の詳細な説明から容易に明らかとなる。この発明は他のおよび異なる実施例でも可能であり、そのいくつかの詳細は、この発明の精神および範囲から全く逸脱することなく、さまざまな明らかな点において修正可能である。したがって、図面および説明は本質的に例示的なものであって、限定的なものではないと考えられるべきである。
この発明を、限定のためではなく例示のために、添付図面の図に示す。図中、同様の参照番号は同様の要素を示す。
好ましい実施例の説明
変更データ収集のためのシステム、方法、およびソフトウェアを説明する。以下の記載では、説明のため、この発明の完全な理解を提供するために多数の特定の詳細について述べる。しかしながら、当業者には、この発明がこれらの特定の詳細なしで、または同等の構成で実践され得ることは明らかである。他の点では、この発明を不必要に不明瞭にしないよう、周知の構造および装置をブロック図の形で示す。
データベース管理システムでは、データは1つ以上のデータコンテナに記憶され、各コンテナはレコードを含み、各レコード内のデータは1つ以上のフィールドに編成される。リレーショナルデータベースシステムでは、データコンテナはテーブルと呼ばれ、レコードは行と呼ばれ、フィールドは列と呼ばれる。オブジェクト指向データベースでは、データコンテナはオブジェクトクラスと呼ばれ、レコードはオブジェクトと呼ばれ、フィールドは属性と呼ばれる。他のデータベースアーキテクチャは他の用語を使う場合がある。
この発明を実現するシステムは、どの特定の種類のデータコンテナまたはデータベースアーキテクチャにも限定されない。しかしながら、説明のため、ここで用いられる用語および例はリレーショナルデータベースに典型的に関連するものとする。このため、「テーブル」、「行」、および「列」という用語は、ここではそれぞれ、データコンテナ、レコード、およびフィールドを指すために使用されるものとする。
アーキテクチャ概要
図1は、ソースシステム110とステージングシステム120とを含むこの発明の一実施例のアーキテクチャを示す。ソースシステム110は、典型的には、ある企業についてのトランザクションを実行し追跡するためのオンライントランザクション処理(OLTP)である。たとえば、ソースシステム110は、企業の従業員または顧客と対話する責任のある業務アプリケーション111のホストとして働く。業務アプリケーション111のユーザからのコマンドおよび問合せに応答して、業務アプリケーション111は、データを記憶および検索するためにOLTPデータベース113と相互作用する。
ステージングシステム120は、この例ではデータウェアハウスとして機能しながら、1つ以上のサブスクライバアプリケーション121、123のホストとして働く。一般性を失うことなく、2つのサブスクライバアプリケーション121、123が図示されているが、この発明の一実施例の動作の過程において任意の数が作り出されてもよい。サブスクライバアプリケーション121、123は、OLTPデータベース113から抽出され、ステージングシステム120に伝送され、分析データベース125にロードされた変更データを集約および分析する責任を有する。好ましくは、OLTPデータベース113からフラットファイルを用いずにデータを抽出するために、2つのメカニズムのうちの一方が採用される。これらのメカニズムはそれぞれ、「同期抽出」および「非同期抽出」と呼ばれる。
同期抽出メカニズムでは、OLTPデータベース113に各変更が行なわれてステージングシステム120に伝送される際にその変更を収集するために、トリガ115が採用される。ステージングシステム120において、これらの変更は次に、パブリッシャプロセス127によって統合され、分析データベース125の変更テーブル(図示せず)にロードされる。
非同期抽出メカニズムについては、動作の通常過程においてOLTPデータベース113により生成される回復ログ117を、ログシッパー119が定期的に複製する。回復ログ117は、OLTPデータベース113に適用されたすべての変更を含んでおり、OLTPデータベース113内のデータをバックアップし、システムクラッシュの場合にデータを復元するために用いられる。ログシッパー119は、オペレーティングシステムディレクトリとして実現可能な、変更ソース131と呼ばれるステージングシステム120の領域に、回復ログ117を複製する。パブリッシャ127はログビューワプロセス129と相互作用して、回復ログの内部実現詳細を認識する必要なく、変更ソース129内の運ばれた回復ログから変更データを得る。パブリッシャ127は次に、ログビューワプロセス129を介して得た変更データを、分析データベース125内の変更テーブルにロードする。
変更データを管理するためのオブジェクト
この発明の一局面によれば、OLTPデータベース113から抽出された変更データは、フラットファイル内にではなく、たとえば分析データベース125などのデータベース管理システムの管理下にある「変更テーブル」としてここに言及される1つ以上のデータベースオブジェクト内に保持される。データベース管理システムは機密保護のためのクラッシュ回復、性能のための索引付けなどの特徴を提供するため、変更データを有利に保有するためにデータベースオブジェクトを使用することは、フラットファイルを使用する場合と比較して、これらの有益な特徴を追加的なプログラミングなしで達成する。
例として図2を参照すると、変更データ収集の対象であるOLTPデータベース113上の各ソーステーブルまたはデータベースオブジェクトは、分析データベース125内の対応する変更テーブル211、213、221、223、225と関連付けられている。トランザクションの一貫性のため、変更テーブル211、213、221、223、225は1つ以上の「変更セット」210、220の組にグループ化され、同じ変更セット内の変更テーブル(たとえば変更セット210の変更テーブル211、213)に追加される新しい変更データがすべて同時に追加されること、たとえばこれらの変更テーブルへの修正が同じトランザクションにおいて行なわれコミットされることを、パブリッシャ125が保証するようになっている。図2に示す例では、2つの変更セット、つまり変更セット210と変更セット220とがある。変更セット210は変更テーブル211と変更テーブル213とを含み、それらはOLTPデータベース113上のそれぞれのテーブル(図示せず)に対応している。同様に、変更セット220は変更テーブル221、変更テーブル223、および変更テーブル225を含んでおり、それらもOLTPデータベース113上のそれぞれのテーブル(図示せず)に対応している。変更セット210、220、および変更テーブル211、213、221、223、225の構造を規定する情報は、システムメタデータ230内に保持される。
各変更テーブルは、OLTPデータベース113内の対応するソーステーブルの列から値が抽出、伝送およびロードされたソーステーブル列に加えて、多数の制御列を採用している。図2の例では、変更テーブル225は、1組のソーステーブル列231と、制御列SCN233、TIME235、OP237、およびROW239とを有するとして図示されている。ソーステーブル列231は、対応するソーステーブルの列のすべてまたは一部を含んでいてもよい。さまざまな実現化例において、制御列は、ソーステーブル列を含んでいるのと同じデータベースオブジェクトの一部であってもよく、または、(たとえば行識別子または一次キーによって)ソーステーブル列と結合され得る平行な関連データベースオブジェクトの一部であってもよい。
制御列SCN233、TIME235、OP237、およびROW239は、好ましくは、たとえばドル符号($)などの予約文字を有する名前といった、顧客が自分の列に使
用できない予約名を有する。この予約名はもちろん、任意の有効な文字列であってもよく、この例では、覚えるのに便利なように、SCN233、TIME235、OP237、およびROW239と名付けられている。
SCN233列は、変更データを引起こしたOLTPデータベース113上のトランザクションについてのコミットのシステム変更数を保有する。システム変更数は、データベースシステムにおいて実行される動作を指示するために使用可能な、たとえば更新、挿入、削除およびコミットといった、データベースシステム上で実行されるあらゆる動作を識別する、単調に増加する数である。この発明はシステム変更数のどの特定の実現化例にも限定されておらず、ここに開示された概念は、タイムスタンプ、インクリメントする連続番号などに有益に採用可能である。
TIME235列は、変更データを引起こしたトランザクションのコミット時間を含む。この列は、サブスクライバアプリケーション121が特定の期間に起こる変更データを選択または閲覧するのを助ける。
OP237列は、変更データをもたらした動作の種類を示す符号を含む。たとえば、OP237列が記号「I」を含む場合、動作は挿入動作で、ソーステーブル列231内の変更データは挿入されたデータを含んでいる。OP237列が記号「D」を含む場合、動作は削除動作で、ソーステーブル列231内の変更データは削除されたデータを含んでいる(これによりサマリーはサブスクライバアプリケーション121によって適正に再調節される)。OP237列が記号「UO」を含む場合、動作は更新動作で、ソーステーブル列231内の変更データは修正された古いデータを含んでいる。同様に、OP237列が記号「UN」を含む場合、動作は更新動作で、ソーステーブル列231内の変更データは修正された新しいデータを含んでいる。このため、ソーステーブル上の更新動作は、変更テーブルにおける2つの入力、つまり、一方は古いデータ用、もう一方は新しいデータ用の入力をもたらし、そのため、サブスクライバアプリケーション121は、OLTPデータのそのサマリーを再調整するのに十分な情報を有している。状況次第では、ソーステーブルが図形および画像などの「ラージオブジェクト」(LOB)を含む場合がある。このLOBは通常サマライズされておらず、そのため、メモリを節約するには、新しいLOBのみが(OP237列に記号「UL」を有して)変更テーブルに記録される。OP237列のこれらの記号(「I」、「D」、「UO」、「UN」、「UL」)は、覚えるのに便利なように選択され、この発明の範囲から逸脱することなく、他の記号に任意の一意的な値(たとえば数)を自由裁量で割当てることが可能である。
ROW239列は、変更テーブルにおける変更についての一意的な行シーケンス番号を含む。この列は、サブスクライバアプリケーション121が同じトランザクションにおいてコミットされた動作を指示するのを助ける。また、同じ動作の古い更新値についてのレコード(「UO」を有するOP237列)と、新しい更新値についてのレコード(「UN」を有するOP237列)とは双方とも、同じ行シーケンス番号を有する。なぜなら、これら2つのレコードは、OLTPデータベース113上での同じ変更動作(更新動作)に関するためである。
図2には示されていないが、この発明の実施例の実現を容易にするために、追加の制御列が設けられてもよい。たとえば、どのコラムが変更したかを迅速に識別するために、更新された列のビットマスクが使用可能である。別の例として、動作を引起こしたユーザの名前を制御列に記録してもよい。ソーステーブル内の影響された行の行識別子も、制御列に含まれ得る。
しかしながら、図1のサブスクライバアプリケーション121、123は、変更テーブ
ルの内容すべてを見る必要はない。特に、サブスクライバアプリケーション121、123がそれぞれのサブスクライバビューにおいて見る行の範囲は、変更データが失われないよう、かつ、サブスクライバアプリケーション121、123に対して二重カウントされないよう、以下に詳細に説明するように制限され、慎重に制御されている。図2の例では、2つのサブスクライバビュー241、243が示されているが、この発明の一実施例の動作中、任意の数のサブスクライバビューが作成されてもよい。サブスクライバビュー241、243を使用することは、それぞれのサブスクライバアプリケーション121、123を、変更テーブル225の実現詳細から有益に遮断する。いくつかの先行技術のアプローチとは異なり、OLTPデータベース113上のソーステーブル自体に制御列または情報を追加する必要は一切なく、分析データベース120上の変更テーブルへ制御列を提供するだけで十分である。したがって、この特徴により、変更データ収集はOLTPデータベース113のスキーマを変更せずに実行可能であり、それは多くのターンキーOLTPデータベースにとって望ましいことである。
パブリケーション
この発明の一実施例では、収集された変更データを管理するためにパブリケーション−サブスクリプションモデルが採用されている。図1のパブリッシャ127は、関連するプログラムの組として、および、データベースアドミニストレータまたはデータベースを管理する同様の特権を有する者による使用が意図されたユーザインターフェイスとして実現されてもよい。図3は、パブリッシャ127によって実行され得るさまざまなパブリケーション動作を示す。パブリケーションは、変更テーブル(図2の要素211、213、221、223、225)の作成および保持、変更テーブルの変更セット(図2の要素210、220)への論理的グループ化、変更データのソースである、データベースシステムを表わすデータベースオブジェクトとして実現可能な変更ソース131の作成および保持、ならびに、同期および非同期データ収集のためのメカニズムを伴う。さらに、パブリケーションはまた、変更テーブルが無制限に大きくはならず、変更テーブルの内容がサブスクライバアプリケーション121、123からもはや必要とされなくなった場合に削除されるように、変更テーブルが使用するディスクストレージを制限するためのメカニズムも伴う。
ステップ301で、パブリッシャは1つ以上の変更ソース131を作成し、その情報をシステムメタデータ230に記録する。各変更ソースは、変更データのソースを一意的に識別する。たとえば、ボストン市から生じる変更データは、BOSTONという名前で変更ソースを作成することによって表すことができ、一方、シカゴから生じる変更データは、CHICAGOと名付けられた変更ソースによって表すことができる。ステージングシステム120は複数の変更ソースを含んでいてもよい。この発明の好ましい一実施例では、変更ソースは同期的または非同期的のいずれかである。非同期変更ソースの値は、その変更ソース用の運ばれた回復ログの場所(たとえばオペレーティングシステムディレクトリへのパスネーム)を識別する。変更テーブルは回復ログを使用せずに同期変更データ収集の下でトリガ事象に応答して更新されるため、同期変更データ収集のための変更ソースは通常、回復ログについて任意の場所を特定する必要がないことを示す、SYNC_SOURCEといった任意の名前である。
ステップ303で、各変更ソース131に対して1つ以上の変更セット210、220が作成され、その情報をシステムメタデータ230に記録する。変更セット210、220は、少なくとも2つの独立した目的、つまり、トランザクションの一貫性を維持するため、および、個々のトランザクションのコミット時間に応じて変更データを隔離するために使用可能である。変更テーブルの関連するグループへの更新がすべて、同じトランザクションにおいてコミットされた場合に、トランザクションの一貫性は達成される。このため、変更セット210、220により、パブリッシャはそのような論理的に関連する変更
テーブルを識別できるようになる。変更セット210、220はまた、開始日および終了日を有していてもよく、変更セット210、220の変更テーブルがすべて、開始日と終了日との間に該当するトランザクションからのみ変更データを記憶するようになっていてもよい。たとえば、変更セットCHICAGO_JUNEは、開始日が2000年6月1日、終了日が2000年6月30日で作成され得る。このため、2000年6月に該当するCHICAGO変更ソースからの変更データはすべて、CHICAGO_JUNEに属する変更テーブルに記憶される。開始日および終了日はシステムメタデータテーブルに記憶されてもよく、部分的にまたは完全に無限の期間を可能とするよう、いずれの日も終りが設定されていなくてもよい。変更セット同士が同じ変更ソースの同じソーステーブルを参照する場合でも、変更セットの各々は、別の変更セットに対して異なる開始日または終了日を有する期間について変更を収集してもよい。したがって、この特徴は、独立し、かつ他の変更セットの期間に影響されない、期間の多大なる柔軟性を提供する。
ステップ305で、パブリッシャは次に、変更テーブル211、213、221、223、225を作成し、変更テーブル211、213、221、223、225の各々に変更セット210、220のうちの1つを割当て、その情報をシステムメタデータ230に記録する。変更テーブル211、213、221、223、225の各々は、変更テーブルが属する対応する変更セット210、220の同じ開始日および終了日を共有している。さらに、同じ変更セット内の変更テーブル同士は、トランザクション的に一貫した態様で保持される。たとえば、ある変更ソース(たとえば1組の運ばれた回復ログ)が6月15日に起こった変更についての変更データを含むと仮定する。その場合、変更セットのデータが収集されると、変更セット内の変更テーブルの各々は、対応するソーステーブルに6月15日になされた変更を反映するよう更新される。具体的には、ある変更セットの1つの変更テーブルが6月11日中の変更のみを含み、同じ変更セットの別の変更テーブルが6月14日までの変更を含む、などといったような状況はあり得ない。
変更オブジェクトの作成後、変更データは定期的に変更テーブルに追加され(ステップ307)、変更テーブルから削除される(ステップ309)。より具体的には、非同期変更データがステージングシステム120上の変更ソース131に伝送されるにつれ、パブリッシャ127は定期的に変更セットを「進める」。変更セットを進めることは、変更ソース131において運ばれた回復ログを処理することを伴う。ある非同期的実現化例では、SQL SELECTステートメントがログビューワ129プロセスに発行され、それはある特定の範囲の時間についての変更データを、変更セットの適切な変更テーブルに挿入するために戻す。サブスクライバアプリケーション121、123からのパージコマンドに応答して、変更データは変更テーブルから削除される。具体的には、サブスクライバアプリケーション121、123によってまだパージされていない変更データの最も古い行を追跡するために、各変更テーブルに対して低いウォーターマークが維持されている。進める、および削除する動作の作用(ステップ307、309)を、機能例に関して以下により詳細に説明する。
サブスクリプション
パブリケーション−サブスクリプションモデルによれば、サブスクリプションは、サブスクライバアプリケーション121、123が、たとえばコミット順などの制御された態様で、データ損失または二重カウントなく、変更データへのアクセスを要求するメカニズムと、多数のサブスクライバアプリケーション121、123が所与の変更テーブルを共有できるようにサブスクライバアプリケーション121、123間で調整するメカニズムと、変更テーブルに収集中の新しいデータの突然の出現に関係なく、多数のサブスクライバアプリケーション121、123が、変更テーブル内の変更データの同じ行を必要に応じて読出または再読出できるようにするメカニズムと、パブリッシャが変更データの行を効率よくかつ正しく除去できるよう、サブスクライバアプリケーション121、123が
変更データの行で終わった場合にパブリッシャに通知するメカニズムとを含む。
ここで、一実現化例の動作を示す図4を参照すると、サブスクライバアプリケーション121、123は、たとえば制御された態様で変更データにアクセスするという、変更データのサブスクライバになるという要求を、パブリッシャ127に登録する(ステップ401)。サブスクライバアプリケーション121、123は、同じ変更セットに属する複数の変更テーブルをサブスクライブしてもよい。加えて、サブスクライバアプリケーション121、123は、関与するソーステーブル列の1つ以上を特定できる。たとえば、変更テーブルがソーステーブル列A、B、C、Dを含む場合、サブスクライバは、列A、Dを省略して列B、Cのみをサブスクライブするよう選択してもよい。
サブスクリプション要求をパブリッシャ127に登録することに応答して、サブスクライバアプリケーション121、123は、変更データの行にアクセスできる態勢となる。サブスクライバアプリケーション121、123による変更データへの要求はすべて、それぞれの「サブスクリプションウィンドウ」を介して仲介される。サブスクリプションウィンドウは、最も古いまたは最も初期の変更行と最新のまたは最近の変更行との間の変更データのすべての行を例外なく含む、変更データの1つ以上の行を提示する。サブスクリプションウィンドウに属する変更データの範囲は、サブスクライバアプリケーション121、123が行なうサブスクリプションウィンドウ拡張コールによって管理される(ステップ403)。
サブスクリプションウィンドウ拡張コールに応答して、パブリッシャ127は、(サブスクライバアプリケーションに関して)これまで見たことがない変更データの1つ以上の行をサブスクライバが利用可能となるよう、サブスクリプションウィンドウを未来の方向にさらに動かす。変更行を閲覧するために、サブスクライバアプリケーション121、123はサブスクライバビュー用意コールを行ない(ステップ405)、それはサブスクリプションウィンドウに含まれるすべての変更行を含むリレーショナルビュー241、243をインスタンス生成する。サブスクライバビュー241、243内の変更データを使用するために、サブスクライバアプリケーション121、123は、“SELECT*FROM SUBSCRIBER_VIEW ORDER BY SCN$”などのSQL SELECTステートメントを発行でき、ここで、SUBSCRIBER_VIEWは、サブスクライバビュー241、243の名前またはエイリアスである。これに応答して変更データが戻され、サブスクライバアプリケーション121、123はそれに応じてデータを処理する(ステップ407)。
サブスクライバアプリケーション121、123がサブスクライバウィンドウ内のデータで終わったことを示すために、サブスクライバアプリケーション121、123はウィンドウドロップコールを行ない(ステップ409)、続いてウィンドウパージコールを行なう(ステップ411)。ステップ411のウィンドウパージコールは、変更行がサブスクライバアプリケーション121、123からもはや必要とされていないことをパブリッシャ127に知らせ、そのため、サブスクライバアプリケーション121、123のすべてがそう合図すると、パブリッシャ127は、どのサブスクライバアプリケーション121、123ももはや使用していない変更行を削除でき、それにより、変更テーブルが無制限に増大することを防止する。サブスクライバアプリケーション121、123がウィンドウ拡張コールを行なう(ステップ403)かまたはウィンドウパージコールを行なう(ステップ411)前に問合せが再発行されると、変更行の同じ組がサブスクライバアプリケーション121、123に戻される。したがって、たとえばウィンドウ拡張コール(ステップ403)またはウィンドウパージコール(ステップ411)などのサブスクライバアプリケーション121、123側での確認行為の後で、異なる変更行のみがサブスクライバアプリケーション121、123に戻されるため、サブスクライバアプリケーション
121、123は、変更データの二重カウントおよび変更データの紛失をそれぞれ回避できる。
機能例
図5A、5B、5C、5D、5Eおよび5Fは、パブリケーション−サブスクリプションモデルの一実施例がいかに動作するかを示す機能例の一連の段階を示している。図5Aでは、変更テーブル500は、変更データの4つの行501、502、503、504を含んでいる。第1のサブスクライバアプリケーション121は、変更テーブル500のサブスクリプションを起動し(ステップ401)、サブスクリプションウィンドウを現在に至るまで拡張し(ステップ403)、サブスクライバビュー510を得る(ステップ405)。したがって、第1のサブスクライバアプリケーション121は、4つの行501、502、503、504を処理できる(ステップ407)。
次に、図5Bでは、行505、506を含む追加の変更データが届き、変更テーブル500に追加される(ステップ307)。第1のサブスクライバアプリケーション121は現在、サブスクライバ511をそのサブスクリプションウィンドウに基づいて扱っているため、第1のサブスクライバアプリケーション121には変更テーブル500内の追加の変更データ505、506が見えない。このため、第1のサブスクライバアプリケーション121は、警告なしに出現する新しい変更データについて心配する必要なく、SELECTコールを必要なだけたくさん自由に行なうことができ、それにより二重カウント問題を回避する。一方、第2のサブスクライバアプリケーション123は、変更テーブル500のサブスクリプションを起動し(ステップ401)、サブスクリプションウィンドウを現在に至るまで拡張し(ステップ403)、サブスクライバビュー520を得る(ステップ405)。したがって、第2のサブスクライバアプリケーション123は、6つの行501、502、503、504、505、506を処理できる(ステップ407)。
図5Cでは、行507、508を含む追加の変更データが届き、変更テーブル500に追加される(ステップ307)。第1のサブスクライバアプリケーション121にも第2のサブスクライバアプリケーション123にも、変更テーブル500内のこの追加の変更データ507、508が見えない。なぜなら、この追加の変更データ507、508はそれぞれ、第1のサブスクライバビュー510、520の一部ではないためである。
図5Dでは、第1のサブスクライバアプリケーション121は変更データ501、502、503、504の処理を終了し、したがって、サブスクライバビュー510をドロップし(ステップ409)、変更行501、502、503、504を含むサブスクライバウィンドウをパージし(ステップ411)、サブスクリプションウィンドウを現在に至るまで拡張し(ステップ403)、新しいサブスクライバビュー510を得る(ステップ405)。このサブスクライバビュー510は、元のサブスクライバビュー510の一部ではなかった変更行505、506、507、508を含む。第1のサブスクライバアプリケーション121によってパージされた行501、502、503、504は依然として第2のサブスクライバアプリケーション123によって使用されているため、これらの行501、502、503、504は削除されない。
図5Eでは、第2のサブスクライバアプリケーション123は変更データ501、502、503、504、505、506の処理を終了し、したがって、サブスクライバビュー520をドロップし(ステップ409)、変更行501、502、503、504、505、506を含むサブスクライバウィンドウをパージし(ステップ411)、サブスクリプションウィンドウを現在に至るまで拡張し(ステップ403)、新しいサブスクライバビュー521を得る(ステップ405)。このサブスクライバビュー521は、元のサブスクライバビュー520の一部ではなかった変更行507、508を含む。
第2のサブスクライバアプリケーション123によってパージされた変更行501、502、503、504は、もはやどのサブスクライバアプリケーションにも使用されていない。したがって、これらの行501、502、503、504は削除され、図5Fに示す段階が結果としてもたらされる。これらの行501、502、503、504はサブスクライバアプリケーションによるウィンドウパージコールに応答してのみ削除されるため、サブスクライバアプリケーション121、123は、現在の変更データが警告なく消滅することを心配する必要なく、SELECTコールを必要なだけたくさん自由に行なうことができ、それによりデータ損失問題を回避する。他方、行505、506は依然として第1のサブスクライバアプリケーション121によって使用されているため、これらの行505、506は削除されない。
ハードウェア概要
図6は、この発明に従った一実施例が実現され得るコンピュータシステム600を示す。コンピュータシステム600は、情報を通信するためのバス601または他の通信メカニズムと、情報を処理するためにバス302と結合されたプロセッサ603とを含む。コンピュータシステム600はまた、プロセッサ603により実行されるべき命令および情報を記憶するためにバス601に結合された、ランダムアクセスメモリ(RAM)または他のダイナミック記憶装置といったメインメモリ605も含む。メインメモリ605は、プロセッサ603により実行されるべき命令の実行中に一時的な変数または他の中間情報を記憶するためにも使用されてもよい。コンピュータシステム600はさらに、プロセッサ603用の命令およびスタティック情報を記憶するためにバス601に結合された読出専用メモリ(ROM)607または他のスタティック記憶装置を含む。磁気ディスクまたは光ディスクといった記憶装置609が、情報および命令を記憶するためにバス601に追加的に結合されている。
コンピュータシステム600は、情報をコンピュータユーザに表示するための、ブラウン管(CRT)、液晶ディスプレイ、アクティブマトリックスディスプレイ、またはプラズマディスプレイなどのディスプレイ611に、バス601を介して結合されていてもよい。英数字キーおよび他のキーを含むキーボードなどの入力装置613が、情報およびコマンド選択をプロセッサ603に通信するためにバス601に結合されている。ユーザ入力装置の別の種類は、方向情報およびコマンド選択をプロセッサ603に通信し、ディスプレイ611上のカーソルの動きを制御するための、マウス、トラックボール、またはカーソル方向キーといったカーソル制御615である。
この発明の一実施例によれば、変更データ収集は、プロセッサ603がメインメモリ605に含まれた命令の構成を実行するのに応答して、コンピュータシステム600により提供される。そのような命令は、記憶装置609などの別のコンピュータ読取可能な媒体からメインメモリ605に読込可能である。メインメモリ605に含まれる命令の構成の実行により、プロセッサ603は、ここに説明された処理手順を行なうようになる。メインメモリ605に含まれる命令を実行するために、多重処理構成の1つ以上のプロセッサも採用されてもよい。代替的な実施例では、この発明の実施例を実現するために、ソフトウェア命令の代わりに、またはソフトウェア命令と組合わせて、配線接続回路が使用されてもよい。このため、この発明の実施例は、配線接続回路とソフトウェアとのどの特定の組合せにも限定されない。
コンピュータシステム600はまた、バス601に結合された通信インターフェイス617も含む。通信インターフェイス617は、ローカルネットワーク621に接続されたネットワークリンク619に双方向データ通信結合を提供する。たとえば、通信インターフェイス617は、データ通信接続を対応する種類の電話回線に提供するデジタル加入者
線(DSL)カードまたはモデム、デジタル相互サービス網(ISDN)カード、ケーブルモデム、または電話モデムであってもよい。別の例として、通信インターフェイス617は、互換性があるLAMにデータ通信接続を提供するローカルエリアネットワーク(LAN)カード(たとえばイーサネット(登録商標)または非同期転送モデル(ATM)ネットワーク用)であってもよい。無線リンクも実現可能である。任意のそのような実現化例では、通信インターフェイス617は、さまざまな種類の情報を表わすデジタルデータストリームを搬送する電気信号、電磁信号、または光信号を送信および受信する。さらに、通信インターフェイス617は、ユニバーサルシリアルバス(USB)インターフェイス、PCMCIA(パーソナルコンピュータメモリカード国際協会)インターフェイスなどの周辺インターフェイス装置を含み得る。
ネットワークリンク619は通常、1つ以上のネットワークを介して、他のデータ装置にデータ通信を提供する。たとえば、ネットワークリンク619は、ネットワーク625(たとえば広域ネットワーク(WAN)、または現在一般に「インターネット」と呼ばれている全世界的パケットデータ通信ネットワーク)への、もしくは、サービスプロバイダにより運営されるデータ装置への接続性を有するホストコンピュータ623に、ローカルネットワーク621を介して接続を提供してもよい。ローカルネットワーク621およびネットワーク625は双方とも、電気信号、電磁信号または光信号を使用して情報および命令を伝搬する。さまざまなネットワークを通る信号、ネットワークリンク619上の信号、およびコンピュータシステム600とデジタルデータを通信する通信インターフェイス617を通る信号は、情報および命令を運ぶ搬送波の例示的な形態である。
コンピュータシステム600は、ネットワーク、ネットワークリンク619および通信インターフェイス617を介して、メッセージを送信し、プログラムコードを含むデータを受信する。インターネットの例では、サーバ(図示せず)は、この発明の一実施例を実現するためのアプリケーションプログラムに属する要求されたコードを、ネットワーク625、ローカルネットワーク621、および通信インターフェイス617を介して送信してもよい。プロセッサ603は送信されたコードを受信中に実行してもよく、および/または、後の実行用に記憶装置609または他の不揮発性記憶装置にコードを記憶してもよい。このように、コンピュータシステム600は、搬送波の形をしたアプリケーションコードを獲得し得る。
ここで用いられるような用語「コンピュータ読取可能な媒体」は、プロセッサ603に命令を実行用に提供することに関与するあらゆる媒体を指す。そのような媒体は、不揮発性媒体、揮発性媒体、および通信媒体を含むもののそれらに限定されない多くの形態をとり得る。不揮発性媒体はたとえば、記憶装置609などの光ディスクまたは磁気ディスクを含む。揮発性媒体は、メインメモリ605などのダイナミックメモリを含む。通信媒体は、バス601を構成する配線を含む、同軸ケーブル、銅線および光ファイバを含む。通信媒体は、無線周波数(RF)および赤外線(IR)データ通信中に発生するものなどの音波、光波、または電磁波の形も取り得る。コンピュータ読取可能な媒体の一般的な形態は、たとえば、フロッピー(登録商標)ディスク、フレキシブルディスク、ハードディスク、磁気テープ、任意の他の磁気媒体、CD−ROM、CDRW、DVD、任意の他の光媒体、パンチカード、紙テープ、光学マークシート、孔または他の光学的に認識可能な印のパターンを有する任意の他の物理的媒体、RAM、PROM、EPROM、FLASH−EPROM、任意の他のメモリチップまたはカートリッジ、搬送波、または、コンピュータが読取可能な任意の他の媒体を含む。
コンピュータ読取可能な媒体のさまざまな形態は、プロセッサに命令を実行用に提供することに関与していてもよい。たとえば、この発明の少なくとも一部を実行するための命令はまず、遠隔コンピュータの磁気ディスク上で運ばれてもよい。そのような筋書きでは
、遠隔コンピュータは命令をメインメモリにロードし、電話回線を通してモデムを用いて命令を送信する。ローカルコンピュータシステムのモデムが電話回線上のデータを受信して、赤外線送信機を用いてデータを赤外線信号に変換し、その赤外線信号を、携帯用情報端末(PDA)およびラップトップなどの携帯用コンピュータ装置に送信する。携帯用コンピュータ装置上の赤外線検出器は、赤外線信号によって運ばれた情報および命令を受信し、データをバス上に配置する。バスはデータをメインメモリに搬送し、そこからプロセッサは命令を検索して実行する。メインメモリによって受信された命令は、プロセッサによる実行の前または後のいずれかで、記憶装置上に随意に記憶されてもよい。
多数の実施例および実現化例に関連してこの発明を説明してきたが、この発明はそのように限定されてはおらず、特許請求の範囲内に当てはまるさまざまな明らかな変更および同等の構成を網羅している。
この発明の一実施例の高レベルアーキテクチャ図である。 この発明の一実施例に従った変更オブジェクトを示す概略図である。 この発明の一実施例についてのさまざまなパブリケーション動作を示すフローチャートである。 この発明の一実施例についてのさまざまなサブスクリプション動作を示すフローチャートである。 この発明の一実施例の機能例に従った変更テーブルの状態を示す図である。 この発明の一実施例の機能例に従った変更テーブルの状態を示す図である。 この発明の一実施例の機能例に従った変更テーブルの状態を示す図である。 この発明の一実施例の機能例に従った変更テーブルの状態を示す図である。 この発明の一実施例の機能例に従った変更テーブルの状態を示す図である。 この発明の一実施例の機能例に従った変更テーブルの状態を示す図である。 この発明の一実施例を実現するために使用可能なコンピュータシステムの図である。

Claims (15)

  1. データベースシステムから収集された変更データを管理するための方法であって、
    データベースシステムのソースオブジェクトに対応するデータベースオブジェクトを保持するステップを含み、前記データベースオブジェクトは、ソースオブジェクトに行なわれた少なくとも1つの修正を示す変更データを含んでおり、前記方法はさらに、
    あるアプリケーションに関して、第1の時点と第2の時点との間でコミットされたデータベースオブジェクト内の変更データをすべて含む変更データのウィンドウを規定するステップと、
    アプリケーションからの問合せに応答して、ウィンドウに含まれるデータベースオブジェクトから変更データのみを提示するステップとを含む、方法。
  2. データベースオブジェクトは変更テーブルを含む、請求項1に記載の方法。
  3. 変更テーブルを変更テーブルのグループに関連付けるステップをさらに含む、請求項1に記載の方法。
  4. グループ内の変更テーブルの各々がある期間のみにおける変更データを含むように、変更テーブルのグループを保持するステップをさらに含む、請求項3に記載の方法。
  5. グループ内の変更テーブルについてトランザクションの一貫性を維持するステップをさらに含む、請求項3に記載の方法。
  6. 変更テーブルの別のグループを保持するステップをさらに含み、別のグループ内の変更テーブルのうちの1つはソーステーブルに対応している、請求項3に記載の方法。
  7. ウィンドウを規定するステップは、第2の時点を前へ動かすことによってウィンドウを拡張するステップを含む、請求項1に記載の方法。
  8. ウィンドウを規定するステップは、第1の時点が第2の時点と一致するように動かすことによってウィンドウをパージするステップを含む、請求項1に記載の方法。
  9. 前記ウィンドウを規定するステップの後で、ソースオブジェクトからデータベースオブジェクトに新しい変更データを追加するステップと、
    新しい変更データを含むようにウィンドウを拡張するステップと、
    ウィンドウを拡張した後でのみ、データベースオブジェクトから新しい変更データを提示するステップとをさらに含む、請求項1に記載の方法。
  10. 修正は、ソースオブジェクトのレコードの挿入、削除、および更新のうちの1つを含む、請求項1に記載の方法。
  11. データベースシステムから収集された変更データを管理するための命令を運ぶコンピュータ読取可能な媒体であって、前記命令は、実行時、請求項1から10のいずれかに従った方法のステップを1つ以上のプロセッサに実行させるよう構成されている、コンピュータ読取可能な媒体。
  12. データベースシステムから収集された変更データを管理するための方法であって、
    データベースシステムのソースオブジェクトに対応するデータベースオブジェクトを保持するステップを含み、前記データベースオブジェクトは、ソースオブジェクトに行なわれた少なくとも1つの修正を示す変更データを含んでおり、前記方法はさらに、
    複数のアプリケーションに関して、それぞれの第1の時点とそれぞれの第2の時点との間でコミットされたデータベースオブジェクト内の変更データをすべて含む変更データのそれぞれのウィンドウを規定するステップと、
    アプリケーションからのそれぞれの問合せに応答して、それぞれのウィンドウに含まれるデータベースオブジェクトから変更データのみを提示するステップとを含む、方法。
  13. 第1の時点または第2の時点の少なくとも一方は、それぞれ、別の第1の時点または他の第2の時点とは異なっている、請求項12に記載の方法。
  14. ウィンドウを規定するステップは、
    それぞれの第1の時点がそれぞれの第2の時点と一致するように動かすことによって、それぞれのアプリケーションからのそれぞれのパージ要求に応答して複数のウィンドウをパージするステップと、
    第1の時点のうち最も早いものの前に起こるデータベースオブジェクト内の変更データのレコードを削除するステップとを含む、請求項12に記載の方法。
  15. データベースシステムから収集された変更データを管理するための命令を運ぶコンピュータ読取可能な媒体であって、前記命令は、実行時、請求項12から14のいずれかに従った方法のステップを1つ以上のプロセッサに実行させるよう構成されている、コンピュータ読取可能な媒体。
JP2004504145A 2002-05-09 2003-05-09 データベースシステムにおける変更データ収集のための方法および装置 Expired - Lifetime JP4647308B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/140,818 US6999977B1 (en) 2002-05-09 2002-05-09 Method and apparatus for change data capture in a database system
PCT/US2003/014431 WO2003096227A2 (en) 2002-05-09 2003-05-09 Method and apparatus for change data capture in a database system

Publications (2)

Publication Number Publication Date
JP2005524909A true JP2005524909A (ja) 2005-08-18
JP4647308B2 JP4647308B2 (ja) 2011-03-09

Family

ID=29418396

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004504145A Expired - Lifetime JP4647308B2 (ja) 2002-05-09 2003-05-09 データベースシステムにおける変更データ収集のための方法および装置

Country Status (9)

Country Link
US (1) US6999977B1 (ja)
EP (1) EP1502213B1 (ja)
JP (1) JP4647308B2 (ja)
AT (1) ATE463014T1 (ja)
AU (1) AU2003232083B2 (ja)
CA (1) CA2483039C (ja)
DE (1) DE60331909D1 (ja)
HK (1) HK1070447A1 (ja)
WO (1) WO2003096227A2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010157221A (ja) * 2008-12-15 2010-07-15 Xerox Corp カスタムレンダリングプロファイル統合的遠隔作成方法及びシステム
KR101024494B1 (ko) * 2008-07-18 2011-03-31 (주)디에프아이비즈 메타데이타를 이용한 변경 데이타 추출방법
WO2014051348A2 (ko) * 2012-09-28 2014-04-03 삼성에스디에스 주식회사 데이터 객체 변환 장치 및 방법

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7310653B2 (en) * 2001-04-02 2007-12-18 Siebel Systems, Inc. Method, system, and product for maintaining software objects during database upgrade
US7657576B1 (en) 2001-05-24 2010-02-02 Oracle International Corporation Asynchronous change capture for data warehousing
US7111023B2 (en) 2001-05-24 2006-09-19 Oracle International Corporation Synchronous change data capture in a relational database
US6999977B1 (en) 2002-05-09 2006-02-14 Oracle International Corp Method and apparatus for change data capture in a database system
US7647354B2 (en) 2002-05-24 2010-01-12 Oracle International Corporation High-performance change capture for data warehousing
US20040215656A1 (en) * 2003-04-25 2004-10-28 Marcus Dill Automated data mining runs
CA2427159A1 (en) * 2003-04-29 2004-10-29 Cognos Incorporated Simplified metadata modelling for reporting
CA2427185A1 (en) * 2003-04-29 2004-10-29 Cognos Incorporated Automated database query generation
CA2427226A1 (en) * 2003-04-29 2004-10-29 Cognos Incorporated Dynamic generation of dimensional metadata
CA2427182A1 (en) * 2003-04-29 2004-10-29 Cognos Incorporated Security filters in metadata modelling for reporting
US7624119B2 (en) * 2004-02-11 2009-11-24 International Business Machines Corporation Low-overhead built-in timestamp column for relational database systems
US7953749B2 (en) * 2004-05-11 2011-05-31 Oracel International Corporation Providing the timing of the last committed change to a row in a database table
US20060190501A1 (en) * 2005-02-18 2006-08-24 Sandy Massironi System supporting data repository compatibility
US20070027938A1 (en) * 2005-07-26 2007-02-01 Scribe Software Inc. Detecting data changes
US7840603B2 (en) * 2005-11-14 2010-11-23 International Business Machines Corporation Method and apparatus for database change management
US8856083B2 (en) * 2006-06-09 2014-10-07 Oracle International Corporation Framework to optimize delete all row operations on database objects to improve throughput, query ability and flashback
US8341646B2 (en) * 2007-01-26 2012-12-25 Sap Ag Information system with event-enabled data objects
US7984131B1 (en) * 2007-06-28 2011-07-19 Emc Corporation Network configuration history tracking
US20090106331A1 (en) * 2007-10-22 2009-04-23 General Electric Company Dynamic two-stage clinical data archiving and retrieval solution
US7769714B2 (en) * 2007-11-06 2010-08-03 Oracle International Corporation Automatic error correction for replication and instantaneous instantiation
US8214324B2 (en) * 2009-08-25 2012-07-03 International Business Machines Corporation Generating extract, transform, and load (ETL) jobs for loading data incrementally
US9092474B2 (en) 2010-10-12 2015-07-28 Sap Se Incremental conversion of database objects during upgrade of an original system
US8984514B2 (en) 2010-11-30 2015-03-17 Sap Se Modifying scheduled execution of object modification methods associated with database objects
US8527471B2 (en) 2010-12-27 2013-09-03 Sap Ag Shadow system mirroring of an original system during uptime of an upgrade process
US9626390B2 (en) 2010-12-27 2017-04-18 Sap Se Shadow system start during upgrade of an original system
US8676757B2 (en) 2011-10-18 2014-03-18 Microsoft Corporation Application of a differential dataset to a data store using sequential change sets
US9213728B2 (en) 2011-12-14 2015-12-15 Sap Se Change data capturing during an upgrade
US9535932B1 (en) * 2012-06-29 2017-01-03 ParAccel, LLC Backup and restore of databases
US9305067B2 (en) 2013-07-19 2016-04-05 International Business Machines Corporation Creation of change-based data integration jobs
US20150317567A1 (en) * 2014-05-01 2015-11-05 YeeJang James Lin Business Change Management System
MY188208A (en) 2014-06-26 2021-11-24 Mimos Berhad System and method for managing change data in database
US10922301B1 (en) * 2016-07-26 2021-02-16 Amdocs Development Limited Apparatus, computer program, and method for trigger-based tracking of database modifications
US10191930B2 (en) * 2016-08-12 2019-01-29 Sap Se Priority queuing for updates in a database system
KR101956236B1 (ko) 2016-11-16 2019-03-11 주식회사 실크로드소프트 데이터베이스 관리 시스템에서의 데이터 복제 기법
US11423003B2 (en) * 2017-12-11 2022-08-23 Micro Focus Llc Optimistic concurrency control for database transactions
KR102119258B1 (ko) 2018-11-14 2020-06-05 주식회사 실크로드소프트 데이터베이스 관리 시스템에서의 변경 데이터 캡쳐 구현 기법
KR20190022600A (ko) 2019-02-25 2019-03-06 주식회사 실크로드소프트 데이터베이스 관리 시스템에서의 데이터 복제 기법
KR102225258B1 (ko) 2019-04-18 2021-03-10 주식회사 실크로드소프트 데이터베이스 시스템에서 효율적인 변경 데이터 캡쳐를 제공하기 위한 컴퓨터 프로그램
KR20200056357A (ko) 2020-03-17 2020-05-22 주식회사 실크로드소프트 데이터베이스 관리 시스템에서의 변경 데이터 캡쳐 구현 기법
US11909574B2 (en) * 2021-06-01 2024-02-20 Ciena Corporation Grouping configuration-modifying transactions from collaborating agents

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05307576A (ja) * 1991-07-12 1993-11-19 Fujitsu Ltd データベース・システム
US5603024A (en) * 1993-10-08 1997-02-11 International Business Machines Corporation Lossless distribution of time series data in a relational data base network
JP2000029761A (ja) * 1998-07-14 2000-01-28 Mitsubishi Electric Corp 分散型データ管理システム

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5280612A (en) 1991-11-26 1994-01-18 International Business Machines Corporation Multiple version database concurrency control system
US5890140A (en) * 1995-02-22 1999-03-30 Citibank, N.A. System for communicating with an electronic delivery system that integrates global financial services
US5848405A (en) 1997-04-21 1998-12-08 Oracle Corporation Method and apparatus for identifying new data by address ranges
US5963959A (en) 1997-05-30 1999-10-05 Oracle Corporation Fast refresh of snapshots
US5926819A (en) 1997-05-30 1999-07-20 Oracle Corporation In-line triggers
US6125360A (en) 1998-07-02 2000-09-26 Oracle Corporation Incremental maintenance of materialized views containing one-to-N lossless joins
US6438538B1 (en) 1999-10-07 2002-08-20 International Business Machines Corporation Data replication in data warehousing scenarios
US7111023B2 (en) 2001-05-24 2006-09-19 Oracle International Corporation Synchronous change data capture in a relational database
US6999977B1 (en) 2002-05-09 2006-02-14 Oracle International Corp Method and apparatus for change data capture in a database system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05307576A (ja) * 1991-07-12 1993-11-19 Fujitsu Ltd データベース・システム
US5603024A (en) * 1993-10-08 1997-02-11 International Business Machines Corporation Lossless distribution of time series data in a relational data base network
JP2000029761A (ja) * 1998-07-14 2000-01-28 Mitsubishi Electric Corp 分散型データ管理システム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101024494B1 (ko) * 2008-07-18 2011-03-31 (주)디에프아이비즈 메타데이타를 이용한 변경 데이타 추출방법
JP2010157221A (ja) * 2008-12-15 2010-07-15 Xerox Corp カスタムレンダリングプロファイル統合的遠隔作成方法及びシステム
WO2014051348A2 (ko) * 2012-09-28 2014-04-03 삼성에스디에스 주식회사 데이터 객체 변환 장치 및 방법
WO2014051348A3 (ko) * 2012-09-28 2014-05-22 삼성에스디에스 주식회사 데이터 객체 변환 장치 및 방법

Also Published As

Publication number Publication date
WO2003096227A3 (en) 2004-06-03
ATE463014T1 (de) 2010-04-15
AU2003232083A1 (en) 2003-11-11
JP4647308B2 (ja) 2011-03-09
AU2003232083B2 (en) 2008-11-06
CA2483039C (en) 2011-03-01
EP1502213B1 (en) 2010-03-31
DE60331909D1 (de) 2010-05-12
EP1502213A2 (en) 2005-02-02
WO2003096227A2 (en) 2003-11-20
CA2483039A1 (en) 2003-11-20
US6999977B1 (en) 2006-02-14
HK1070447A1 (en) 2005-06-17

Similar Documents

Publication Publication Date Title
JP4647308B2 (ja) データベースシステムにおける変更データ収集のための方法および装置
US7111023B2 (en) Synchronous change data capture in a relational database
US7647354B2 (en) High-performance change capture for data warehousing
US7657576B1 (en) Asynchronous change capture for data warehousing
US6963885B2 (en) System and method for identifying invoices that may be duplicate prior to payment
US8140495B2 (en) Asynchronous database index maintenance
AU2002314803A1 (en) Synchronous change data capture in a relational database
US6243718B1 (en) Building indexes on columns containing large objects
US20090083341A1 (en) Ensuring that the archival data deleted in relational source table is already stored in relational target table
US20050182776A1 (en) Time-addressed database management system
US20150074103A1 (en) Metadata-driven audit reporting system with dynamically created display names
US6829616B2 (en) Method, system, and program for implementing a database trigger
EP1480132B1 (en) System and method for identifying and storing changes made to a table
US7653663B1 (en) Guaranteeing the authenticity of the data stored in the archive storage
US7437525B2 (en) Guaranteed undo retention
US7275065B2 (en) Method and system for supporting per-user-per-row read/unread tracking for relational databases
WO2015043166A1 (en) Method and system for automatic management of dynamically allocated memory in a computing unit
JP4152107B2 (ja) データベース更新情報の反映システムおよびそのためのプログラム
Ali et al. Monitoring Business Transactions for a Real-time Data Warehouses
JPH09106364A (ja) 情報管理方法及び装置
hadjikyriakou Version CENTRE Interfaces to external Applications

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060508

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090421

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090717

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090727

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090811

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100202

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100426

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100608

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100809

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20101018

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20101109

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101208

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131217

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4647308

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term