JP2023539811A - データをターゲットデータベースシステムにロードする方法 - Google Patents
データをターゲットデータベースシステムにロードする方法 Download PDFInfo
- Publication number
- JP2023539811A JP2023539811A JP2023510306A JP2023510306A JP2023539811A JP 2023539811 A JP2023539811 A JP 2023539811A JP 2023510306 A JP2023510306 A JP 2023510306A JP 2023510306 A JP2023510306 A JP 2023510306A JP 2023539811 A JP2023539811 A JP 2023539811A
- Authority
- JP
- Japan
- Prior art keywords
- target
- source
- database system
- loading
- data
- 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
- 238000000034 method Methods 0.000 claims abstract description 129
- 238000011068 loading method Methods 0.000 claims abstract description 99
- 238000003860 storage Methods 0.000 claims description 35
- 238000012545 processing Methods 0.000 claims description 23
- 230000008569 process Effects 0.000 claims description 14
- 230000004044 response Effects 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 13
- 238000013507 mapping Methods 0.000 claims description 8
- 238000010926 purge Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 abstract description 38
- 230000008521 reorganization Effects 0.000 description 13
- 230000003287 optical effect Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 230000006399 behavior Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 4
- 238000009826 distribution Methods 0.000 description 4
- 230000002085 persistent effect Effects 0.000 description 4
- 238000007726 management method Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000036962 time dependent Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/211—Schema design and management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/254—Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/273—Asynchronous replication or reconciliation
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)
- Software Systems (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本開示は、データをターゲットデータベースシステムにロードする為の、コンピュータに実装された方法に関する。該方法は、ソーステーブルをロードすることが前記ターゲットデータベースシステムにおいて発生することが予測されることを決定することを含む。将来のターゲットテーブルは、定義されたテーブルスキーマに従って予め用意され、その後、前記ソーステーブルをロードする為のロード要求が受信されうる。前記ソーステーブルのデータが前記将来のターゲットテーブル内にロードされうる。【選択図】図2
Description
本発明は、デジタルコンピュータシステムの分野に、より特には、ターゲットデータベースシステムにおけるデータをロードする方法に関する。
データロードは、データベースシステムにおいて最も頻繁に実行される操作のうちの1つである。従って、該データロードは、該データベースシステムの全体的なパフォーマンスを向上しうる。しかしながら、そのようなデータロードを実行する為に必要な時間を制御することは、困難な課題でありうる。
様々な実施態様が、独立請求項の主題によって説明されているように、ターゲットデータベースシステム、コンピュータシステム及びコンピュータプログラム製品においてデータをロードする方法を提供する。有利な実施態様は、従属請求項において記載されている。本発明の実施態様は、それらが相互に排他的でなければ、互いに自由に組み合わせられることができる。
1つの観点において、本発明は、データをターゲットデータベースシステムにロードする為の、コンピュータに実装された方法に関する。該方法は、
ソーステーブルをロードすることが該ターゲットデータベースシステムにおいて発生することが予測されることを決定すること;
将来のターゲットテーブルを、定義されたテーブルスキーマに従って予め用意すること;その後、
該ソーステーブルをロードする為のロード要求を受信すること;
該ソーステーブルのデータを該将来のターゲットテーブル内にロードすること
を含む。
ソーステーブルをロードすることが該ターゲットデータベースシステムにおいて発生することが予測されることを決定すること;
将来のターゲットテーブルを、定義されたテーブルスキーマに従って予め用意すること;その後、
該ソーステーブルをロードする為のロード要求を受信すること;
該ソーステーブルのデータを該将来のターゲットテーブル内にロードすること
を含む。
他の観点において、本発明は、コンピュータプログラム製品に関し、ここで、該コンピュータプログラム製品は、コンピュータ可読記憶媒体に記憶されたコンピュータ可読プログラムコードを有する該コンピュータ可読記憶媒体を備えており、該コンピュータ可読プログラムコードが上述された実施態様に従う方法の工程の全てを実装するように構成されている。
他の観点において、本発明は、データをターゲットデータベースシステムにロードする為のコンピュータシステムに関する。該コンピュータシステムは、
ソーステーブルをロードすることが該ターゲットデータベースシステムにおいて発生することが予測されることを決定し;
将来のターゲットテーブルを、定義されたテーブルスキーマに従って予め用意し;その後、
該ソーステーブルをロードする為のロード要求を受信し;
該ソーステーブルのデータを該将来のターゲットテーブル内にロードする
ように構成されている。
ソーステーブルをロードすることが該ターゲットデータベースシステムにおいて発生することが予測されることを決定し;
将来のターゲットテーブルを、定義されたテーブルスキーマに従って予め用意し;その後、
該ソーステーブルをロードする為のロード要求を受信し;
該ソーステーブルのデータを該将来のターゲットテーブル内にロードする
ように構成されている。
以下の実施態様において、本発明の実施態様が、図面を参照しながら、例示的にのみ、より詳細に説明されている。
本開示の様々な実施態様の記載は、例示の目的の為に提示されたものであり、網羅的であること又は開示された実施態様に限定されることが意図されたものでない。多くの修正及び変形が、記載された実施態様の範囲及び精神から逸脱することなしに当業者に明らかであろう。本明細書において使用される語は、実施態様の原理、実用的な用途、又は市場において見られる技術に対する技術的改善を最もよく説明する為に、又は当業者が本明細書において開示されている実施態様を理解することができるようにする為に選択された。
ターゲットデータベースシステム内へのデータロードは、テーブル(「ソーステーブル」と名付けられる)からデータを抽出すること、及び該ターゲットデータベースシステムのターゲットテーブル内にデータをコピーすることを含みうる。該ソーステーブルは例えば、ソースデータベースシステムにおけるソーステーブルであってもよく、又は該ターゲットデータベースシステムにおける既存のテーブルであってもよい。該ソーステーブルは、ソーステーブルスキーマと名付けられたテーブルスキーマを有していてもよく、並びに該ターゲットテーブルは、ターゲットテーブルスキーマを有していてもよい。該ターゲットテーブルスキーマは、該ソーステーブルに関連付けられた定義された一意のスキーママッピング(unique schema mapping)を用いて、該ソーステーブルスキーマから取得されうる。1つの例において、一意のスキーママッピングは、1:1マッピングであってもよい。すなわち、該ソーステーブルと該ターゲットテーブルとは、同じテーブルスキーマを有していてもよい。あるテーブルTのテーブルスキーマは、該テーブルT内のカラムの数を示しうる。この定義は、ターゲットテーブルを作成し、そして、データの信頼性のあるロードを実行する為に十分でありうる。別の例において、該テーブルスキーマは更に、テーブルTの属性の種類を示しうる。このことは、ストレージリソースがデータの種類、例えば浮動小数点数型及び整数型、に依存して異なるように割り当てられる為に、該ターゲットテーブルのリソースを正確に作成すること又は割り当てることを可能にする。別の例において、該テーブルスキーマは更に、テーブルの名前を示しうる。これは、複数のテーブルが同じカラム定義を有しうるが異なるテーブル名を有しうる為、該ターゲットデータベースシステムにおけるデータの上書きを防止しうる。
該データロードは、例えば該ターゲットデータベースシステムが使用されるところのコンテキストに依存して、異なる種類のデータロード方法に関与しうる。例えば、該データロード方法は、該データロードの工程と、該データロード方法の種類に依存した追加の工程とを含む。該データロード方法の1つの例は、データ再編成方法でありうる。該データ再編成方法は、該ソーステーブルの該データを異なる方法で編成しうる。該データ再編成は、分配基準に従って該ターゲットデータベースシステムの論理ノードにわたって該データを異なるように分配してもよく、若しくは異なるソート基準(例えば、社会保障番号によるソートの代わりに名前によるソート)によって該ソーステーブルにおける行の物理的ソート順序を変更してもよく、又はそれらの組み合わせであってもよい。例えば、該データ再編成方法は、データ再編成の要求を受信することに応じて、該ターゲットテーブルが該ターゲットデータベースシステム内に新たに作成されうること、並びに、全ての行が該ソーステーブルから該ターゲットテーブルにコピーされうること、及び新しい分配/ソート基準がそのコピー処理において適用されることを含みうる。この場合、該ソーステーブル及び該ターゲットテーブルは、該ターゲットデータベースシステムに属しうる。該データロード方法の別の例は、ソースデータベースシステムと該ターゲットデータベースシステムとの間のデータ同期方法でありうる。データ同期は、該ソースデータベースシステムの該ソーステーブルから該ターゲットデータベースシステムの該ターゲットテーブルへのデータ間の整合性を確立するプロセスであってもよく、又はその逆であってもよい。その為に、該データ同期方法は、該ソーステーブルにおける変更を検出し得、そして、それに応じて、該ソーステーブルの全コンテント(変更を含む)を、新しく作成されたテーブル内に移動する為に、新しいターゲットテーブルの作成をトリガーすることができる。すなわち、該ソーステーブルにおける幾つかの変更は、それぞれ幾つかのターゲットテーブルの作成を結果としてもたらしうる。このことは、時間の経過とともにデータの継続的な調和を可能にする。該データ同期方法は、初期のロード方法又は全テーブル再ロード方法を含みうる。該初期のロード方法は、ソーステーブルのデータを該ターゲットデータベースシステム内に最初にロードすることを云う。テーブルフル再ロード方法(table full reload method)は、該ソーステーブルにおける変更に応答して、該ソーステーブルを該ターゲットデータベースシステム内に続けてロードすることを云う。
従って、使用されるデータロード方法にかかわらず、該データロードは、s1)ターゲットテーブルを作成すること、s2)ソーステーブルから全ての行を抽出し、それらを該ターゲットテーブル内に挿入することの操作又は工程のシーケンスを含みうる。別の例において、該データロードは、s3)該ターゲットテーブルを参照するように、該ターゲットデータベースシステムで初期のテーブルのコンテントにアクセスするアプリケーション(例えば、ビュー)を適合させる操作を更に含みうる。データのロードを完了する為に必要とされる時間(ロードする時間)は、3つの工程s1~s3のそれぞれを実行する時間を含みうる。しかしながら、短時間でさえもデータへの一貫性のないアクセスを防ぐ為に、ロードする時間はできるだけ短くすることが理想的には望ましい。例えば、該ソーステーブル内の行数が非常に少ない場合に、工程s1)においてターゲットテーブルを作成する為のオーバーヘッドが目立つだけでなく、寧ろ大きくなる可能性がある。それはプロセス全体を支配する可能性がある。それは、テーブル作成が30ミリ秒しかかからない場合でさえも同様である。本主題は、ロードする時間を短縮し得、従って、データロード方法の実行を高速化しうる。その為に、該ターゲットテーブルは、後続の使用の為に該ターゲットデータベースシステムにおいて早期に作成されうる。そのようにして、既存のターゲットテーブルが、オンデマンドでターゲットテーブルを作成すること無しに、必要である場合に使用されうる。本主題は例えば、既存のデータロード方法を、工程s1)を実行しないように、又は適切なターゲットテーブルの存在に基づいて工程s1)を条件付きで実行するように構成することができる。これは、該データロードの工程s1)が該データロード方法の実行とは独立して実行されてもよいからである。
該ターゲットテーブルは例えば、ソーステーブルをロードすることが該ターゲットデータベースシステムにおいて発生することが予測されると決定することに応答して、予め用意されうる。1つの例において、該ターゲットテーブルの該ターゲットテーブルスキーマは、一意のスキーママッピングを使用して該ソーステーブルの該ソーステーブルスキーマから取得され得、そして次に、該ターゲットテーブルが該ターゲットテーブルスキーマを使用して作成されうる。別の例において、既存のテーブルが該ターゲットテーブルとして用意されてもよく、従って、該ターゲットテーブルの該ターゲットテーブルスキーマは、既存のテーブルのテーブルスキーマでありうる。別の例において、該ターゲットテーブルの該ターゲットテーブルスキーマは、ユーザ定義のテーブルスキーマであり得、例えば、ユーザは該ターゲットテーブルスキーマを用意するように促されてもよい。従って、該作成されたターゲットテーブルは、「将来のターゲットテーブル」と命名される。該ロードが将来の時点において発生しうることを決定する方法は、該ターゲットデータベースシステムにおいてデータをロードする為に使用されているデータロード方法に依存しうる。例えば、データロード(工程s1~工程s3)がどのようにトリガーされるかを導き出す為に若しくはデータをロードすることがどのテーブルスキーマの為に実行されるかの頻度を決定する為に又はそれらの組み合わせを実行する為に、データロード方法が解析され又は処理されうる。該解析の結果は、該ロードが将来の時点において発生しうるかを決定する為の方法を定義する為に使用されうる。例えば、或るソーステーブルTsが日付ベースで、例えば午前12時に、ロードされることを知ることにより、本発明の方法は、或る時点で、例えば午前9時に、データをロードすることがターゲットデータベースシステムにおいて、例えば該ソーステーブルのテーブルスキーマTsを有するテーブルにおいて、発生することが予測されることを決定しうる。別の例において、データ同期方法の場合、該ソースデータベースシステム内に新しいソーステーブルを作成することが、ターゲットデータベースシステムにおいて、例えば該ソーステーブルのテーブルスキーマを有するテーブルにおいて、発生することが予測されることを示しうる。このことは、作成されたソーステーブルが、初期のロードにおいてターゲットデータベースシステムに伝搬される必要のある新しいデータを必然的に格納しうる為である。初期のロードの後、該ソーステーブルが再び変更されることがまた予測され、従って、新しいテーブルがその変更を伝播させる為に必要とされうる。従って、「テーブルの追加」又は「初期のロード」又は「全テーブル再ロード」のような操作が終了するたびに、新しいターゲットテーブルが、データロード方法の次の潜在的な実行の為に、非同期に作成されうる。
従って、1つの実施態様に従うと、ソーステーブルをロードすることが発生することが予測されることを決定することが、該ソーステーブルを該ソースデータベースシステム内で作成することに応じて実行され、ここで、該ソースデータベースシステム及び該ターゲットデータベースシステムが、互いの間でデータを同期するように構成され、該ソーステーブルが、該将来のターゲットテーブルの該定義されたテーブルスキーマに該一意のスキーママッピングに従ってマッピングするソーステーブルスキーマを有する。この実施態様は例えば、該ソースデータベースシステムのデータをほぼリアルタイムで使用することを可能にするところのハイブリッドトランザクション及び分析処理環境を可能にしうる。
1つの実施態様に従うと、該ロードすることが発生することが予測されることを決定することが、該ソーステーブルを、該ソースデータベースシステムから該ターゲットデータベースシステムの現在のターゲットテーブル内にロードすることによって実行され、ここで、該現在のターゲットテーブルは該定義されたテーブルスキーマを有する。
例えば、該ソースデータベースシステムがソーステーブルTsを備えていると仮定する。ソーステーブルTsを作成することに応答して、本主題は、ターゲットテーブルスキーマを有するターゲットテーブルTg
0を予め作成しうる。該ターゲットテーブルスキーマは例えば、ソーステーブルTsの該ソーステーブルスキーマから該一意のスキーママッピングを使用して取得されうる。ターゲットテーブルTg
0は、ソーステーブルTsに関連付けられた該現在のターゲットテーブルでありうる。該ソーステーブルは、時刻t0で初期のコンテントを受信し得、及びソーステーブルTsの初期のコンテントは、現在のターゲットテーブルTg
0内にロードされうる。これは、最初のロード又は初期のロードとして云われうる。最初のロードに応答して、本主題は、ターゲットテーブルTg
0のテーブルスキーマを有する別のターゲットテーブルTg
1を事前に作成しうる。ターゲットテーブルTg
1は、ソーステーブルTsの2回目のロードの為に、ソーステーブルTsに関連付けられた現在のターゲットテーブルになりうる。ソーステーブルTsのコンテントが時刻t1で変化する場合に、ソーステーブルTsの現在のコンテントが、該作成された現在のターゲットテーブルTg
1内にロードされうる。該2回目のロードに応答して、本課題は、ターゲットテーブルTg
1の該テーブルスキーマを有する将来の他のターゲットテーブルTg
2を予め作成しうる。将来のターゲットテーブルTg
2は、ソーステーブルTsの3回目のロードの為に、ソーステーブルTsに関連付けられた現在のターゲットテーブルになりうる。ソーステーブルTsのコンテントが時刻t2で変化する場合に、ソーステーブルTsの現在のコンテントが該作成された現在のターゲットテーブルTg
2内にロードされうる(以降、続く)。
1つの実施態様に従うと、該方法は更に、現在の反復の将来のターゲットテーブルが次の反復の為の現在ターゲットテーブルになるところの該方法を繰り返し実行することを含む。
ソーステーブルTsの上記例に従い、並びに、初期のロードではターゲットテーブルTg
0が現在のターゲットテーブルであった。初期のロードの後、該作成された将来のターゲットテーブルTg
1がソーステーブルTsの2回のロード(1回目の反復)の為に、現在のターゲットテーブルになる。該ソーステーブルの2回目のロードの後(初期のロードに続く)、該作成された将来のターゲットテーブルTg
2がソーステーブルTsの次のロードの現在のターゲットテーブルになる(以降、続く)。このことは例えば、複数のターゲットテーブルTg
0,Tg
1,Tg
2...を結果として生じ、該複数のターゲットテーブルは、ソーステーブルがターゲットデータベースシステム内にロードされた回数に対応する。このことは、該ターゲットデータベースシステムでの該ソーステーブルの異なるバージョンを追跡しうるので有利でありうる。これらのバージョンは例えば、時間依存解析等に有用でありうる。しかしながら、このことは、該ターゲットデータベースシステムでのストレージリソースを必要としうる。本主題は、下記の実施態様を使用することによって、該ターゲットテーブルによって使用されるストレージリソースを節約しうる。1つの実施態様に従うと、現在の反復の現在のターゲットテーブルは、次の反復の将来のターゲットテーブルになる。上記の例に従うと、各ロード(初期のロード又は後続のロード)は、2つのテーブル、すなわち現在のターゲットテーブル及び作成された将来のターゲットテーブル、に関連付けられている。例えば、該最初のロードは、現在のターゲットテーブルTg
0及び将来のターゲットテーブルTg
1に関連付けられている。該2回目のロードは、現在のターゲットテーブルTg
1及び将来のターゲットテーブルTg
2に関連付けられている。該3回目のロードは、現在のターゲットテーブルTg
2及び該将来のターゲットテーブルTg
3に関連付けられている(以降、続く)。この実施態様では、該2回目のロードに関連付けられた将来のターゲットテーブルTg
2は、該最初のロードの現在のターゲットテーブルTg
0として用意されてもよく、並びに将来のターゲットテーブルTg
3は、該2回目のロードの現在のターゲットテーブルTg
1として用意されてもよい(以降、続く)。この場合、2つのテーブル、すなわちTg
0とTg
1のみが、該ターゲットデータベースシステムにおける該ソーステーブルをロードする為に使用されうる。言い換えれば、テーブルTg
0及びTg
1はロードの最後で役割を交換する:すなわち、Tg
0はTg
1になり、一方、Tg
1はTg
0になる。従って、2つのテーブルのみが作成され得、そして引き続き、スワッピングのみが行われる。
1つの実施態様に従うと、次の反復をロードすることは、現在の反復の現在のターゲットテーブルのコンテントが不可視であると考えることを含む。上記の例に従い、且つ上述されているように、該第2のロードに関連付けられた将来のターゲットテーブルTg
2が現在のターゲットテーブルTg
0として用意されてもよい。しかしながら、Tg
0はまだ、幾つかのデータを有しうる。この実施態様では、ターゲットテーブルTg
2(それは、Tg
0である)内にデータをロードする場合に、テーブルTg
0のコンテントは不可視と考えられうる。これは例えば、該ソーステーブルの各ロードの為に、該ターゲットテーブルの行の個々の異なる範囲を定義することによって実行される。従って、該コンテントが格納される該行は、ローディングが実行されるところの行と異なる(従って、該ローディングに対して不可視である)。代替的には、1つの実施態様に従うと、次の反復のローディングは、現在の反復の該ターゲットテーブルのコンテントをパージすることを含む。上記の例に従って、データをターゲットテーブルTg
2内にロードする前に、テーブルTg
0のコンテントがパージされうる。例えば、TRUNCATEのようなSQL文は、テーブルTg
0のコンテントをパージする為に使用されうる。このことは、該ターゲットデータベースシステムが該テーブルに関連付けられた全てのページを単に解放し並びに個々の行を削除しないので、TRUNCATE操作が非常に高速な操作である故に有利でありうる。該操作の別の利点は、ターゲットデータベースシステムのカタログにおけるメタデータが修正される必要がないことでありうる。このことは、そのメタデータカタログにおける同時処理を改善しうる。
1つの実施態様に従うと、該将来のターゲットテーブルを用意することは、非同期ジョブを用いて空のテーブルを作成することを含む。該ジョブは、使用されるデータロード方法の実行時間に関して非同期である。
1つの実施態様に従うと、ロードすることが発生することが予測されることを決定することは、該ターゲットデータベースシステム内にデータのロードの履歴を表す履歴データセットを処理すること、ここで、該履歴データセットは、ロードされたソーステーブル及び当該ロードすることが実行された時間を示すエントリを含み、並びに該処理に基づいて、該ロードすることが発生することが予測されることを決定することを含む。言い換えれば、該履歴データセットは、特定のスキーマを持つテーブルが必要とされる頻度を追跡しうる。その履歴が参照され、そして将来に予測することで、次のテーブルがおそらくいつ必要になるかを決定する。従って、前もって作成されることができる。上記の例に従うと、該履歴データセットのエントリは、タプル(Ts,t0)を含み得、別のエントリは(Ts,t1)を含み得、別のエントリはタプル(Ts,t2)を含みうる(以降、続く)。時刻t0、t1及びt2に基づいて、ソーステーブルTsをロードすることの頻度を導き出すことができる。この頻度は、ソーステーブルTsをロードすることが発生することが予測されることを決定する為に使用されうる。
1つの実施態様に従うと、該処理することが、該複数のエントリをテーブルスキーマ毎にグループ化すること、及び該ロードすることが発生することが予測されることを決定する為に、複数の該グループの各グループのデータロードの時刻挙動を用いることを含む。該定義されたテーブルスキーマは、時刻挙動がロードの発生が予測されることを示したグループのうちの1つのスキーマでありうる。また、ロードされることが期待されているソーステーブルは、前述された1つのグループのソーステーブルでありうる。
例えば、ソースデータベースシステムの複数のソーステーブル
が該ターゲットデータベースシステム内にロードされていると仮定する。従って、履歴データセットは、ソーステーブルの各々に関連付けられたエントリ、例えば、
等。ソーステーブル
はテーブルスキーマ
を有しうる。複数のテーブルスキーマのそれぞれは、そこに格納されるカラムの数及びそこに格納される属性の種類を示しうる。ハッシュ付けが、テーブルスキーマ
のスキーマ定義の為に適用されて、エントリをグループ化する際に高速に検索できるようにしうる。この実施態様は、同じテーブルスキーマを持つエントリを同じグループにグループ化することを可能にする。そして、各グループのエントリは、同じソースデータセットを表すものとして、首尾一貫して扱われうる。言い換えれば、同じスキーマ(例えば、同じカラム定義であるが異なるテーブル名)を有する複数のソーステーブルがある場合、それらの履歴がマージされ、そして一緒に考慮されることができる。このことは、例えば、それらのテーブルのうちの1つのテーブルが毎週月曜日~金曜日にロードされ、並びに別のテーブルが毎週土曜日及び日曜日に必要な場合等、オーバーヘッドを更に削減しうる。
1つの実施態様に従うと、該将来のターゲットテーブルの該定義されたテーブルスキーマが、一意のマッピングを使用してソーステーブルの既存のテーブルスキーマから取得される。例えば、該コンピュータシステムは、ソーステーブル中のデータを異なる方法で編成する為の要求を取得しうる。それは、データを、ターゲットデータベースシステムの論理ノードに異なる方法で分散させる可能性があり、或いはそれはまた、該ソーステーブルにおける行の物理的ソート順を異なる基準(例えば、名前によるソートと、社会保障番号によるソート)で変更する可能性がある。従って、将来のターゲットテーブルがターゲットデータベースシステム内に作成され、並びに全ての行がソーステーブルから将来のターゲットテーブルにコピーされ、そして、新しい分配/ソート基準がそのプロセスにおいて適用される。従って、再編成プロセスは新しいテーブルを必要とし、そして、ターゲットデータベースシステム内にそのテーブルを作成することは、ある程度の時間がかかる。この実施態様は、ターゲットテーブルを前もって、例えばデータ再編成の為の要求が来る前に、準備をすることによって、そのプロセスを高速化しうる。
図1は、本開示に関与する方法工程を実装する為に適したデータ処理システム100の為のブロック図である。データ処理システム100は例えば、IBM Db2 Analytics Accelerator for z/OS(IDAA)を備えうる。データ処理システム100は、ターゲットデータベースシステム121に接続されたソースデータベースシステム101を備えている。ソースデータベースシステム101は、例えば、IBM Db2 for z/OSを備えていてもよい。ターゲットデータベースシステム121は例えば、IBM Db2 Warehouse(Db2 LUW)を備えていてもよい。
ソースデータベースシステム101は、バス106によって互いに接続された、プロセッサ102、メモリ103、I/O回路104及びネットワークインタフェース105を備えている。
プロセッサ102は、1以上のプロセッサ(例えば、マイクロプロセッサ)を表しうる。メモリ103は、揮発性メモリ要素(例えば、ランダムアクセスメモリ(RAM)、例えば、DRAM、SRAM、SDRAM等)及び不揮発性メモリ要素(例えば、ROM、消去可能なプログラマブル読み取り専用メモリ(EPROM:erasable programmable read only memory)、電子的消去可能なプログラマブル読み取り専用メモリ(EEPROM:electronically erasable programmable read only memory)、プログラマブル読み取り専用メモリ(PROM:programmable read only memory))のいずれか1つ又はそれらの組み合わせを包含することが可能である。メモリ103は、様々な構成要素が互いに離れて配置されているが、プロセッサ102によってアクセスされることができるところの分散型アーキテクチャを有することができることに留意されたい。
永続的記憶デバイス107と組み合わせてメモリ103は、ローカルデータ及び命令記憶の為に使用されうる。記憶デバイス107は、I/O回路104によって制御される1以上の永続的記憶デバイス及び媒体を包含する。記憶デバイス107は、デジタルデータ記憶の為の磁気装置、光学装置、磁気光学装置又はソリッドステート装置、例えば、固定又は取り外し可能な媒体を有する、磁気装置、光学装置、磁気光学装置又はソリッドステート装置、を包含しうる。サンプル装置は、ハードディスクドライブ、光ディスクドライブ及びフロッピーディスクドライブを包含する。サンプル媒体は、ハードディスクプラッタ、CD-ROM、DVD-ROM、BD-ROM、フロッピーディスク等を包含する。
メモリ103は、1以上の別個のプログラム、例えばデータベース管理システムDBMS1 109を備えていてもよく、その各々は、論理機能、とりわけこの発明の実施態様に関与する機能、を実装する為の実行可能命令の順序付きリストを備えている。メモリ103内のソフトウェアはまた、典型的には、適切なオペレーティングシステム(OS:operating system)108を包含するものとする。OS 108は、本質的に、本明細書において記載されている方法の少なくとも一部を実装する為の他のコンピュータプログラムの実行を制御する。DBMS1 109は、DBアプリケーション111とクエリオプティマイザ110とを備えている。DBアプリケーション111は、記憶デバイス107内に格納されたデータを処理する為に構成されうる。クエリオプティマイザ110は、例えばソースデータベース112上で、クエリを実行する為のクエリプランを作成又は定義する為に構成されうる。ソースデータベース112は例えば、ソーステーブル190を備えていてもよい。
ターゲットデータベースシステム121は、バス126よって互いに接続された、プロセッサ122、メモリ123、I/O回路124及びネットワークインタフェース125を備えている。
プロセッサ122は、1以上のプロセッサ(例えば、マイクロプロセッサ)を表しうる。メモリ123は、揮発性メモリ要素(例えば、ランダムアクセスメモリ(RAM)、例えば、DRAM、SRAM、SDRAM等)及び不揮発性メモリ要素(例えば、ROM、消去可能なプログラマブル読み取り専用メモリ(EPROM)、電子的消去可能なプログラマブル読み取り専用メモリ(EEPROM)、プログラマブル読み取り専用メモリ(PROM))のいずれか1つ又はそれらの組み合わせを包含することが可能である。メモリ123は、様々な構成要素が互いに離れて配置されているが、プロセッサ122によってアクセスされることができるところの分散型アーキテクチャを有することができることに留意されたい。
永続的記憶デバイス127と組み合わせてメモリ123は、ローカルデータ及び命令記憶の為に使用されうる。記憶デバイス127は、I/O回路124によって制御される1以上の永続的記憶デバイス及び媒体を包含する。記憶デバイス127は、デジタルデータ記憶の為の磁気装置、光学装置、磁気光学装置又はソリッドステート装置、例えば、固定又は取り外し可能な媒体を有する、磁気装置、光学装置、磁気光学装置又はソリッドステート装置、を包含しうる。サンプル装置は、ハードディスクドライブ、光ディスクドライブ及びフロッピーディスクドライブを包含する。サンプル媒体は、ハードディスクプラッタ、CD-ROM、DVD-ROM、BD-ROM、フロッピーディスク等を包含する。
メモリ123は、1以上の別個のプログラム、例えばデータベース管理システムDBMS2 129を備えていてもよく、その各々は、論理機能、とりわけこの発明の実施態様に関与する機能、を実装する為の実行可能命令の順序付きリストを備えている。メモリ123内のソフトウェアはまた、典型的には、適切なOS 128を包含するものとする。OS 128は、本質的に、本明細書において記載されている方法の少なくとも一部を実装する為の他のコンピュータプログラムの実行を制御する。DBMS2 129は、DBアプリケーション131とクエリオプティマイザ130とを備えている。DBアプリケーション131は、記憶デバイス127内に格納されたデータを処理する為に構成されうる。クエリオプティマイザ130は、例えばターゲットデータベース132上で、クエリを実行する為のクエリプランを作成又は定義する為に構成されうる。
ソースデータベースシステム101及びターゲットデータベースシステム121は、ネットワークインタフェース105及び125を介して、高速接続142又はネットワーク141を通じて通信する独立したコンピュータハードウェアプラットフォームでありうる。ネットワーク141は例えば、ローカルエリアネットワーク(LAN:local area network)、一般的なワイドエリアネットワーク(WAN:wide area network)、若しくは公衆ネットワーク(例えば、インターネット)又はそれらの組み合わせを備えうる。ソースデータベースシステム101及びターゲットデータベースシステム121の各々は、データのそれ自体のコピーを管理する為の責任を有していてもよい。
別々のシステムとして図1において示されているが、該ソースデータベースシステム及び該ターゲットデータベースシステムは、単一のシステム、例えば同じメモリとプロセッサハードウェアとを共有する単一のシステム、に属していてもよく、一方、該ソースデータベースシステム及び該ターゲットデータベースシステムの各々は、個々のDBMS及びデータセットに関連付けられており、例えば2つのDBMSが共有メモリに格納されてもよい。別の例において、2つのデータベース管理システムDBMS1及びDBMS2は、本明細書に記載されているようにDBMS1及びDBMS2によって実行される通信及び方法を可能にするところの単一のDBMSの一部を形成しうる。第1のデータセット及び第2のデータセットは、同じストレージに格納されてもよいし、又は別々のストレージに格納されてもよい。
データベースエンジン155は、ソースデータベースシステム101とターゲットデータベースシステム121との間でデータを同期させるように構成されうる。データベースエンジン155は、本主題に従って、データ移行又はデータ転送を実行するように構成されうる。別の例において、データベースエンジン155は、2つのデータベースシステム101及び121のうちの一方のデータを、他方のデータベースシステムから独立して管理するように構成されうる。この場合、データ処理システム100は、2つのデータベースシステムのうちの当該1つのみから構成されうる。従って、データベースエンジン155は、ソースデータベースシステム101若しくはターゲットデータベースシステム121又はそれらの組み合わせの一部でありうる。例えばデータベースエンジン155は、DBMS1 109若しくはDBMS2 129又はそれらの組み合わせの少なくとも一部で構成されうる。別の例において、データベースエンジン155は、データ処理システム100に接続するように構成された別個のコンピュータシステムであってもよいし、それを構成してもよく、データベースエンジン155は、データ処理システム100を制御して本方法の少なくとも一部を実行するように構成されうる。
図2は、データをターゲットデータベースシステム、例えばターゲットデータベースシステム121、にロードする方法を示すフローチャート図である。説明の目的の為に、図2において記載されている方法は、図1に示されているシステムにおいて実装されてもよいが、この実装に限定されるものでない。図2の方法は例えば、データベースエンジン155によって実行されてもよい。
少なくとも1つのソーステーブルをロードすることがターゲットデータベースシステム121において発生することが予測されることが工程201において決定されうる。工程201は、該1以上のソーステーブルをターゲットデータベースシステム121内へロードすることが、将来の時点において発生しうるかを決定しうる。この決定は、異なる方法、例えば図5において記載されたような異なる方法、において実行されてもよい。1つの例において、工程201は、ユーザ入力が受信されたかを決定してもよく、ここで、該ユーザ入力は、データが該ターゲットデータベースシステム内にロードされるか又は該ターゲットデータベースシステム内にロードされていないかを示す。
工程201は、予め定義されたソーステーブルにおいて実行されてもよい。工程201は、既存のシステムにおいて又は新たに(ゼロから)作成されたシステムにおいて実行されてもよい。工程201は、複数のソーステーブルのうちの1以上のデータがターゲットデータベースシステム121内にロードされることが予測されることを決定しうる。予め定義されたソーステーブルは、例えば、工程201が実行された時刻ts201(例えば、事前定義されたソーステーブルの作成日が時刻ts201よりも古い)で既に存在するソーステーブルであり得、並びに工程201は、該データが時刻ts201よりも新しい時点でロードされることが予測されることを決定しうる。該予め定義されたソーステーブルは、該ターゲットデータベースシステムにまだロードされていないテーブル若しくはターゲットデータベースシステム内に少なくとも1回ロードされたテーブル又はそれらの組み合わせから構成されていてもよい。
ソーステーブルをロードすることがターゲットデータベースシステム121において発生することがないと予測される場合、該方法は終了してもよく、又は1以上のソーステーブルをロードすることが発生することが予測されるまで、又は工程201の該繰り返しの回数が閾値を超えるまで工程201が繰り返されてもよい。少なくとも1つのソーステーブルをロードすることがターゲットデータベースシステム121において発生することが予測される場合、工程203が実行されうる。例えば、ソーステーブル
が、ターゲットデータベースシステム121において、個々のターゲットテーブル内にロードされることが予測されることが工程201において決定される。インデック0は、工程201~工程207の初期の実行/最初の実行を云う。ソーステーブル
はそれぞれ、テーブルスキーマ
を有する。従って、工程203において(例えば、時刻ts203で)、n0個のソーステーブルの各ソーステーブルの為に、将来のターゲットテーブルが、個々の定義されたテーブルスキーマ
に従って、ターゲットデータベースシステム121内に予め用意されうる。例えば、工程203において、将来のターゲットテーブル
は、テーブルスキーマ
に従って提供されうる。工程201において識別された各ソーステーブルの為に、新しい空のテーブルを作成することによって、又はターゲットデータベースシステムの既存のテーブルを該ターゲットテーブルとして使用することによって、工程203において、ターゲットテーブルが用意されうる。既存のテーブルを使用する場合、工程203は更に、既存のテーブルのテーブルスキーマが該ソーステーブルのテーブルスキーマであるかをチェックしてもよく、そうでなければ新しいテーブルが作成されうる。
工程203を実行した後、工程205において、データをロードする為のロード要求が受信されうる(例えば、時刻ts205で)。該ロード要求は、ソーステーブル
のうちの少なくとも一部(例えば、その全て)をロードすることを要求されうる。例えば、該ロード要求は、ソーステーブル
をロードすることを要求しうる。該ロード要求を受信することに応じて、工程207において(例えば、時刻ts207で)将来のターゲットテーブル
は、要求されたソーステーブルとそれぞれ関連付けられた将来のターゲットテーブル内にロードされうる。ビューがターゲットデータベースシステムに提供されうる。該ビューは、将来のターゲットテーブル
を処理/分析する為に使用されうる。すなわち、該ビューは、ターゲットテーブル
への参照を含む。
しかしながら、工程207において初期のロードが開始されるときに、工程203におけるテーブル作成がまだ完了していないことが起こりうる。1つの例において、工程207の初期のロードは、工程203における非同期テーブル作成と同期されうる。別の例において、該非同期プロセスは、将来のターゲットテーブルを作成しうる。該初期のロードが開始されるときにそれがまだ完了していない場合、該初期のロードは、それ自身の、独立した将来のターゲットテーブルを作成し、そして、それを使用することができる。従って、該初期のロード後、新しい将来のターゲットテーブル(非同期に作成されたもの)が既に存在し、そして、使用されることができるであろう。
1つの例において、図2の方法は、該ソーステーブルが該ソースデータベースシステムの一部であるところのソースデータベースシステム及びターゲットデータベースシステムを有するシステムにおいて実行されうる。図2の該方法は、アプリケーションにおいて又は該システムのデータベースカーネルにおいて実施されうる。後者の場合、データベースと協働する全てのアプリケーションにとって有益でありうる。別の例において、図2の該方法は、該ターゲットデータベースシステムのみを含むシステムにおいて実行され得、ここで、該ソーステーブルは、該ターゲットデータベースシステムの一部でありうる。従って、図2の方法は、データ同期方法又はデータ再編成方法として使用されうる。
図3は、データをターゲットデータベースシステム、例えばターゲットデータベースシステム121、にロードする方法を示すフローチャート図である。説明の目的の為に、図3において記載されている方法は、図1に示されているシステムにおいて実装されてもよいが、この実装に限定されるものでない。図2の方法は例えば、データベースエンジン155によって実行されてもよい。説明の目的の為に、図3において記載されている方法は、図1に示されているシステムにおいて実装されてもよいが、この実装に限定されるものでない。図3の方法は例えば、データベースエンジン155によって実行されてもよい。
工程301~工程305は、図2の方法の工程201~工程205である。要求されたソーステーブル
のデータは、個々の(現在の)ターゲットテーブル
内にロードされてもよく、並びに工程307において、将来のターゲットテーブル
が、個々のソーステーブルを続けてロードすることを可能にする為に用意されうる。例えば、データをロードした後、将来のターゲットテーブル
が、直ちに用意されうる。将来のターゲットテーブル
は、現在のターゲットテーブル
をそれぞれ有しうる。別の例において、工程307において、将来のターゲットテーブル
が、ソーステーブル
をロードすることと同時に用意されうる。従って、工程301~工程307の最初の実行の為に、ターゲットテーブル
は、ソーステーブル
それぞれの現在のターゲットテーブルであり、並びに、
は、ソーステーブル
それぞれの将来のターゲットテーブルである。
加えて、方法工程305~307は、繰り返されうる。この繰り返しは、ロード要求の受信に応答して自動的に実行されうる。
1つの例において、工程305おいて、同じソーステーブル
がその後の反復において再びロードされるように要求される場合、工程307において、それらは、対応する将来のターゲットテーブル
内にそれぞれロードされてもよく、並びに、工程307において、将来のターゲットテーブル
は、その後の反復の為に用意されうる(以降、続く)。すなわち、工程305~工程307の最初の繰り返しにおいて、ターゲットテーブル
は、ソーステーブル
の現在のターゲットテーブルそれぞれであり、並びに
は、ソーステーブル
の将来のターゲットテーブルそれぞれである。
1つの例において、最初の繰り返しの工程305において、(ロードされるべき)要求されるべきソーステーブル
が、以前に要求されたソーステーブルと異なり(例えば、それらは、ソーステーブル
をさらに備えている)、ここで、ターゲットテーブル
はそれぞれ、ソーステーブル
の現在のターゲットテーブルであり(すなわち、
は工程303において用意されるものであり、並びに残りは工程307において用意されるものである)、並びに、
は、ソーステーブル
の将来のターゲットテーブルである。言い換えれば、工程307において、所与のソーステーブルの為にロードすることは、該ソーステーブルの為に、最後に提供されるターゲットテーブルにおいて実行される。
例えば、工程305~工程307の繰り返しは、停止基準が満たされるまで実行されうる。該停止基準は例えば、反復の回数が予め定められた再ロード閾値よりも小さいことを要求しうる。工程305の各反復において受信されたロード要求は、同じソーステーブルがロードされることを要求してもよいし又は要求しなくてもよい。ソーステーブル
(ここで、jは、0~工程305~工程307の反復の回数で変化する)は、工程305の各実行において要求される。該要求されたソーステーブルは、工程301において特定されたソーステーブルの一部である。
最初のロードすることの例において、将来のターゲットテーブル
が新しい空のテーブルをそれぞれ作成することによって工程307において用意されうる。2回目のロードすることの例において、該ターゲットテーブル
が既存のテーブルを使用して工程307において用意されうる。その為に、要求された各ソーステーブルは、既存のテーブルを使用する為に又は新しいテーブルを作成する為に、図10の方法工程1001~1007を使用して処理されうる。
工程305において、要求された各ソーステーブルの為に、下記の2種類のターゲットテーブルが用意されうる。すなわち、工程307においてソーステーブルがその中にロードされるところの現在のターゲットテーブル、及び該ソーステーブルを将来のターゲットテーブルへ続けてロードする為に工程307において用意される将来のターゲットテーブルである。3回目のロードの例において、該ソーステーブルの再ロードの回数に関係無しに、これら2つのテーブルのみが該ソーステーブルに関連付けられうる。その為に、スワッピング方法が使用されうる。例えば、ソーステーブル
は、工程305において初めてロードされるように要求された場合、ソーステーブル
は、対応する作成された(例えば、工程303において)現在のターゲットテーブル
内にロードされ得、加えて、工程307において、将来のターゲットテーブル
は、工程307において用意されうる。工程305において、ソーステーブル
が、2回目にロードされるように要求された場合、ソーステーブル
が、ターゲットテーブル
内にロードされ得、そして、工程307において、既存のターゲットテーブル
は、将来のターゲットテーブルとして用意されうる。ソーステーブル
が、3回目にロードされるように要求された場合、ソーステーブル
が、ターゲットテーブル
内にロードされ得、そして、工程307において、既存のターゲットテーブル
が、将来のターゲットテーブルとして用意されうる(以降、続く)。
工程305~工程307の各繰り返しの後、及び各ソーステーブルの為に、該ソーステーブルがその新しいターゲットテーブル内に再ロードされる場合に、該ソーステーブルに関連付けられたターゲットテーブルへの参照が該新しいターゲットテーブルに更新されるように、図2を参照して説明されたビューが更新されてもよい。
図4は、データをターゲットデータベースシステム、例えばターゲットデータベースシステム121、にロードする方法を示すフローチャート図である。説明の目的の為に、図4において記載されている方法は、図1に示されているシステムにおいて実装されてもよいが、この実装に限定されるものでない。図4の方法は例えば、データベースエンジン155によって実行されてもよい。
図4の方法の工程401~工程407はそれぞれ、図2の工程201~工程207である。加えて、該方法の工程401~工程407は繰り返されてもよい。該繰り返しは例えば、該ロード要求の受信に応じて自動的に実行されてもよい。該繰り返しは例えば、定期的に、例えば1時間毎に、実行されうる。該繰り返しは、停止基準が満たされるまで実行されうる。該停止基準は例えば、反復の回数が予め定められた再ロード閾値よりも小さいことを要求しうる。
工程401のi番目の繰り返しにおいて、ソーステーブル
がロードされることが予測され、及びniはn0に等しくてもよく又は等しくなくてもよく(図2を参照)、並びにi番目の繰り返しのソーステーブルは、工程401の初期の実行のソーステーブル
と同じであってもよく又は同じでなくてもよい。ターゲットテーブル
は、ソーステーブル
の為に、工程403のi番目の繰り返しにおいて用意され、従って、工程407において、要求に応じて、該ソーステーブルは、上記の用意されたターゲットテーブル内にそれぞれロードされうる。
工程401において識別された各ソーステーブルについて、工程403における対応する将来のターゲットテーブルの提供は、図2を参照して記載されているように実行されてもよい。代替的には、該ターゲットテーブルは、スワッピング方法を用いて用意されてもよい。すなわち、ロードされる各ソーステーブルの為に、2つのターゲットテーブルのみが用意されうる。該2つのターゲットテーブルは、該ソーステーブルの為の工程403の最初の2つの実行において用意されてもよい。そして、該ソーステーブルの為に工程403の以降の実行は、2つのターゲットテーブルのうちの1つを使用しうる。例えば、ソーステーブル
が初めてロードされることを工程405において要求される場合、ソーステーブル
は、対応する作成された現在のターゲットテーブル
内にロードされうる。ソーステーブル
が2回目の為にロードされることを工程405において要求される場合、ソーステーブル
は、ターゲットテーブル
内にロードされうる。ソーステーブル
が3回目の為にロードされることを工程405において要求される場合、ソーステーブル
は、ターゲットテーブル
内にロードされうる(以降、続く)。このスワッピングは、現在の反復のロードする工程407が次の反復の工程403におけるターゲットテーブルの用意を同時に実行されることができる為に有利でありうる。
図5は、図2の工程201を実装する為の例示的な方法のフローチャート図である。説明の目的の為に、図5において記載されている方法は、図1に示されているシステムにおいて実装されてもよいが、この実装に限定されるものではない。図5の方法は例えば、データベースエンジン155によって実行されてもよい。
ターゲットデータベースシステム121内にロードするデータの履歴を表す履歴データセットが、工程501において用意されうる。該履歴データセットは、ロードされたソーステーブルと、該該ロードすることが実行された時刻とを示すエントリを含む。例えば、履歴データセットのエントリは、タプル(Ts,t0)を含み得、ここで、Tsは、時刻t0でロードされたソーステーブルであり、別のエントリは(Ts,t1)を含み得、別のエントリはタプル(Ts,t2)を含みうる(以降、続く)。
該履歴データセットは、工程503において処理又は分析されうる。例えば、ソーステーブルTsのロードの時刻挙動が決定されうる。該時刻挙動は例えば、ソーステーブルTsをロードすることの頻度を示す。
該処理の結果を用いて、少なくとも1つのソーステーブルをロードすることが、該ソーステーブル
の個々のテーブルスキーマを有する該ターゲットデータベースシステムにおいて発生することが予測されことが工程505において決定されうる。
図6は、データをターゲットデータベースシステム、例えばターゲットデータベースシステム121、内にロードする方法のフローチャート図である。説明の目的の為に、図6に記載されている方法は、図1に示されているシステムにおいて実装されてもよいが、この実装に限定されるものではない。図6の方法は例えば、データベースエンジン155によって実行されてもよい。
工程601~工程605はそれぞれ、図5の工程501~工程505である。下記のn0個のソーステーブル
の各ソーステーブルについて、将来のターゲットテーブルが、下記のソーステーブル
の個々の定義されたテーブルスキーマ
に従って、ターゲットデータベースシステム121内に工程607において予め用意されうる。
工程609において、データ再編成要求が受信されうる。該データ再編成要求は、ソーステーブル
のうちの少なくとも1部の再編成を要求しうる。例えば、該再編成は、分配基準に従って該ターゲットデータベースシステムの論理ノードにわたって該データを異なって分配してもよく、若しくは異なるソート基準(例えば、社会保障番号によるソートの代わりに名前によるソート)によってソーステーブルにおける行の物理的ソート順序を変更してもよく、又はそれらの組み合わせであってもよい。
工程611において、ソーステーブル
のうちの少なくとも1部は、再編成スキームに従って、対応するターゲットテーブル内にロードされうる。
図7は、ソースデータベースシステム101とターゲットデータベースシステム121との間でデータを同期する為の方法のフローチャート図である。説明の目的の為に、図7において記載されている方法は、図1に示されているシステムにおいて実装されてもよいが、この実装に限定されるものではない。図7の方法は例えば、データベースエンジン155によって実行されてもよい。
ソーステーブルが該ソースデータベースシステム内に作成されるかが工程701において決定されうる。該ソーステーブルは、「テーブルを追加する」操作によって作成されてもよい。その場合、工程703において、初期のターゲットテーブルが該ターゲットデータベースシステム内に作成されてもよい。ソーステーブルがソースデータベースシステム内に作成されていない場合、該方法は終了してもよく、又はソーステーブルが作成されるまで若しくは工程701の該繰り返しの回数が閾値を超えるまで、工程701が繰り返されてもよい。工程705において、ソーステーブルをロードする為のロード要求が受信されうる。そして、工程707において、該ソーステーブルのコンテントが初期のターゲットテーブル内にロードされてもよい。従って、本明細書におけるアイデアは、該ソーステーブルが追加された後に空のテーブルを作成することである。非同期ジョブがそれを処理してもよく、それは、何らかのタイマーに基づいて、又は「テーブルを追加する」操作によって開始されることができる。工程703のターゲットテーブルは、工程707における「初期のロード」の為に、今、利用されることができ、そのことは、初期のロードの為の工程s1)がスキップされることができることを意味する。なお、初期のロードが工程707において開始する場合に、工程703におけるテーブル作成がまだ完了していない場合、1つの例において、該初期のロードは、それ自体が非同期のテーブル作成と同期をしなければならないことがありうる。それは、該テーブル作成が、「テーブルの追加」と「初期のロード」の開始との間の時間ウィンドウにおいて実行(少なくとも開始)することができるので、ロード時間における改善に既になりうる。別の例において、非同期プロセスは、該将来のターゲットテーブルを作成しうる。該初期のロードが開始したときにそれがまだ完了していない場合、該初期のロードは、それ自身の、独立した将来のターゲットテーブルを作成することができ、そしてそれを使用することができる。従って、初期のロードの後、新しい将来のターゲットテーブル(非同期に作成されたもの)が既に存在し、且つ使用されることができるであろう。
図8は、ソースデータベースシステム101とターゲットデータベースシステム121との間でデータを同期する為の方法のフローチャート図である。説明の目的の為に、図8において記載されている方法は、図1に示されているシステムにおいて実装されてもよいが、この実装に限定されるものではない。図8の方法は例えば、データベースエンジン155によって実行されてもよい。
工程801~工程805は、図7の工程701~工程705である。図8の工程807は、図7の工程707を、将来ターゲットテーブルの用意を更に含むように変更したものである。例えば、該将来のターゲットテーブルは、工程807におけるデータをロードすることと同時に用意されてもよい。別の例において、該将来のターゲットテーブルは、工程807におけるデータをロードすることの直後に用意されてもよい。加えて、方法工程805~工程807は、繰り返されてもよい。該繰り返しは、該ロード要求の受信に応じて自動的に実行されてもよい。例えば、該繰り返しは、停止基準が満たされるまで実行されうる。該停止基準は例えば、反復の回数が予め定められた再ロード閾値よりも小さいことを要求しうる。現在の反復における工程807での該ソーステーブルを再ロードすることは例えば、該ソーステーブルの為に前回の反復における工程807において用意された将来の最後のターゲットテーブルにおいて実行されうる。
図8の方法は、本主題に従ってそのコンテントを継続的にロードする為に、工程801で同定されているソーステーブルを継続的に監視することを可能にしうる故に有利でありうる。
図9は、本主題の1つの例に従うターゲットデータベースシステムにおけるデータをロードする方法のフローチャート図である。説明の目的の為に、図9において記載されている方法は、図1に示されているシステムにおいて実装されてもよいが、この実装に限定されるものではない。図9の方法は例えば、データベースエンジン155によって実行されてもよい。
図9の方法は、新しいソーステーブルを検出する為に、図8の方法を繰り返すことを含む。該繰り返しは例えば、定期的に、例えば1時間毎に、実行されうる。該繰り返しは、停止基準が満たされるまで実行されうる。該停止基準は例えば、反復の回数が予め定められた閾値よりも小さいことを要求しうる。この場合、工程805において受信したロード要求は、工程801において決定されている1以上のソーステーブルのロード要求であり得、ここで、該ロードすることは対応するターゲットテーブルにおいて実行され得、将来のターゲットテーブルの作成は、要求されたソーステーブルそれぞれの為に実行されうる。また、現在の反復における工程807での各ソーステーブルを再ロードすることは例えば、該各ソーステーブルの為に前回の反復における工程807において用意された将来の最後のターゲットテーブルにおいて実行されうる。
図10は、本主題の1つの例に従うターゲットデータベースシステムにおけるデータをロードする方法のフローチャート図である。説明の目的の為に、図10において記載されている該方法は、図1に示されているシステムにおいて実装されてもよいが、この実装に限定されるものでない。図10の方法は例えば、データベースエンジン155によって実行されてもよい。
図10の方法は例えば、ターゲットデータベースシステム121におけるソーステーブルをロードする為のデータロード要求を受信することに応じて実行されうる。該ソーステーブルに関連付けられたターゲットテーブルが存在するかが決定されうる(工程1001)。該ソーステーブルに関連付けられたターゲットテーブルが存在する場合、該ターゲットテーブルは該ソーステーブルのテーブルスキーマと同じテーブルスキーマを有するかが決定されうる(工程1003)。該ターゲットテーブルが該ソーステーブルのテーブルスキーマと同じテーブルスキーマを有する場合、該ターゲットテーブルが工程1007において使用されうる。該ターゲットテーブルが該ソーステーブルのテーブルスキーマと同じテーブルスキーマを有しない場合又は該ターゲットテーブルが存在しない場合、新しいターゲットテーブルが工程1005において作成され得、そして、該新しいターゲットテーブルが工程1009において使用されうる。工程1009において、該ソーステーブルのデータが、既存のターゲットテーブル又は新規に作成されたターゲットテーブル内に挿入されうる。該挿入は、工程1010においてコミットされうる。そして、ビューが工程1011において修正されてもよく、ここで、該ビューは、工程1009において使用されたターゲットテーブルを参照するように修正される。該ビューは、該ターゲットデータベースシステムにおけるソーステーブルのコンテントを処理するように構成される。
図11は、本主題に従ってターゲットテーブルを予め用意する方法のフローチャート図である。説明の目的の為に、図11において記載されている方法は、図1に示されているシステムにおいて実装してもよいが、この実装に限定されるものではない。図11の方法は例えば、データベースエンジン155によって実行されてもよい。図11の方法は、工程307の例示的な実装を用意する。
図11の方法は例えば、該ソーステーブルをロードする為のデータロード要求を受信することに応じて実行されうる。該ソーステーブルのテーブルスキーマにマッピングされるテーブルスキーマを有するターゲットテーブルが存在するかが工程1101において決定され得、例えば、該ターゲットテーブルのスキーマが該ソーステーブルのテーブルスキーマと同じであるかが決定されうる。もしそうであれば、既存のターゲットテーブルは、工程1103においてパージされ得、そして、該ソーステーブルがそのターゲットテーブル内にロードされるように、将来のターゲットテーブルとして用意されうる。もしそうでなければ、工程1105において、新しいターゲットテーブルが作成されうる。該パージすることは例えば、有利には、TRUNCATE操作を使用して実行されてもよい。
本発明は、統合のありうる任意の技術的詳細レベルでの、システム、方法若しくはコンピュータプログラム製品又はそれらの組み合わせでありうる。該コンピュータプログラム製品は、プロセッサに本発明の観点を実行させる為のコンピュータ可読プログラム命令を有する1以上のコンピュータ可読記憶媒体を包含しうる。
該コンピュータ可読記憶媒体は、命令実行デバイスによって使用する為の命令を保持且つ記憶することができる有形のデバイスであることができる。該コンピュータ可読記憶媒体は、例えば、電子ストレージデバイス、磁気ストレージデバイス、光ストレージデバイス、電磁ストレージデバイス、半導体ストレージデバイス、又はこれらの任意の適切な組み合わせでありうるが、これらに限定されない。該コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストは、下記を包含する:ポータブルのコンピュータディスケット(登録商標)、ハードディスク、ランダムアクセスメモリ(RAM:random access memory)、読み取り専用メモリ(ROM:read only memory)、消去可能なプログラマブル読み取り専用メモリ(EPROM:erasable programmable read-only memory)又はフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM:static random access memory)、ポータブル・コンパクトディスク読み取り専用メモリ(CD-ROM:compact disc read-only memory)、デジタル多用途ディスク(DVD:digital versatile disk)、メモリスティック、フロッピーディスク、機械的に符号化されたデバイス、例えば、パンチカード若しくは命令が記録されている溝内の隆起構造又はこれらの任意の適切な組み合わせ。本明細書において使用される場合、コンピュータ可読記憶媒体は、一時的な信号それ自体、例えば、電波又は他の自由に伝播する電磁波、導波管若しくは他の伝送媒体を伝播する電磁波(例えば、光ファイバケーブルを通過する光パルス)、又は電線を介して送信される電気信号、であると解釈されるべきでない。
本明細書において記載されたコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体から個々のコンピューティングデバイス/処理デバイスに、又はネットワーク、例えば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク若しくはワイヤレスネットワーク又はそれらの組み合わせ、を介して外部コンピュータ又は外部記憶デバイスにダウンロードされることができる。該ネットワークは、銅線伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ若しくはエッジサーバ又はこれらの組み合わせで構成されうる。各コンピューティングデバイス/処理デバイスにおけるネットワークアダプタカード又はネットワークインタフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、そして、該コンピュータ可読プログラム命令を、個々のコンピューティングデバイス/処理デバイス内にコンピュータ可読記憶媒体中に記憶する為に転送する。
本発明の動作を実行する為のコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA:instruction-set-architecture)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路の為の構成データ、又は、1以上のプログラミング言語、例えばオブジェクト指向プログラミング言語、例えば、Smalltalk、C++等、慣用的な手続き型プログラミング言語(例えば、「C」プログラミング言語又は同様のプログラミング言語)、の任意の組み合わせで書かれているソースコード又はオブジェクトコードのいずれか、でありうる。該コンピュータ可読プログラム命令は、ユーザのコンピュータ上で全体的に、ユーザのコンピュータ上で部分的に、ユーザのコンピュータ上でスタンドアロン・ソフトウェア・パッケージとして部分的に、ユーザのコンピュータ上で部分的に且つリモート・コンピュータ上で部分的に、又はリモート・コンピュータ若しくはサーバ上で全体的に、実行されうる。後者のシナリオにおいて、該リモート・コンピュータは、任意の種類のネットワーク、例えば、ローカルエリアネットワーク(LAN:local area network)若しくはワイドエリアネットワーク(WAN:wide area network)、を介してユーザのコンピュータに接続されうるか、又は該接続は(例えば、インターネットサービスプロバイダを使用したインターネットを通じて)外部コンピュータに対して行われうる。幾つかの実施態様において、電子回路、例えば、プログラマブル論理回路、フィールドプログラマブルゲートアレイ(FPGA:field-programmable gate arrays)又はプログラマブルロジックアレイ(PLA:programmable logic arrays)、は、本発明の観点を実行する為に、コンピュータ可読プログラム命令の状態情報を利用することによって、電子回路をパーソナライズすることによって、コンピュータ可読プログラム命令を実行しうる。
本発明の観点は、本発明の実施態様に従う、方法、装置(システム)及びコンピュータプログラム製品若しくはコンピュータプログラムのフローチャート図若しくはブロック図又はそれらの組み合わせを参照して本明細書において記載されている。該フローチャート図若しくは該ブロック図又はそれらの組み合わせの各ブロック、並びに該フローチャート図若しくは該ブロック図又はそれらの組み合わせにおける複数のブロックの組み合わせは、コンピュータ可読プログラム命令によって実装されることができることが理解されるであろう。
これらのコンピュータ可読プログラム命令は、該コンピュータ又は他のプログラム可能なデータ処理装置のプロセッサを介して実行する命令が該フローチャート図若しくはブロック図又はそれらの組み合わせの1以上のブロックにおいて特定された機能/動作を実装する為の手段を作成するように、コンピュータのプロセッサ又は他のプログラム可能なデータ処理装置に提供されて、マシンを作り出しうる。記憶された命令を有するコンピュータ可読記憶媒体が該フローチャート図若しくはブロック図又はそれらの組み合わせの1以上のブロックにおいて特定される機能/動作の観点を実装する命令を含む製造品を含むように、これらのコンピュータ可読プログラム命令はまた、コンピュータプログラム可能なデータ処理装置若しくは他のデバイス又はこれらの組み合わせに特定の様式で機能するように指示することができるコンピュータ可読記憶媒体中に記憶されうる。
該コンピュータ可読プログラム命令はまた、コンピュータ上、他のプログラム可能なデータ処理装置上又は他のデバイス上で実行される命令が、該フローチャート図若しくはブロック図若しくはそれらの組み合わせの1以上のブロックにおいて特定される機能/動作を実装するように、上記のコンピュータ上、他のプログラム可能なデータ処理装置上又は他のデバイス上にロードされて、コンピュータ、他のプログラム可能な装置又は他のデバイス上で一連の操作工程を実行させて、コンピュータに実装されたプロセスを作成しうる。
図面中のフローチャート図及びブロック図は、本発明の様々な実施態様に従う、システム、方法及びコンピュータプログラム製品若しくはコンピュータプログラムのありうる実装の、アーキテクチャ、機能及び動作を示す。これに関連して、該フローチャート図又はブロック図における各ブロックは、命令のモジュール、セグメント、又はその一部を表し得、それは、特定された1以上の論理機能を実装する為の1以上の実行可能命令を含む。幾つかの代替の実装において、該ブロックにおいて示されている機能は、図面中に示されている順序とは異なって生じうる。例えば、連続して示されている2つのブロックは、実際には、関与する機能に依存して、同時に、実質的に同時に、部分的又は全体的に時間的に重複する様式で実行される1つの工程として達成されうるか、又は該ブロックは、逆の順序で実行されうる。該ブロック図若しくはフローチャート図又はこれらの組み合わせの各ブロック、並びに該ブロック図若しくはフローチャート図又はこれらの組み合わせの複数のブロックの組み合わせは、特定された機能又は動作を実行する特別な目的のハードウェアベースのシステムによって実装することができ、又は特別な目的のハードウェアとコンピュータ命令との組み合わせを実行することができることに留意されたい。
Claims (14)
- データをターゲットデータベースシステムにロードする為の、コンピュータに実装された方法であって、
ソーステーブルをロードすることが前記ターゲットデータベースシステムにおいて発生することが予測されることを決定すること;
将来のターゲットテーブルを、定義されたテーブルスキーマに従って予め用意すること;その後、
前記ソーステーブルをロードする為のロード要求を受信すること;
前記ソーステーブルのデータを前記将来のターゲットテーブル内にロードすること
を含む、前記方法。 - 前記ロードすることが発生することが予測されることを決定することが、
前記ソーステーブルをソースデータベースシステム内で作成すること、ここで、前記ソースデータベースシステム及び前記ターゲットデータベースシステムが、互いの間でデータを同期するように構成され、前記ソーステーブルが前記定義されたテーブルスキーマを有する;又は、
前記ソーステーブルのデータを前記ソースデータベースシステムから前記ターゲットデータベースシステムの現在のターゲットテーブル内にロードすること、ここで、前記現在のターゲットテーブルは前記定義されたテーブルスキーマを有する、
に応答して、実行される、請求項1に記載の方法。 - 前記ロードすることが発生することが予測されることを決定することが、前記ターゲットデータベースシステム内へのデータロードの履歴を示す履歴データセットを処理すること、ここで、前記履歴データセットは、ソーステーブルと前記ロードすることが実行された時刻を示す複数のエントリを含む、並びに前記処理に基づいて前記ロードすることが発生することが予測されることを決定することを含む、請求項1又は2に記載の方法。
- 前記処理することが、前記複数のエントリをテーブルスキーマ毎にグループ化すること、及び前記ロードすることが発生することが予測されることを決定する為に、複数の前記グループの各グループのデータロードの時刻挙動を用いることを含み、ここで、前記定義されたテーブルスキーマが、前記複数のグループのうちの1つのグループの前記テーブルスキーマである、請求項3に記載の方法。
- 前記将来のターゲットテーブルの前記定義されたテーブルスキーマが、一意のマッピングを用いて前記ソーステーブルのテーブルスキーマから得られる、請求項1~4のいずれか1項に記載の方法。
- 前記方法を繰り返すことを更に含み、ここで、現在の繰り返しの将来のターゲットテーブルが、次の繰り返しの為の現在のターゲットテーブルになる、請求項2~5のいずれか1項に記載の方法。
- 現在の繰り返しの現在のターゲットテーブルが、次の繰り返しの将来のターゲットテーブルになる、請求項6に記載の方法。
- 前記次の繰り返しの前記ロードすることが、前記現在の繰り返しの前記現在のターゲットテーブルのコンテントを不可視と考えることを含む、請求項7に記載の方法。
- 前記次の繰り返しの前記ロードすることが、前記現在の繰り返しの前記現在のターゲットテーブルの前記コンテントをパージすることを含む、請求項7に記載の方法。
- 前記将来のターゲットテーブルを用意することが、非同期ジョブを用いて空のテーブルを作成することを含む、請求項1に記載の方法。
- 前記非同期ジョブが、予め定義されたタイマーに基づいて開始されるか、又は前記決定することの直後に開始される、請求項10に記載の方法。
- 前記ソーステーブルのデータを前記将来のターゲットテーブル内にロードすることが、前記ソーステーブルからデータを抽出すること、前記抽出されたデータを前記ターゲットテーブル中に挿入すること、コミット操作を実行すること、及び、前記ターゲットデータベース中のビューが前記将来のターゲットテーブルを参照するように該ビューを修正することを含み、該ビューが、前記ターゲットデータベースシステム中の前記ソーステーブルのコンテントを処理するように構成されている、請求項1~11のいずれか1項に記載の方法。
- コンピュータプログラム製品であって、該コンピュータプログラム製品は、コンピュータ可読記憶媒体に記憶されたコンピュータ可読プログラムコードを有する該コンピュータ可読記憶媒体を備えており、該コンピュータ可読プログラムコードが請求項1に記載の方法を実装するように構成されている前記コンピュータプログラム製品。
- データをターゲットデータベースシステムにロードする為のコンピュータシステムであって、該コンピュータシステムは、
ソーステーブルをロードすることが前記ターゲットデータベースシステムにおいて発生することが予測されることを決定し;
将来のターゲットテーブルを、定義されたテーブルスキーマに従って予め用意し;その後、
前記ソーステーブルをロードする為のロード要求を受信し;
前記ソーステーブルのデータを前記将来のターゲットテーブル内にロードする
ように構成されている、前記コンピュータシステム。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP20190625.2 | 2020-08-12 | ||
EP20190625 | 2020-08-12 | ||
US17/021,072 | 2020-09-15 | ||
US17/021,072 US11573936B2 (en) | 2020-08-12 | 2020-09-15 | Method for loading data in a target database system |
PCT/IB2021/057375 WO2022034502A1 (en) | 2020-08-12 | 2021-08-10 | Method for loading data in target database system |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023539811A true JP2023539811A (ja) | 2023-09-20 |
Family
ID=72087875
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2023510306A Pending JP2023539811A (ja) | 2020-08-12 | 2021-08-10 | データをターゲットデータベースシステムにロードする方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11573936B2 (ja) |
JP (1) | JP2023539811A (ja) |
CN (1) | CN116209991A (ja) |
DE (1) | DE112021003521T5 (ja) |
GB (1) | GB2612757A (ja) |
WO (1) | WO2022034502A1 (ja) |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7478112B2 (en) | 2004-12-16 | 2009-01-13 | International Business Machines Corporation | Method and apparatus for initializing data propagation execution for large database replication |
US20060212799A1 (en) * | 2005-02-11 | 2006-09-21 | Fujitsu Limited | Method and system for compiling schema |
US8788457B2 (en) * | 2007-09-21 | 2014-07-22 | International Business Machines Corporation | Ensuring that the archival data deleted in relational source table is already stored in relational target table |
US7895174B2 (en) * | 2008-03-27 | 2011-02-22 | Microsoft Corporation | Database part table junctioning |
US8688622B2 (en) * | 2008-06-02 | 2014-04-01 | The Boeing Company | Methods and systems for loading data into a temporal data warehouse |
JP4939568B2 (ja) | 2009-04-28 | 2012-05-30 | インターナショナル・ビジネス・マシーンズ・コーポレーション | データベース間でデータを同期するための方法、並びにそのコンピュータ・システム及びコンピュータ・プログラム |
US20120124081A1 (en) | 2010-11-17 | 2012-05-17 | Verizon Patent And Licensing Inc. | Method and system for providing data migration |
US8666956B1 (en) * | 2010-12-16 | 2014-03-04 | Teradata Us, Inc. | Sequenced modifications of multiple rows in a temporal table |
US8676772B2 (en) * | 2011-12-09 | 2014-03-18 | Telduráðgevin Sp/f | Systems and methods for improving database performance |
US9756108B2 (en) | 2012-05-29 | 2017-09-05 | Google Inc. | Preloading resources of a web page |
US20140006342A1 (en) * | 2012-06-27 | 2014-01-02 | Thomas Love | Systems for the integrated design, operation and modification of databases and associated web applications |
GB2507094A (en) * | 2012-10-19 | 2014-04-23 | Ibm | Selecting and loading a subset of data from a database backup |
US10628393B2 (en) * | 2015-06-24 | 2020-04-21 | International Business Machines Corporation | Generating data tables |
US10552453B2 (en) | 2015-11-25 | 2020-02-04 | International Business Machines Corporation | Determining data replication cost for cloud based application |
US10671642B2 (en) * | 2016-11-11 | 2020-06-02 | International Business Machines Corporation | Copying data changes to a target database |
CN108376171B (zh) | 2018-02-27 | 2020-04-03 | 平安科技(深圳)有限公司 | 大数据快速导入的方法、装置、终端设备及存储介质 |
CN111427853A (zh) | 2020-03-23 | 2020-07-17 | 腾讯科技(深圳)有限公司 | 一种数据加载方法和相关装置 |
-
2020
- 2020-09-15 US US17/021,072 patent/US11573936B2/en active Active
-
2021
- 2021-08-10 GB GB2303151.1A patent/GB2612757A/en active Pending
- 2021-08-10 WO PCT/IB2021/057375 patent/WO2022034502A1/en active Application Filing
- 2021-08-10 CN CN202180056423.3A patent/CN116209991A/zh active Pending
- 2021-08-10 JP JP2023510306A patent/JP2023539811A/ja active Pending
- 2021-08-10 DE DE112021003521.5T patent/DE112021003521T5/de active Pending
Also Published As
Publication number | Publication date |
---|---|
US20220050812A1 (en) | 2022-02-17 |
WO2022034502A1 (en) | 2022-02-17 |
GB2612757A (en) | 2023-05-10 |
GB202303151D0 (en) | 2023-04-19 |
DE112021003521T5 (de) | 2023-05-17 |
US11573936B2 (en) | 2023-02-07 |
CN116209991A (zh) | 2023-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10762108B2 (en) | Query dispatching system and method | |
CN110799960B (zh) | 数据库租户迁移的系统和方法 | |
US9830372B2 (en) | Scalable coordination aware static partitioning for database replication | |
US9811577B2 (en) | Asynchronous data replication using an external buffer table | |
EP3519986B1 (en) | Direct table association in in-memory databases | |
US11138227B2 (en) | Consistent query execution in hybrid DBMS | |
US20160019228A1 (en) | Snapshot-consistent, in-memory graph instances in a multi-user database | |
US20140108475A1 (en) | Migration-destination file server and file system migration method | |
US10885029B2 (en) | Parallel execution of merge operations | |
US8280917B1 (en) | Batching content management operations to facilitate efficient database interactions | |
US9547672B2 (en) | Zero-outage database reorganization | |
US10216739B2 (en) | Row-based archiving in database accelerators | |
US11151081B1 (en) | Data tiering service with cold tier indexing | |
GB2534374A (en) | Distributed System with accelerator-created containers | |
US10884998B2 (en) | Method for migrating data records from a source database to a target database | |
Cruz et al. | A scalable file based data store for forensic analysis | |
KR101989074B1 (ko) | 데이터베이스 샤딩 환경에서의 복제 로그 기반의 마이그레이션 | |
EP3267329A1 (en) | Data processing method having structure of cache index specified to transaction in mobile environment dbms | |
JP2023534656A (ja) | アクセラレータ専用データベーステーブルのアーカイビング | |
CN113094336A (zh) | 基于Cuckoo哈希的文件系统目录管理方法及系统 | |
JP2023539811A (ja) | データをターゲットデータベースシステムにロードする方法 | |
Kim et al. | PARADISE: Big data analytics using the DBMS tightly integrated with the distributed file system | |
US11669535B1 (en) | Maintaining at a target database system a copy of a source table of a source database system | |
US20230094789A1 (en) | Data distribution in target database systems | |
US11785083B2 (en) | System and method for offline-first application development |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230220 |
|
RD16 | Notification of change of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7436 Effective date: 20230512 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20240123 |