JP2018049656A - KeyValueデータベースのデータテーブルを更新するための方法およびテーブルデータを更新するための装置 - Google Patents

KeyValueデータベースのデータテーブルを更新するための方法およびテーブルデータを更新するための装置 Download PDF

Info

Publication number
JP2018049656A
JP2018049656A JP2017224417A JP2017224417A JP2018049656A JP 2018049656 A JP2018049656 A JP 2018049656A JP 2017224417 A JP2017224417 A JP 2017224417A JP 2017224417 A JP2017224417 A JP 2017224417A JP 2018049656 A JP2018049656 A JP 2018049656A
Authority
JP
Japan
Prior art keywords
data
row
full
file
deletion
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
JP2017224417A
Other languages
English (en)
Other versions
JP6521402B2 (ja
Inventor
益君 郭
Yijun Guo
益君 郭
杰山 ▲ビ▼
杰山 ▲ビ▼
Jieshan Bi
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of JP2018049656A publication Critical patent/JP2018049656A/ja
Application granted granted Critical
Publication of JP6521402B2 publication Critical patent/JP6521402B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/162Delete operations
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • 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

Landscapes

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

Abstract

【課題】KeyValueデータベースのデータテーブルを更新するための方法を提供する。【解決手段】フルデータ更新命令を受信するステップ101と、フルデータ更新命令に従って、インポートされるべきデータを取得し、インポートされるべきデータに従って、フルデータ更新ファイルを生成するステップ102と、フルデータ更新命令に対応するデータテーブルにおけるM行の古いデータを取得するステップ103と、M行の古いデータのM個のRowKeyに従って、フルデータ削除ファイルを生成するステップ103と、フルデータ更新ファイルをデータテーブルにインポートするステップ104と、フルデータ削除ファイルをデータテーブルにインポートするステップ104とを含む。【選択図】図1

Description

本願は、2014年11月12日に国際特許庁に出願された“METHOD FOR UPDATING DATA TABLE OF KEYVALUE DATABASE AND APPARATUS FOR UPDATING TABLE DATA”と題する国際特許出願番号PCT/CN2014/090934に優先権を主張し、その全体が参照によって本明細書に組み込まれる。
本発明は情報技術の分野に関し、詳細には、KeyValueデータベースのデータテーブルを更新するための方法およびテーブルデータを更新するための装置に関する。
分散ストレージの非リレーショナル(NoSQL)データベースとして、キーと値のペアの(KeyValue)型のデータベース(以下、KeyValueデータベースと呼ばれる)は高いスケーラビリティと高い信頼性とを有し、より多くのシステムで広く適用されてきた。多くのKeyValueデータベース中のデータはテーブル単位で格納されている。各テーブルは複数行のデータを含み、データの各行は、行キー(RowKey)を使用することによって一意に識別されるとともに、データの各行は複数の列修飾子を含み、各列修飾子は1つのKeyValueデータに対応するとともに、各列修飾子はデータ型とタイムスタンプとを持つ。データ型はPut(新規追加)、Delete(削除)等を含む。Put型は修飾子が新規追加された修飾子であることを示すために使用され、Delete型は修飾子が古い修飾子を削除するために使用されることを示すために使用される。タイムスタンプは、各修飾子の生成時刻を示すために使用される。KeyValueデータベースでは、データのマルチバージョンの格納がタイムスタンプを使用することによって実現され、すなわち、同じRowKey値を持つデータに対して、新しいデータと古いデータがタイムスタンプを使用することによって区別される。KeyValueデータベースがデータの複数バージョンを含むとき、データの古いバージョンはデータの新しいバージョンによって上書きされ、データを読み出すときに、ユーザはデータの新しいバージョンを直接読み出す。
削除としてマークする技術は、KeyValueデータベースでデータを更新するために使用され、KeyValueデータはひとつずつ削除またはインポートされる。実際の適用においては、フル更新は多くの場合、テーブルデータの全てのデータに対して実行される必要があり、すなわち、テーブル内の全ての既存のデータが消去される必要があるとともに新しいデータがテーブルにインポートされる。しかしながら、既存のKeyValueデータベースは一度でのフル更新をサポートしていない。テーブルデータがひとつずつ削除されインポートされる場合、テーブル内の全てのデータを更新するプロセスは、長い時間を要し、更新プロセスは原子性に欠き、そのことは、テーブルによって提供されるデータ読み出しサービスの質に影響を与える。従って、KeyValueデータベースに適用可能なテーブルデータのフル更新方法を提供することは非常に重大なことである。
本発明の実施形態はKeyValueデータベースのデータテーブルを更新するための方法を提供し、この方法はKeyValueデータベースにおけるテーブルデータのフル更新を実施することができる。
本発明の実施形態の第1の態様は、KeyValueデータベースのデータテーブルを更新するための方法を提供し、その方法は、
フルデータ更新命令を受信するステップと、
フルデータ更新命令に従って、インポートされるべきデータを取得し、インポートされるべきデータに従って、フルデータ更新ファイルを生成するステップであって、フルデータ更新ファイルはP行の新しいデータを含み、新しいデータの各行は、1つの行キーRowKeyとQ個の新しい列修飾子とを含み、各新しい列修飾子のデータ型はプットPut型であり、更新タイムスタンプが各新しい列修飾子に対して設定される、ステップと、
フルデータ更新命令に対応するデータテーブルにおけるM行の古いデータを取得するステップであって、古いデータの各行は、1つの行キーRowKeyとN個の古い列修飾子とを含み、オリジナル・タイムスタンプが各古い列修飾子に対して設定される、ステップと、
M行の古いデータに従って、フルデータ削除ファイルを生成するステップであって、フルデータ削除ファイルはM行の削除データを含み、削除データの各行は古いデータの各行と一対一で対応し、削除データの各行のデータ型は削除Delete型であり、削除タイムスタンプが削除データの各行に対して設定され、削除データのR番目の行の削除タイムスタンプは古いデータのR番目の行のオリジナル・タイムスタンプの最大値よりも大きく、削除データのR番目の行の削除タイムスタンプは新しいデータのS番目の行の更新タイムスタンプの最小値よりも小さく、削除データのR番目の行、古いデータのR番目の行および新しいデータのS番目の行は同じRowKeyを持ち、1 ≦ R ≦ M、且つ1 ≦ S ≦ Pである、ステップと、
フルデータ更新ファイルをデータテーブルにインポートするステップと、
フルデータ削除ファイルをデータテーブルにインポートするステップと
を含む。
本発明の実施形態の第1の態様を参照すると、本発明の実施形態の第1の態様の第1の実施方法では、フルデータ削除ファイルを生成するステップが最初に実行され、次いで、フルデータ更新ファイルを生成するステップが実行され、
各新しい列修飾子の更新タイムスタンプの時点は、フルデータ更新ファイルが生成される時点であるとともに、削除データの各行の削除タイムスタンプの時点は、フルデータ削除ファイルが生成される時点である。
本発明の実施形態の第1の態様または第1の態様の第1の実施方法を参照すると、本発明の実施形態の第1の態様の第2の実施方法では、フルデータ更新ファイルをデータテーブルにインポートするステップが最初に実行され、次いで、フルデータ削除ファイルをデータテーブルにインポートするステップが実行される。
本発明の実施形態の第1の態様、第1の態様の第1の実施方法または第2の実施方法を参照すると、本発明の実施形態の第1の態様の第3の実施方法では、フルデータ更新ファイルをデータテーブルにインポートするステップは、
フルデータ更新ファイルの保存パスをフルデータ更新命令に対応するデータテーブルのディレクトリに変更するステップ
を含む。
本発明の実施形態の第1の態様、第1の態様の第1の実施方法、第2の実施方法または第3の実施方法を参照すると、本発明の実施形態の第1の態様の第4の実施方法では、
フルデータ削除ファイルをデータテーブルにインポートするステップは、
フルデータ削除ファイルの保存パスをフルデータ更新命令に対応するデータテーブルのディレクトリに変更するステップ
を含む。
本発明の実施形態の第2の態様は、テーブルデータを更新するための装置を提供し、その装置は、
フルデータ更新命令を受信するように構成された受信モジュールと、
フルデータ更新命令に従って、インポートされるべきデータを取得し、インポートされるべきデータに従って、フルデータ更新ファイルを生成するように構成されたファイル生成モジュールであって、フルデータ更新ファイルはP行の新しいデータを含み、新しいデータの各行は、1つの行キーRowKeyとQ個の新しい列修飾子とを含み、各新しい列修飾子のデータ型はプットPut型であり、更新タイムスタンプが各新しい列修飾子に対して設定される、ファイル生成モジュールと、
フルデータ更新命令に対応するデータテーブルにおけるM行の古いデータを取得するように構成された取得モジュールであって、古いデータの各行は、1つの行キーRowKeyとN個の古い列修飾子とを含み、オリジナル・タイムスタンプが各古い列修飾子に対して設定される、取得モジュールと、
フルデータ更新ファイルをデータテーブルにインポートするとともにフルデータ削除ファイルをデータテーブルにインポートするように構成されたインポートモジュールとを含み、
ファイル生成モジュールは、M行の古いデータに従って、フルデータ削除ファイルを生成するようにさらに構成され、フルデータ削除ファイルはM行の削除データを含み、削除データの各行は古いデータの各行と一対一で対応し、削除データの各行のデータ型はDelete型であり、削除タイムスタンプが削除データの各行に対して設定され、削除データのR番目の行の削除タイムスタンプは古いデータのR番目の行のオリジナル・タイムスタンプの最大値よりも大きく、削除データのR番目の行の削除タイムスタンプは新しいデータのS番目の行の更新タイムスタンプの最小値よりも小さく、削除データのR番目の行、古いデータのR番目の行および新しいデータのS番目の行は同じRowKeyを持ち、1 ≦ R ≦ M、且つ1 ≦ S ≦ Pである。
本発明の実施形態の第2の態様を参照すると、本発明の実施形態の第2の態様の第1の実施方法では、ファイル生成モジュールは最初にフルデータ削除ファイルを生成し、次いで、フルデータ更新ファイルを生成し、且つ、フルデータ更新ファイルが生成される時点を各新しい列修飾子の更新タイムスタンプとして設定するとともに、フルデータ削除ファイルが生成される時点を削除データの各行の削除タイムスタンプとして設定する。
本発明の実施形態の第2の態様または第2の態様の第1の実施方法を参照すると、本発明の実施形態の第2の態様の第2の実施方法では、インポートモジュールは最初にフルデータ更新ファイルをデータテーブルにインポートし、次いで、フルデータ削除ファイルをデータテーブルにインポートする。
本発明の実施形態の第2の態様、第2の態様の第1の実施方法または第2の実施方法を参照すると、本発明の実施形態の第2の態様の第3の実施方法では、第1のインポートモジュールは、具体的には、フルデータ更新ファイルの保存パスをフルデータ更新命令に対応するデータテーブルのディレクトリに変更するように構成される。
本発明の実施形態の第2の態様、第2の態様の第1の実施方法、第2の実施方法または第3の実施方法を参照すると、本発明の実施形態の第2の態様の第4の実施方法では、第2のインポートモジュールは、具体的には、フルデータ削除ファイルの保存パスをフルデータ更新命令に対応するデータテーブルのディレクトリに変更するように構成される。
本発明の実施形態の第3の態様は、入力装置、出力装置、プロセッサおよびメモリを含む、テーブルデータを更新するための装置を提供し、メモリに格納された操作命令を呼び出すことによって、プロセッサは、
フルデータ更新命令を受信するステップと、
フルデータ更新命令に従って、インポートされるべきデータを取得し、インポートされるべきデータに従って、フルデータ更新ファイルを生成するステップであって、フルデータ更新ファイルはP行の新しいデータを含み、新しいデータの各行は、1つの行キーRowKeyとQ個の新しい列修飾子とを含み、各新しい列修飾子のデータ型はプットPut型であり、更新タイムスタンプが各新しい列修飾子に対して設定される、ステップと、
フルデータ更新命令に対応するデータテーブルにおけるM行の古いデータを取得するステップであって、古いデータの各行は、1つの行キーRowKeyとN個の古い列修飾子とを含み、オリジナル・タイムスタンプが各古い列修飾子に対して設定される、ステップと、
M行の古いデータに従って、フルデータ削除ファイルを生成するステップであって、フルデータ削除ファイルはM行の削除データを含み、削除データの各行は古いデータの各行と一対一で対応し、削除データの各行のデータ型はDelete型であり、削除タイムスタンプが削除データの各行に対して設定され、削除データのR番目の行の削除タイムスタンプは古いデータのR番目の行のオリジナル・タイムスタンプの最大値よりも大きく、削除データのR番目の行の削除タイムスタンプは新しいデータのS番目の行の更新タイムスタンプの最小値よりも小さく、削除データのR番目の行、古いデータのR番目の行および新しいデータのS番目の行は同じRowKeyを持ち、1 ≦ R ≦ M、且つ1 ≦ S ≦ Pである、ステップと、
フルデータ更新ファイルをデータテーブルにインポートするステップと、
フルデータ削除ファイルをデータテーブルにインポートするステップと
を実行するように構成される。
本発明の実施形態の第3の態様を参照すると、本発明の実施形態の第3の態様の第1の実施方法では、プロセッサは最初にフルデータ削除ファイルを生成し、次いで、フルデータ更新ファイルを生成し、且つ、フルデータ更新ファイルが生成される時点を各新しい列修飾子の更新タイムスタンプとして設定するとともに、フルデータ削除ファイルが生成される時点を削除データの各行の削除タイムスタンプとして設定する。
本発明の実施形態の第3の態様または第3の態様の第1の実施方法を参照すると、本発明の実施形態の第2の態様の第2の実施方法では、プロセッサは最初にフルデータ更新ファイルをデータテーブルにインポートし、次いで、フルデータ削除ファイルをデータテーブルにインポートする。
本発明の実施形態の第3の態様、第3の態様の第1の実施方法または第2の実施方法を参照すると、本発明の実施形態の第3の態様の第3の実施方法では、プロセッサは、
フルデータ更新ファイルの保存パスをフルデータ更新命令に対応するデータテーブルのディレクトリに変更するようにさらに構成される。
本発明の実施形態の第3の態様、第3の態様の第1の実施方法、第2の実施方法または第3の実施方法を参照すると、本発明の実施形態の第3の態様の第4の実施方法では、プロセッサは、
フルデータ削除ファイルの保存パスをフルデータ更新命令に対応するデータテーブルのディレクトリに変更するようにさらに構成される。
本発明の実施形態の第4の態様は、KeyValueデータベースのデータテーブルを更新するための方法を提供し、その方法は、
フルデータ更新命令を受信するステップと、
フルデータ更新命令に従って、インポートされるべきデータを取得し、インポートされるべきデータに従って、フルデータ更新ファイルを生成するステップであって、フルデータ更新ファイルはP行の新しいデータを含み、新しいデータの各行は、1つの行キーRowKeyとQ個の新しい列修飾子とを含み、各新しい列修飾子のデータ型はプットPut型であり、更新タイムスタンプが各新しい列修飾子に対して設定される、ステップと、
フルデータ更新命令に対応するデータテーブルにおけるM行の古いデータを取得するステップであって、古いデータの各行は、1つの行キーRowKeyとN個の古い列修飾子とを含み、オリジナル・タイムスタンプが各古い列修飾子に対して設定される、ステップと、
M行の古いデータに従って、フルデータ削除ファイルを生成するステップであって、フルデータ削除ファイルはM行の削除データを含み、削除データの各行は古いデータの各行と一対一で対応し、削除データの各行のデータ型は削除Delete型であり、削除タイムスタンプが削除データの各行に対して設定され、削除データのR番目の行の削除タイムスタンプは古いデータのR番目の行のオリジナル・タイムスタンプの最大値よりも大きく、削除データのR番目の行の削除タイムスタンプは新しいデータのS番目の行の更新タイムスタンプの最小値よりも小さく、削除データのR番目の行、古いデータのR番目の行および新しいデータのS番目の行は同じRowKeyを持ち、1 ≦ R ≦ M、且つ1 ≦ S ≦ Pである、ステップと、
フルデータ更新ファイルとフルデータ削除ファイルとを結合してテーブルデータ更新ファイルにするステップと、
テーブルデータ更新ファイルをデータテーブルにインポートするステップと
を含む。
本発明の実施形態の第4の態様を参照すると、本発明の実施形態の第4の態様の第1の実施方法では、テーブルデータ更新ファイルをデータテーブルにインポートするステップは、
テーブルデータ更新ファイルの保存パスをフルデータ更新命令に対応するデータテーブルのディレクトリに変更するステップ
を含む。
本発明の実施形態の第5の態様は、テーブルデータを更新するための装置を提供し、その装置は、
フルデータ更新命令を受信するように構成された命令受信モジュールと、
フルデータ更新命令に従って、インポートされるべきデータを取得し、インポートされるべきデータに従って、フルデータ更新ファイルを生成するように構成されたファイル生成モジュールであって、フルデータ更新ファイルはP行の新しいデータを含み、新しいデータの各行は、1つの行キーRowKeyとQ個の新しい列修飾子とを含み、各新しい列修飾子のデータ型はプットPut型であり、更新タイムスタンプが各新しい列修飾子に対して設定される、ファイル生成モジュールと、
フルデータ更新命令に対応するデータテーブルにおけるM行の古いデータを取得するように構成されたデータ取得モジュールであって、古いデータの各行は、1つの行キーRowKeyとN個の古い列修飾子とを含み、オリジナル・タイムスタンプが各古い列修飾子に対して設定される、データ取得モジュールと、
フルデータ更新ファイルとフルデータ削除ファイルとを結合してテーブルデータ更新ファイルにするように構成されたファイル結合モジュールと、
テーブルデータ更新ファイルをデータテーブルにインポートするように構成されたファイル・インポート・モジュールとを含み、
ファイル生成モジュールは、M行の古いデータに従って、フルデータ削除ファイルを生成するようにさらに構成され、フルデータ削除ファイルはM行の削除データを含み、削除データの各行は古いデータの各行と一対一で対応し、削除データの各行のデータ型はDelete型であり、削除タイムスタンプが削除データの各行に対して設定され、削除データのR番目の行の削除タイムスタンプは古いデータのR番目の行のオリジナル・タイムスタンプの最大値よりも大きく、削除データのR番目の行の削除タイムスタンプは新しいデータのS番目の行の更新タイムスタンプの最小値よりも小さく、削除データのR番目の行、古いデータのR番目の行および新しいデータのS番目の行は同じRowKeyを持ち、1 ≦ R ≦ M、且つ1 ≦ S ≦ Pである。
本発明の実施形態の第5の態様を参照すると、本発明の実施形態の第5の態様の第1の実施方法では、ファイル・インポート・モジュールは、具体的には、
テーブルデータ更新ファイルの保存パスをフルデータ更新命令に対応するデータテーブルのディレクトリに変更するように構成される。
本発明の実施形態の第6の態様は、入力装置、出力装置、プロセッサおよびメモリを含む、テーブルデータを更新するための装置を提供し、メモリに格納された操作命令を呼び出すことによって、プロセッサは、
フルデータ更新命令を受信するステップと、
フルデータ更新命令に従って、インポートされるべきデータを取得し、インポートされるべきデータに従って、フルデータ更新ファイルを生成するステップであって、フルデータ更新ファイルはP行の新しいデータを含み、新しいデータの各行は、1つの行キーRowKeyとQ個の新しい列修飾子とを含み、各新しい列修飾子のデータ型はプットPut型であり、更新タイムスタンプが各新しい列修飾子に対して設定される、ステップと、
フルデータ更新命令に対応するデータテーブルにおけるM行の古いデータを取得するステップであって、古いデータの各行は、1つの行キーRowKeyとN個の古い列修飾子とを含み、オリジナル・タイムスタンプが各古い列修飾子に対して設定される、ステップと、
M行の古いデータに従って、フルデータ削除ファイルを生成するステップであって、フルデータ削除ファイルはM行の削除データを含み、削除データの各行は古いデータの各行と一対一で対応し、削除データの各行のデータ型はDelete型であり、削除タイムスタンプが削除データの各行に対して設定され、削除データのR番目の行の削除タイムスタンプは古いデータのR番目の行のオリジナル・タイムスタンプの最大値よりも大きく、削除データのR番目の行の削除タイムスタンプは新しいデータのS番目の行の更新タイムスタンプの最小値よりも小さく、削除データのR番目の行、古いデータのR番目の行および新しいデータのS番目の行は同じRowKeyを持ち、1 ≦ R ≦ M、且つ1 ≦ S ≦ Pである、ステップと、
フルデータ更新ファイルとフルデータ削除ファイルとを結合してテーブルデータ更新ファイルにするステップと、
テーブルデータ更新ファイルをデータテーブルにインポートするステップと
を実行するように構成される。
本発明の実施形態の第6の態様を参照すると、本発明の実施形態の第6の態様の第1の実施方法では、プロセッサは、
テーブルデータ更新ファイルの保存パスをフルデータ更新命令に対応するデータテーブルのディレクトリに変更するようにさらに構成される。
本発明の実施形態は、KeyValueデータベースのデータテーブルを更新するための方法を提供し、その方法は、フルデータ更新命令を受信するステップと、フルデータ更新命令に従って、インポートされるべきデータを取得し、インポートされるべきデータに従って、フルデータ更新ファイルを生成するステップと、フルデータ更新命令に対応するデータテーブルにおけるM行の古いデータを取得するステップと、M行の古いデータに従って、フルデータ削除ファイルを生成するステップと、フルデータ更新ファイルをデータテーブルにインポートするステップと、フルデータ削除ファイルをデータテーブルにインポートするステップとを含む。このような方法を使用することによって、KeyValueデータベースのデータテーブル内の全てのデータのフル更新が実施される。加えて、従来技術ではデータテーブル内のKeyValueデータをひとつずつ更新することと比較して、フルデータ更新ファイルおよびフルデータ削除ファイルは、KeyValueデータベースにひとつずつインポートされないため、本発明の実施形態で提供される方法によると、更新速度はより速く、且つ、原子性はより良い。
図1は、本発明の実施形態に係るKeyValueデータベースのデータテーブルを更新するための方法の一実施形態のフローチャートである。 図2は、本発明の実施形態に係るKeyValueデータベースのデータテーブルを更新するための方法の別の実施形態のフローチャートである。 図3は、本発明の実施形態に係るテーブルデータを更新するための装置の一実施形態の構成図である。 図4は、本発明の実施形態に係るテーブルデータを更新するための装置の別の実施形態の構成図である。 図5は、本発明の実施形態に係るKeyValueデータベースのデータテーブルを更新するための方法の別の実施形態のフローチャートである。 図6は、本発明の実施形態に係るテーブルデータを更新するための装置の別の実施形態の構成図である。
本発明の実施形態はKeyValueデータベースのデータテーブルを更新するための方法を提供し、この方法はKeyValueデータベースにおけるテーブルデータのフル更新を実施することができる。本発明は、テーブルデータを更新するための関連する装置をさらに提供する。以下では、方法と装置とを別々に説明する。
図1を参照すると、本発明の実施形態で提供される、KeyValueデータベースのデータテーブルを更新するための方法の基本的なプロセスは、主に以下を含む:
101.フルデータ更新命令を受信する。
ユーザは、クライアントを使用することによって、フルデータ更新命令を配信し、ここで、フルデータ更新命令は、KeyValueデータベースにおける指定されたデータテーブルのテーブルデータを完全に更新するように命令するために使用される。テーブルデータを更新するための装置は、フルデータ更新命令を受信する。
102.フルデータ更新命令に従って、インポートされるべきデータを取得し、インポートされるべきデータに従って、フルデータ更新ファイルを生成する。
テーブルデータを更新するための装置は、フルデータ更新命令に従って、インポートされるべきデータを取得し、インポートされるべきデータに従って、フルデータ更新ファイルを生成する。好ましくは、フルデータ更新命令はデータテーブルのテーブル名を含んでもよく、且つ、インポートされるべきデータの保存パスおよび生成されたフルデータ更新ファイルの保存パスを指定する。テーブルデータを更新するための装置は、インポートされるべきデータの、フルデータ更新命令で指定された保存パスから、インポートされるべきデータを取得し、インポートされるべきデータに従って、フルデータ更新ファイルを生成し、次いで、フルデータ更新ファイルの、フルデータ更新命令で指定された保存パスに、フルデータ更新ファイルを保存する。
フルデータ更新ファイルはP行の新しいデータを含み、ここで、新しいデータの各行は、1つの行キーRowKeyと、Q個の新しい列修飾子とを含み、各新しい列修飾子のデータ型は、プットPut型であり、更新タイムスタンプが各新しい列修飾子に対して設定される。
103.フルデータ更新命令に対応するデータテーブル内のM行の古いデータを取得し、M行の古いデータに従って、フルデータ削除ファイルを生成する。
テーブルデータを更新するための装置は、フルデータ更新命令に対応するデータテーブル内のM行の古いデータを取得し、ここで、古いデータの各行は、1つの行キーRowKeyとN個の古い列修飾子とを含み、オリジナル・タイムスタンプが各古い列修飾子に対して設定される。テーブルデータを更新するための装置は、M行の古いデータに従って、フルデータ削除ファイルを生成する。
好ましくは、フルデータ更新命令はデータテーブルのテーブル名を含んでもよく、且つ、生成されたフルデータ削除ファイルの保存パスを指定する。テーブルデータを更新するための装置は、データテーブルのテーブル名に従ってデータテーブルを決定し、次いで、フルデータ削除ファイルの、フルデータ更新命令で指定された保存パスに、データテーブルを保存する。
フルデータ削除ファイルはM行の削除データを含み、ここで、削除データの各行はデータテーブル内の古いデータの各行と一対一で対応し、削除データの各行のデータ型はDelete型であり、削除データの各行は削除データの行と同じRowKeyを持つ古いデータを削除するために使用される。削除タイムスタンプが削除データの各行に対して設定される。
ステップ103はステップ102の前に実行されてもよく、このことは本実施形態では限定されない。しかしながら、ステップ103とステップ102との間の順番に関わらず、削除データのR番目の行の削除タイムスタンプは古いデータのR番目の行のオリジナル・タイムスタンプの最大値よりも大きく、削除データのR番目の行の削除タイムスタンプは新しいデータのS番目の行の更新タイムスタンプの最小値よりも小さいことが保証される必要がある。削除データのR番目の行、古いデータのR番目の行および新しいデータのS番目の行は同じRowKeyを持ち、1 ≦ R ≦ M、且つ1 ≦ S ≦ Pである。
104. フルデータ更新ファイルをデータテーブルにインポートする。
テーブルデータを更新するための装置は、フルデータ更新ファイルを、フルデータ更新命令に対応するデータテーブルにインポートし、ここで、フルデータ更新ファイルはデータテーブルに一度にインポートされ、このことは、データインポートの原子性を保証することができる。
フルデータ更新ファイルにおける新しいデータのS番目の行の更新タイムスタンプの最小値は、新しいデータのS番目の行と同じRowKeyを持つ古いデータのR番目の行のオリジナル・タイムスタンプの最大値よりも大きく、従って、フルデータ更新ファイルがデータテーブルにインポートされた後、古いデータのR番目の行が存在する場合、新しいデータのS番目の行は古いデータのR番目の行を上書きすることができ、ユーザは新しいデータのS番目の行を読み出すことができるが、古いデータのR番目の行を読み出すことはできない。
105. フルデータ削除ファイルをデータテーブルにインポートする。
テーブルデータを更新するための装置は、フルデータ削除ファイルを、フルデータ更新命令に対応するデータテーブルにインポートし、ここで、フルデータ削除ファイルはデータテーブルに一度にインポートされ、このことは、データ削除の原子性を保証することができる。
削除データのR番目の行の削除タイムスタンプは削除データのR番目の行と同じRowKeyを持つ古いデータのR番目の行のオリジナル・タイムスタンプの最大値よりも大きく、従って、削除データのR番目の行は、削除データのR番目の行と同じRowKeyを持つ古いデータのR番目の行を削除することができる。加えて、フルデータ削除ファイルは、データテーブル内のM行の古いデータのRowKeyと一対一で対応するM行の削除データを含み、従って、フルデータ削除ファイルがデータテーブルにインポートされた後、データテーブル内の古いデータのM行全てが削除され、ユーザはデータテーブルから古いデータを読み出すことはできない。削除データのR番目の行の削除タイムスタンプは削除データのR番目の行と同じRowKeyを持つ新しいデータのS番目の行の更新タイムスタンプの最小値よりも小さく、従って、新しいデータのS番目の行が存在する場合、新しいデータのS番目の行は依然として有効であり、すなわち、フルデータ削除ファイルがデータテーブルにインポートされた後、フルデータ更新ファイルは依然としてユーザによって通常通り読み出されることができる。
ステップ105はステップ104の前に実行されてもよく、このことは本実施形態では限定されない。
本実施形態は、KeyValueデータベースのデータテーブルを更新するための方法を提供し、その方法は、フルデータ更新命令を受信するステップと、フルデータ更新命令に従って、インポートされるべきデータを取得し、インポートされるべきデータに従って、フルデータ更新ファイルを生成するステップと、フルデータ更新命令に対応するデータテーブルにおけるM行の古いデータを取得するステップと、M行の古いデータに従って、フルデータ削除ファイルを生成するステップと、フルデータ更新ファイルをデータテーブルにインポートするステップと、フルデータ削除ファイルをデータテーブルにインポートするステップとを含む。このような方法を使用することによって、KeyValueデータベースのデータテーブル内の全てのデータのフル更新が実施される。加えて、従来技術ではデータテーブル内のKeyValueデータをひとつずつ更新することと比較して、フルデータ更新ファイルおよびフルデータ削除ファイルは、KeyValueデータベースにひとつずつインポートされないため、本実施形態で提供される方法によると、更新速度はより速く、且つ、原子性はより良い。
図1で示される実施形態では、ステップ102と103との間の順番は限定されず、且つステップ104と105との間の順番は限定されない。しかしながら、実際の適用では、これらのステップの順番を変更することによって、有益な効果がさらにもたらされることができる。図2を参照すると、本発明の実施形態で提供されるKeyValueデータベースのデータテーブルを更新するための別の方法のプロセスは、以下を含む:
201. フルデータ更新命令を受信する。
ユーザは、クライアントを使用することによって、フルデータ更新命令を配信し、ここで、フルデータ更新命令は、KeyValueデータベースにおけるデータテーブルのテーブルデータを完全に更新するように命令するために使用される。テーブルデータを更新するための装置は、フルデータ更新命令を受信する。
具体的には、フルデータ更新命令はKeyValueデータベースにおけるデータテーブルの古いデータを削除するとともに新しいデータをデータテーブルにインポートするように命令するために使用され、従って、好ましくは、フルデータ更新命令は削除命令と更新命令とを含んでもよい。削除命令はKeyValueデータベースにおけるデータテーブルの古いデータを削除するように命令するために使用され、更新命令は新しいデータをデータテーブルにインポートするように命令するために使用される。
202. フルデータ更新命令に対応するデータテーブルにおけるM行の古いデータを取得し、M行の古いデータに従って、フルデータ削除ファイルを生成する。
テーブルデータを更新するための装置は、フルデータ更新命令に従って、フルデータ更新命令に対応するデータテーブル内のM行の古いデータを取得し、ここで、古いデータの各行は、1つの行キーRowKeyとN個の古い列修飾子とを含み、オリジナル・タイムスタンプが各古い列修飾子に対して設定される。テーブルデータを更新するための装置は、M行の古いデータに従って、フルデータ削除ファイルを生成する。
好ましくは、フルデータ更新命令はデータテーブルのテーブル名を含んでもよく、且つ、生成されたフルデータ削除ファイルの保存パスを指定する。テーブルデータを更新するための装置は、データテーブルのテーブル名に従ってデータテーブルを決定し、次いで、フルデータ削除ファイルの、フルデータ更新命令で指定された保存パスに、データテーブルを保存する。
フルデータ削除ファイルはM行の削除データを含み、ここで、削除データの各行はデータテーブル内の古いデータの各行と一対一で対応し、削除データの各行のデータ型はDelete型であり、削除データの各行は削除データの行と同じRowKeyを持つ古いデータを削除するために使用される。削除タイムスタンプが削除データの各行に対して設定され、削除データの各行の削除タイムスタンプの時点は、フルデータ削除ファイルが生成される時点であり、ここで、そのタイムスタンプはオリジナル・タイムスタンプの最大値よりも大きい。
フルデータ更新命令が削除命令と更新命令とを含む場合、テーブルデータを更新するための装置は、削除命令に従って、このステップにおける操作を実行する。
203. フルデータ更新命令に従って、インポートされるべきデータを取得し、インポートされるべきデータに従って、フルデータ更新ファイルを生成する。
フルデータ削除ファイルを生成した後、テーブルデータを更新するための装置は、フルデータ更新命令に従って、インポートされるべきデータを取得し、インポートされるべきデータに従って、フルデータ更新ファイルを生成する。好ましくは、フルデータ更新命令はデータテーブルのテーブル名を含んでもよく、且つ、インポートされるべきデータの保存パスおよび生成されたフルデータ更新ファイルの保存パスを指定する。テーブルデータを更新するための装置は、インポートされるべきデータの、フルデータ更新命令で指定された保存パスから、インポートされるべきデータを取得し、インポートされるべきデータに従って、フルデータ更新ファイルを生成し、次いで、フルデータ更新ファイルの、フルデータ更新命令で指定された保存パスに、フルデータ更新ファイルを保存する。
フルデータ更新ファイルはP行の新しいデータを含み、ここで、新しいデータの各行は、1つの行キーRowKeyと、Q個の新しい列修飾子とを含み、各新しい列修飾子のデータ型は、プットPut型であり、更新タイムスタンプが各新しい列修飾子に対して設定される。加えて、各新しい列修飾子の更新タイムスタンプの時点は、フルデータ更新ファイルが生成される時点であり、更新タイムスタンプはオリジナル・タイムスタンプの最大値よりも大きい。
フルデータ更新命令が削除命令と更新命令とを含む場合、テーブルデータを更新するための装置は、更新命令に従って、このステップにおける操作を実行する。
204. フルデータ更新ファイルをデータテーブルにインポートする。
テーブルデータを更新するための装置は、フルデータ更新ファイルを、フルデータ更新命令に対応するデータテーブルにインポートし、ここで、フルデータ更新ファイルはデータテーブルに一度にインポートされ、このことは、データインポートの原子性を保証することができる。
好ましくは、テーブルデータを更新するための装置は、フルデータ更新ファイルのデータテーブルへのインポートを実施するために、フルデータ更新ファイルの保存パスをデータテーブルのディレクトリに変更してもよい。保存パスを変更する操作の時間消費は、秒レベルでしかない。
各新しい列修飾子の更新タイムスタンプの時点は、フルデータ更新ファイルが生成される時点であり、更新タイムスタンプはオリジナル・タイムスタンプの最大値よりも大きく、従って、フルデータ更新ファイルがデータテーブルにインポートされた後、新しいデータのS番目の行は古いデータのR番目の行を上書きすることができ、ユーザは新しいデータのS番目の行を読み出すことができるが、古いデータのR番目の行を読み出すことはできない。古いデータのR番目の行および新しいデータのS番目の行は同じRowKeyを持ち、1 ≦ R ≦ M、且つ1 ≦ S ≦ Pである。
205. フルデータ削除ファイルをデータテーブルにインポートする。
テーブルデータを更新するための装置は、フルデータ削除ファイルを、フルデータ更新命令に対応するデータテーブルにインポートし、ここで、フルデータ削除ファイルはデータテーブルに一度にインポートされ、このことは、データ削除の原子性を保証することができる。
好ましくは、テーブルデータを更新するための装置は、フルデータ削除ファイルのデータテーブルへのインポートを実施するために、フルデータ削除ファイルの保存パスをデータテーブルのディレクトリに変更してもよい。保存パスを変更する操作にかかる時間はわずか数秒である。
削除データの各行の削除タイムスタンプの時点は、フルデータ削除ファイルが生成される時点であり、そのタイムスタンプはオリジナル・タイムスタンプの最大値よりも大きく、従って、フルデータ更新ファイルがデータテーブルにインポートされた後、削除データのR番目の行は、削除データのR番目の行と同じRowKeyを持つ古いデータのR番目の行を削除することができる。加えて、フルデータ削除ファイルは、データテーブル内のM行の古いデータのRowKeyと一対一で対応するM行の削除データを含み、従って、フルデータ削除ファイルがデータテーブルにインポートされた後、データテーブル内の古いデータのM行全てが削除され、ユーザはデータテーブルから古いデータを読み出すことはできない。各新しい列修飾子の更新タイムスタンプの時点は、ステップ203で、フルデータ更新ファイルが生成される時点であり、削除データの各行の削除タイムスタンプの時点は、ステップ202で、フルデータ削除ファイルが生成される時点であり、ステップ202はステップ203の前に実行され、従って、各削除タイムスタンプは各更新タイムスタンプよりも小さく、フルデータ削除ファイルはフルデータ更新ファイル内のデータを削除せず、フルデータ更新ファイルは依然としてユーザによって通常通り読み出されることができる。
ステップ204と205との間の順番は、本実施形態では限定されない。しかしながら、ステップ205が最初に実行される場合、フルデータ削除ファイルがデータテーブルにインポートされた後で且つフルデータ更新ファイルがデータテーブルにインポートされる前、データテーブル内にユーザによって読み出されることができるデータはなく、KeyValueデータベースによってユーザのために提供されるサービスは一時的に中断された状態にある。従って、好ましくは、ステップ204が最初に実行され、次いで、ステップ205が実行され、このようにして、KeyValueデータベースのデータテーブルが更新されているとき、ユーザがデータテーブル内のデータを常に読み出すことができ、サービスが中断されない、ということが保証されることができる。
好ましくは、本発明の本実施形態におけるKeyValueデータベースは、基礎となるデータストレージの媒体として、分散ファイルシステムを使用してもよい。分散ファイルシステムはファイル管理システムであり、システム内の物理的な記憶リソースは必ずしもローカルノードに接続されてはいないが、コンピュータネットワークを使用することによって複数のノードに接続される。分散ファイルシステムでは、大きなデータブロックは複数の小さなデータブロックに分割されるとともに、複数の小さなデータブロックは複数のノード上に格納され、その結果、分散ファイルシステムは高い耐障害性と高いスループットを有する。Hadoop分散ファイルシステム(HDFS, Hadoop Distributed File System)等を含む多くの共有分散ファイルシステムが存在し、本発明の本実施形態では分散ファイルシステムは限定されず、HDFSは例として使用されるのみである。フルデータ更新ファイルとフルデータ削除ファイルとを生成した後、テーブルデータを更新するための装置は、フルデータ更新ファイルとフルデータ削除ファイルとをHDFSにおけるKeyValueデータベースのディレクトリ以外の場所に保存する。ステップ204では、フルデータ更新ファイルの保存パスはHDFSにおけるKeyValueデータベース内のデータテーブルのディレクトリに変更されるとともに、ステップ205では、フルデータ削除ファイルの保存パスはHDFSにおけるKeyValueデータベース内のデータテーブルのディレクトリに変更される。
本実施形態は、KeyValueデータベースのデータテーブルを更新するための方法を提供し、その方法は、フルデータ更新命令を受信するステップと、インポートされるべきデータに従って、フルデータ更新ファイルを生成し、フルデータ更新命令に従って、インポートされるべきデータを取得するステップと、フルデータ更新命令に対応するデータテーブルにおけるM行の古いデータを取得するステップと、M行の古いデータに従って、フルデータ削除ファイルを生成するステップと、フルデータ更新ファイルをデータテーブルにインポートするステップと、フルデータ削除ファイルをデータテーブルにインポートするステップとを含む。このような方法を使用することによって、KeyValueデータベースのデータテーブル内の全てのデータの更新が実施される。加えて、従来技術ではデータテーブル内のKeyValueデータをひとつずつ更新することと比較して、フルデータ更新ファイルおよびフルデータ削除ファイルは、KeyValueデータベースにひとつずつインポートされず、且つインポートにかかる時間はわずか数秒であるため、本発明の本実施形態で提供される方法によると、原子性はより良く、且つ、更新速度はより速い。さらに、本発明の本実施形態における方法によると、フルデータ更新ファイルが最初にインポートされ、次いで、フルデータ削除ファイルがインポートされ、従って、ターゲットテーブルにインポートされているデータがないと同時に古いデータが既に削除されている、というケースが発生しない。従って、データ読み出しサービスは中断されず、ユーザ体験がより良い。
前述の実施形態の理解を容易にするために、以下では、説明のための例として、前述の実施形態の具体的な適用シナリオを使用する。
KeyValueデータベースは、基礎となるデータストレージの媒体として、HDFSを使用する。ユーザは、クライアントを使用することによって、フルデータ更新命令を配信し、データテーブルTable 1におけるデータを更新するように命令する。
データテーブルTable 1の形態はTable 1に示される。Table 1はデータテーブルTable 1の論理的構造のみを示し、ここで、データテーブルTable 1の基礎となるファイルはKeyValueの形態であり、各行の各修飾子は、1つのKeyValueに対応しており、各KeyValueはRowKey値、データ型およびオリジナル・タイムスタンプを含むとともに他の情報をさらに含んでもよい。データテーブルTable 1は100行の古いデータを含み、且つ、100行の古いデータでは、古いデータの各行は1つのRowKeyと3つの列修飾子(修飾子1、修飾子2および修飾子3)とを含むとともに、オリジナル・タイムスタンプT0が各列修飾子に対して設定される。各列修飾子のデータ型はPutである。
時点T1で、テーブルデータを更新するための装置は、フルデータ更新命令に従って、Table 1内の100行の古いデータを取得する。テーブルデータを更新するための装置は、100行の古いデータに従って、フルデータ削除ファイルを生成する。フルデータ削除ファイルはデータテーブルTable 1内の100行の古いデータに一対一で対応する、100行の削除データを含み、ここで、100行の削除データは100行の古いデータのRowKeyに一対一で対応するとともに、100行の削除データは100行の古いデータを削除するために使用される。
フルデータ削除ファイルの100行の削除データの形態がTable 2(a)に示されることができる。Table 2(a)はフルデータ削除ファイルの論理的構造のみを示し、ここで、フルデータ削除ファイルの基礎となるファイルはKeyValueの形態であり、各行は、1つのKeyValueに対応しており、各KeyValueはRowKey値、データ型および削除タイムスタンプを含むとともに他の情報をさらに含んでもよい。削除データの各行のデータ型はDeleteであるとともに、削除タイムスタンプが、削除データの各行に対して設定され、且つ、削除データの各行の削除タイムスタンプの時点は、フルデータ削除ファイルが生成される時点T1であり、ここで、T1はT0よりも大きい。
特に、フルデータ削除ファイルの100行の削除データの形態がまたTable 2(b)に示されることができる。Table 2(b)はフルデータ削除ファイルの論理的構造のみを示し、ここで、フルデータ削除ファイルの基礎となるファイルはKeyValueの形態であり、各行の各修飾子は、1つのKeyValueに対応しており、各KeyValueはRowKey値、データ型および削除タイムスタンプを含むとともに他の情報をさらに含んでもよい。削除データの各行は、Table 1における3つの修飾子を有し、各修飾子のデータ型はDeleteであり、削除タイムスタンプが、各修飾子に対して設定され、且つ、各修飾子の削除タイムスタンプの時点は、フルデータ削除ファイルが生成される時点T1であり、ここで、T1はT0よりも大きい。本例では、図2(a)で示されるフルデータ削除ファイルのみが説明のための例として使用される。
時点T2で、テーブルデータを更新するための装置は、フルデータ更新命令に従って、インポートされるべきデータを取得し、インポートされるべきデータに従って、フルデータ更新ファイルを生成する。Table 3を参照すると、Table 3はフルデータ更新ファイルの論理的構造のみを示し、ここで、フルデータ更新ファイルの基礎となるファイルはKeyValueの形態であり、各行の各修飾子は、1つのKeyValueに対応しており、各KeyValueはRowKey値、データ型および更新タイムスタンプを含むとともに他の情報をさらに含んでもよい。フルデータ更新ファイルは200行の新しいデータを含み、新しいデータの各行は1つの行キーRowKeyと3つの新しい列修飾子(修飾子1、修飾子2および修飾子4)とを含み、ここで、各新しい列修飾子のデータ型はプットPut型であり、更新タイムスタンプが、各新しい列修飾子に対して設定され、且つ、各新しい列修飾子の更新タイムスタンプの時点は、フルデータ更新ファイルが生成される時点T2であり、ここで、T2はT1よりも大きい。
時点T3で、テーブルデータを更新するための装置は、フルデータ更新ファイルのデータテーブルへのインポートを実施するために、フルデータ更新ファイルの保存パスをデータテーブルTable 1のディレクトリに変更する。
時点T4で、テーブルデータを更新するための装置は、フルデータ削除ファイルのデータテーブルへのインポートを実施するために、フルデータ削除ファイルの保存パスをデータテーブルTable 1のディレクトリに変更する。このようにして、フルデータ更新ファイルのデータは有効であるが、データテーブル内の古いデータの全てが削除される。T4はT3よりも大きい。
本発明の実施形態は、テーブルデータを更新するための関連する装置をさらに提供する。図3を参照すると、装置の基本構造は、主に以下を含む:
受信モジュール301はフルデータ更新命令を受信するように構成される。
ユーザは、クライアントを使用することによって、フルデータ更新命令を配信し、ここで、フルデータ更新命令は、KeyValueデータベースにおけるデータテーブルのテーブルデータを完全に更新するように命令するために使用される。受信モジュール301は、フルデータ更新命令を受信する。
ファイル生成モジュール302は、フルデータ更新命令に従って、インポートされるべきデータを取得し、インポートされるべきデータに従って、フルデータ更新ファイルを生成するように構成される。
ファイル生成モジュール302は、フルデータ更新命令に従って、インポートされるべきデータを取得し、インポートされるべきデータに従って、フルデータ更新ファイルを生成する。好ましくは、フルデータ更新命令はデータテーブルのテーブル名を含んでもよく、且つ、インポートされるべきデータの保存パスおよび生成されたフルデータ更新ファイルの保存パスを指定する。ファイル生成モジュール302は、インポートされるべきデータの、フルデータ更新命令で指定された保存パスから、インポートされるべきデータを取得し、インポートされるべきデータに従って、フルデータ更新ファイルを生成し、次いで、フルデータ更新ファイルの、フルデータ更新命令で指定された保存パスに、フルデータ更新ファイルを保存する。
フルデータ更新ファイルはP行の新しいデータを含み、ここで、新しいデータの各行は、1つの行キーRowKeyと、Q個の新しい列修飾子とを含み、各新しい列修飾子のデータ型は、プットPut型であり、更新タイムスタンプが各新しい列修飾子に対して設定される。
取得モジュール303は、フルデータ更新命令に対応するデータテーブルにおけるM行の古いデータを取得するように構成される。
古いデータの各行は、1つのRowKeyとN個の古い列修飾子とを含み、オリジナル・タイムスタンプが各列修飾子に対して設定される。
ファイル生成モジュール302は、M行の古いデータに従って、フルデータ削除ファイルを生成するようにさらに構成される。
好ましくは、フルデータ更新命令はデータテーブルのテーブル名を含んでもよく、且つ、生成されたフルデータ削除ファイルの保存パスを指定する。ファイル生成モジュール302は、データテーブルのテーブル名に従ってデータテーブルを決定し、次いで、フルデータ削除ファイルの、フルデータ更新命令で指定された保存パスに、データテーブルを保存する。
フルデータ削除ファイルはM行の削除データを含み、ここで、削除データの各行はデータテーブル内の古いデータの各行と一対一で対応し、削除データの各行のデータ型はDelete型であり、削除データの各行は削除データの行と同じRowKeyを持つ古いデータを削除するために使用される。削除タイムスタンプが削除データの各行に対して設定される。
削除データのR番目の行の削除タイムスタンプは古いデータのR番目の行のオリジナル・タイムスタンプの最大値よりも大きく、削除データのR番目の行の削除タイムスタンプは新しいデータのS番目の行の更新タイムスタンプの最小値よりも小さい。削除データのR番目の行、古いデータのR番目の行および新しいデータのS番目の行は同じRowKeyを持ち、1 ≦ R ≦ M、且つ1 ≦ S ≦ Pである。
インポートモジュール304は、フルデータ更新ファイルをデータテーブルにインポートするとともにフルデータ削除ファイルをデータテーブルにインポートするように構成される。
インポートモジュール304は、フルデータ更新ファイルを、フルデータ更新命令に対応するデータテーブルにインポートし、ここで、フルデータ更新ファイルはデータテーブルに一度にインポートされ、このことは、データインポートの原子性を保証することができる。
フルデータ更新ファイルにおける新しいデータのS番目の行の更新タイムスタンプの最小値は、新しいデータのS番目の行と同じRowKeyを持つ古いデータのR番目の行のオリジナル・タイムスタンプの最大値よりも大きく、従って、フルデータ更新ファイルがデータテーブルにインポートされた後、古いデータのR番目の行が存在する場合、新しいデータのS番目の行は古いデータのR番目の行を上書きすることができ、ユーザは新しいデータのS番目の行を読み出すことができるが、古いデータのR番目の行を読み出すことはできない。
インポートモジュール304は、フルデータ削除ファイルを、フルデータ更新命令に対応するデータテーブルにインポートし、ここで、フルデータ削除ファイルはデータテーブルに一度にインポートされ、このことは、データ削除の原子性を保証することができる。
削除データのR番目の行の削除タイムスタンプは削除データのR番目の行と同じRowKeyを持つ古いデータのR番目の行のオリジナル・タイムスタンプの最大値よりも大きく、従って、削除データのR番目の行は、削除データのR番目の行と同じRowKeyを持つ古いデータのR番目の行を削除することができる。加えて、フルデータ削除ファイルは、データテーブル内のM行の古いデータのRowKeyと一対一で対応するM行の削除データを含み、従って、フルデータ削除ファイルがデータテーブルにインポートされた後、データテーブル内の古いデータのM行全てが削除され、ユーザはデータテーブルから古いデータを読み出すことはできない。削除データのR番目の行の削除タイムスタンプは削除データのR番目の行と同じRowKeyを持つ新しいデータのS番目の行の更新タイムスタンプの最小値よりも小さく、従って、新しいデータのS番目の行が存在する場合、新しいデータのS番目の行は依然として有効であり、すなわち、フルデータ削除ファイルがデータテーブルにインポートされた後、フルデータ更新ファイルは依然としてユーザによって通常通り読み出されることができる。
本実施形態は、テーブルデータを更新するための装置を提供し、その装置は、フルデータ更新命令を受信するように構成された受信モジュール301と、フルデータ更新命令に従って、インポートされるべきデータを取得し、インポートされるべきデータに従って、フルデータ更新ファイルを生成するように構成されたファイル生成モジュール302と、フルデータ更新命令に対応するデータテーブルにおけるM行の古いデータを取得するように構成された取得モジュール303と、フルデータ更新ファイルをデータテーブルにインポートするとともにフルデータ削除ファイルをデータテーブルにインポートするように構成されたインポートモジュール304とを含み、ファイル生成モジュール302は、M行の古いデータに従って、フルデータ削除ファイルを生成するようにさらに構成される。本実施形態で提供されるテーブルデータを更新するための装置は、KeyValueデータベースのデータテーブル内の全てのデータの更新を実施することができる。加えて、従来技術ではデータテーブル内のKeyValueデータをひとつずつ更新することと比較して、フルデータ更新ファイルおよびフルデータ削除ファイルは、KeyValueデータベースにひとつずつインポートされないため、本発明の本実施形態で提供されるテーブルデータを更新するための装置によると、更新速度はより速く、且つ、原子性はより良い。
好ましくは、図3で示される実施形態では、ファイル生成モジュール302は最初にフルデータ削除ファイルを生成し、次いで、フルデータ更新ファイルを生成してもよい。このようにして、KeyValueデータベースのデータテーブルが更新されているとき、ユーザがデータテーブル内のデータを常に読み出すことができ、サービスが中断されない、ということが保証されることができる。より好ましくは、ファイル生成モジュール302は、フルデータ更新ファイルが生成される時点を各新しい列修飾子の更新タイムスタンプとして設定するとともに、フルデータ削除ファイルが生成される時点を削除データの各行の削除タイムスタンプとして設定してもよい。好ましくは、図3で示される実施形態では、インポートモジュール304は、最初にフルデータ更新ファイルをデータテーブルにインポートし、次いで、フルデータ削除ファイルをデータテーブルにインポートしてもよい。
好ましくは、図3で示される実施形態では、インポートモジュール304は、具体的には、フルデータ更新ファイルの保存パスをデータテーブルのディレクトリに変更するとともに、フルデータ削除ファイルの保存パスをデータテーブルのディレクトリに変更するように構成される。保存パスを変更する操作にかかる時間はわずか数秒である。より好ましくは、本発明の本実施形態におけるKeyValueデータベースは、基礎となるデータストレージの媒体として、分散ファイルシステムを使用してもよく、インポートモジュール304は、具体的には、フルデータ更新ファイルの保存パスをHDFSにおけるKeyValueデータベースのデータテーブルのディレクトリに変更するとともに、フルデータ削除ファイルの保存パスをHDFSにおけるKeyValueデータベースのデータテーブルのディレクトリに変更するように構成される。
前述の実施形態の理解を容易にするために、以下では、説明のための例として、前述の実施形態の具体的な適用シナリオを使用する。
KeyValueデータベースは、基礎となるデータストレージの媒体として、HDFSを使用する。ユーザは、クライアントを使用することによって、フルデータ更新命令を配信し、データテーブルTable 1におけるデータを更新するように命令する。
データテーブルTable 1の形態はTable 1に示される。データテーブルTable 1は100行の古いデータを含み、且つ、100行の古いデータでは、古いデータの各行は1つのRowKeyと3つの列修飾子(修飾子1、修飾子2および修飾子3)とを含むとともに、オリジナル・タイムスタンプT0が各列修飾子に対して設定される。各列修飾子のデータ型はPutである。
時点T1で、受信モジュール301は、フルデータ更新命令に従って、データテーブルTable 1内の100行の古いデータを取得する。ファイル生成モジュール302は、100行の古いデータに従って、フルデータ削除ファイルを生成する。フルデータ削除ファイルはデータテーブルTable 1内の100行の古いデータに一対一で対応する、100行の削除データを含み、ここで、100行の削除データは100行の古いデータのRowKeyに一対一で対応するとともに、100行の削除データは100行の古いデータを削除するために使用される。
フルデータ削除ファイルの100行の削除データの形態が図2(a)に示されることができる。削除データの各行のデータ型はDeleteであり、削除タイムスタンプが、削除データの各行に対して設定され、且つ、削除データの各行の削除タイムスタンプの時点は、フルデータ削除ファイルが生成される時点T1であり、ここで、T1はT0よりも大きい。
Table 3を参照すると、時点T2で、ファイル生成モジュール302は、フルデータ更新命令に従って、インポートされるべきデータを取得し、インポートされるべきデータに従って、フルデータ更新ファイルを生成する。フルデータ更新ファイルは200行の新しいデータを含み、新しいデータの各行は1つの行キーRowKeyと3つの新しい列修飾子(修飾子1、修飾子2および修飾子4)とを含み、ここで、各新しい列修飾子のデータ型はプットPut型であり、更新タイムスタンプが、各新しい列修飾子に対して設定され、且つ、各新しい列修飾子の更新タイムスタンプの時点は、フルデータ更新ファイルが生成される時点T2であり、ここで、T2はT1よりも大きい。
時点T3で、インポートモジュール304は、フルデータ更新ファイルのデータテーブルへのインポートを実施するために、フルデータ更新ファイルの保存パスをデータテーブルのディレクトリに変更する。
時点T4で、インポートモジュール304は、フルデータ削除ファイルのデータテーブルへのインポートを実施するために、フルデータ削除ファイルの保存パスをデータテーブルのディレクトリに変更する。このようにして、フルデータ更新ファイルのデータは有効であるが、データテーブル内の古いデータの全てが削除される。T4はT3よりも大きい。
前述では、本発明の実施形態におけるテーブルデータを更新するための装置を、機能エンティティのユニット化の観点から説明しており、且つ、以下では、本発明の実施形態におけるテーブルデータを更新するための装置を、ハードウェア処理の観点から説明する。図4を参照すると、本発明の実施形態におけるテーブルデータを更新するための装置400の別の実施形態は、入力装置401、出力装置402、プロセッサ403およびメモリ404を含む(テーブルデータを更新するための装置400内には1つ以上のプロセッサ403があってもよく、1つのプロセッサ403があることが、図4における例として使用される)。本発明のいくつかの実施形態では、入力装置401、出力装置402、プロセッサ403およびメモリ404はバスを使用することによって、または別の方法で接続されてもよい。接続のためにバスが使用されることが、図4における例として使用される。
メモリ404に格納された操作命令を呼び出すことによって、プロセッサ403は、
フルデータ更新命令を受信するステップと、
フルデータ更新命令に従って、インポートされるべきデータを取得し、インポートされるべきデータに従って、フルデータ更新ファイルを生成するステップであって、フルデータ更新ファイルはP行の新しいデータを含み、新しいデータの各行は、1つの行キーRowKeyとQ個の新しい列修飾子とを含み、各新しい列修飾子のデータ型はプットPut型であり、更新タイムスタンプが各新しい列修飾子に対して設定される、ステップと、
フルデータ更新命令に対応するデータテーブルにおけるM行の古いデータを取得するステップであって、古いデータの各行は、1つの行キーRowKeyとN個の古い列修飾子とを含み、オリジナル・タイムスタンプが各古い列修飾子に対して設定される、ステップと、
M行の古いデータに従って、フルデータ削除ファイルを生成するステップであって、フルデータ削除ファイルはM行の削除データを含み、削除データの各行は古いデータの各行と一対一で対応し、削除データの各行のデータ型はDelete型であり、削除タイムスタンプが削除データの各行に対して設定され、削除データのR番目の行の削除タイムスタンプは古いデータのR番目の行のオリジナル・タイムスタンプの最大値よりも大きく、削除データのR番目の行の削除タイムスタンプは新しいデータのS番目の行の更新タイムスタンプの最小値よりも小さく、削除データのR番目の行、古いデータのR番目の行および新しいデータのS番目の行は同じRowKeyを持ち、1 ≦ R ≦ M、且つ1 ≦ S ≦ Pである、ステップと、
フルデータ更新ファイルをデータテーブルにインポートするステップと、
フルデータ削除ファイルをデータテーブルにインポートするステップと
を実行するように構成される。
本発明のいくつかの実施形態では、プロセッサ403は最初にフルデータ削除ファイルを生成し、次いで、フルデータ更新ファイルを生成し、且つ、フルデータ更新ファイルが生成される時点を各新しい列修飾子の更新タイムスタンプとして設定するとともに、フルデータ削除ファイルが生成される時点を削除データの各行の削除タイムスタンプとして設定する。
本発明のいくつかの実施形態では、プロセッサ403は最初にフルデータ更新ファイルをデータテーブルにインポートし、次いで、フルデータ削除ファイルをデータテーブルにインポートする。本発明のいくつかの実施形態では、プロセッサ403は、
フルデータ更新ファイルの保存パスをフルデータ更新命令に対応するデータテーブルのディレクトリに変更するステップ
を実行するようにさらに構成される。
本発明のいくつかの実施形態では、プロセッサ403は、
フルデータ削除ファイルの保存パスをフルデータ更新命令に対応するデータテーブルのディレクトリに変更するステップ
を実行するようにさらに構成される。
図5を参照すると、本発明の実施形態は、KeyValueデータベースのデータテーブルを更新するための別の方法をさらに提供し、その方法は、具体的には以下を含む:
501. フルデータ更新命令を受信する。
502. フルデータ更新命令に従って、インポートされるべきデータを取得し、インポートされるべきデータに従って、フルデータ更新ファイルを生成する。
503. フルデータ更新命令に対応するデータテーブルにおけるM行の古いデータを取得し、M行の古いデータに従って、フルデータ削除ファイルを生成する。
ステップ501から503は基本的にステップ101から103と同じであり、詳細はここでは説明されない。
504. フルデータ更新ファイルとフルデータ削除ファイルとを結合してテーブルデータ更新ファイルにする。
フルデータ更新ファイルとフルデータ削除ファイルとを生成した後、テーブルデータを更新するための装置は、フルデータ更新ファイルとフルデータ削除ファイルとを結合してテーブルデータ更新ファイルにする。結合後に得られたテーブルデータ更新ファイルはフルデータ更新ファイルの全てのデータを含むだけでなく、フルデータ削除ファイルの全てのデータも含む。
505. テーブルデータ更新ファイルをデータテーブルにインポートする。
テーブルデータを更新するための装置は、テーブルデータ更新ファイルを、フルデータ更新命令に対応するデータテーブルにインポートする。テーブルデータ更新ファイルはデータテーブルに一度にインポートされるため、データインポートの原子性が保証されることができる。
結合後に得られたテーブルデータ更新ファイルはフルデータ更新ファイルの全てのデータを含み、フルデータ更新ファイルの新しいデータのS番目の行の更新タイムスタンプの最小値は、新しいデータのS番目の行と同じRowKeyを持つ古いデータのR番目の行のオリジナル・タイムスタンプの最大値よりも大きく、従って、テーブルデータ更新ファイルがデータテーブルにインポートされた後、古いデータのR番目の行が存在する場合、新しいデータのS番目の行は古いデータのR番目の行を上書きすることができ、ユーザは新しいデータのS番目の行を読み出すことができるが、古いデータのR番目の行を読み出すことはできない。
結合後に得られたテーブルデータ更新ファイルはフルデータ削除ファイルの全てのデータを含み、削除データのR番目の行の削除タイムスタンプは削除データのR番目の行と同じRowKeyを持つ古いデータのR番目の行のオリジナル・タイムスタンプの最大値よりも大きく、従って、テーブルデータ更新ファイルがデータテーブルにインポートされた後、削除データのR番目の行は、削除データのR番目の行と同じRowKeyを持つ古いデータのR番目の行を削除することができる。加えて、フルデータ削除ファイルは、データテーブル内のM行の古いデータのRowKeyと一対一で対応するM行の削除データを含み、従って、テーブルデータ更新ファイルがデータテーブルにインポートされた後、データテーブル内の古いデータのM行全てが削除され、ユーザはデータテーブルから古いデータを読み出すことはできない。削除データのR番目の行の削除タイムスタンプは削除データのR番目の行と同じRowKeyを持つ新しいデータのS番目の行の更新タイムスタンプの最小値よりも小さく、従って、新しいデータのS番目の行が存在する場合、新しいデータのS番目の行は依然として有効であり、すなわち、テーブルデータ更新ファイルの全てのデータが、依然としてユーザによって通常通り読み出されることができる。
本実施形態は、KeyValueデータベースのデータテーブルを更新するための方法を提供し、その方法は、フルデータ更新命令を受信するステップと、フルデータ更新命令に従って、インポートされるべきデータを取得し、インポートされるべきデータに従って、フルデータ更新ファイルを生成するステップと、フルデータ更新命令に対応するデータテーブルにおけるM行の古いデータを取得するステップと、M行の古いデータに従って、フルデータ削除ファイルを生成するステップと、フルデータ更新ファイルとフルデータ削除ファイルとを結合してテーブルデータ更新ファイルにするステップと、テーブルデータ更新ファイルをデータテーブルにインポートするステップとを含む。このような方法を使用することによって、KeyValueデータベースのデータテーブル内の全てのデータのフル更新が実施される。加えて、従来技術ではデータテーブル内のKeyValueデータをひとつずつ更新することと比較して、フルデータ更新ファイルおよびフルデータ削除ファイルは、KeyValueデータベースにひとつずつインポートされないため、本実施形態で提供される方法によると、更新速度はより速く、且つ、原子性はより良い。
図1に示される実施形態と比較して、本実施形態では、フルデータ更新ファイルとフルデータ削除ファイルとが最初に結合されてテーブルデータ更新ファイルとなり、次いで、テーブルデータ更新ファイルはデータテーブルにインポートされる。このようにして、ファイルは、テーブルデータのフル更新を実施するために、データテーブルにただ一度だけインポートされる必要がある。より好ましくは、本発明の別の実施形態では、テーブルデータ装置はフルデータ更新ファイルまたはフルデータ削除ファイルを生成しないが、フルデータ更新命令に従って、テーブルデータ更新ファイルを直接生成し、次いで、テーブルデータ更新ファイルをデータテーブルにインポートしてもよい。
好ましくは、テーブルデータを更新するための装置は、テーブルデータ更新ファイルのデータテーブルへのインポートを実施するために、テーブルデータ更新ファイルの保存パスをデータテーブルのディレクトリに変更してもよい。保存パスを変更する操作にかかる時間はわずか数秒である。
本発明の実施形態は、テーブルデータを更新するための関連する装置をさらに提供する。図6を参照すると、装置の基本構造は、主に以下を含む:
命令受信モジュール601は、フルデータ更新命令を受信するように構成される。
ファイル生成モジュール602は、フルデータ更新命令に従って、インポートされるべきデータを取得し、インポートされるべきデータに従って、フルデータ更新ファイルを生成するように構成される。
データ取得モジュール603は、フルデータ更新命令に対応するデータテーブルにおけるM行の古いデータを取得するように構成される。
ファイル生成モジュール602は、M行の古いデータに従って、フルデータ削除ファイルを生成するようにさらに構成される。
モジュール601から603は基本的にモジュール301から303と同じであり、詳細はここでは説明されない。
ファイル結合モジュール604は、フルデータ更新ファイルとフルデータ削除ファイルとを結合してテーブルデータ更新ファイルにするように構成される。
テーブルデータを更新するための装置はフルデータ更新ファイルとフルデータ削除ファイルとを生成した後、ファイル結合モジュール604は、フルデータ更新ファイルとフルデータ削除ファイルとを結合してテーブルデータ更新ファイルにする。結合後に得られたテーブルデータ更新ファイルはフルデータ更新ファイルの全てのデータを含むだけでなく、フルデータ削除ファイルの全てのデータも含む。
ファイル・インポート・モジュール605は、テーブルデータ更新ファイルをデータテーブルにインポートするように構成される。
ファイル・インポート・モジュール605は、テーブルデータ更新ファイルを、フルデータ更新命令に対応するデータテーブルにインポートする。テーブルデータ更新ファイルはデータテーブルに一度にインポートされるため、データインポートの原子性が保証されることができる。
結合後に得られたテーブルデータ更新ファイルはフルデータ更新ファイルの全てのデータを含み、フルデータ更新ファイルの新しいデータのS番目の行の更新タイムスタンプの最小値は、新しいデータのS番目の行と同じRowKeyを持つ古いデータのR番目の行のオリジナル・タイムスタンプの最大値よりも大きく、従って、テーブルデータ更新ファイルがデータテーブルにインポートされた後、古いデータのR番目の行が存在する場合、新しいデータのS番目の行は古いデータのR番目の行を上書きすることができ、ユーザは新しいデータのS番目の行を読み出すことができるが、古いデータのR番目の行を読み出すことはできない。
結合後に得られたテーブルデータ更新ファイルはフルデータ削除ファイルの全てのデータを含み、削除データのR番目の行の削除タイムスタンプは削除データのR番目の行と同じRowKeyを持つ古いデータのR番目の行のオリジナル・タイムスタンプの最大値よりも大きく、従って、テーブルデータ更新ファイルがデータテーブルにインポートされた後、削除データのR番目の行は、削除データのR番目の行と同じRowKeyを持つ古いデータのR番目の行を削除することができる。加えて、フルデータ削除ファイルは、データテーブル内のM行の古いデータのRowKeyと一対一で対応するM行の削除データを含み、従って、テーブルデータ更新ファイルがデータテーブルにインポートされた後、データテーブル内の古いデータのM行全てが削除され、ユーザはデータテーブルから古いデータを読み出すことはできない。削除データのR番目の行の削除タイムスタンプは削除データのR番目の行と同じRowKeyを持つ新しいデータのS番目の行の更新タイムスタンプの最小値よりも小さく、従って、新しいデータのS番目の行が存在する場合、新しいデータのS番目の行は依然として有効であり、すなわち、テーブルデータ更新ファイルの全てのデータが、依然としてユーザによって通常通り読み出されることができる。
本実施形態は、テーブルデータを更新するための装置を提供し、ここで、命令受信モジュール601は、フルデータ更新命令を受信し、ファイル生成モジュール602は、フルデータ更新命令に従って、インポートされるべきデータを取得し、インポートされるべきデータに従って、フルデータ更新ファイルを生成し、データ取得モジュール603は、フルデータ更新命令に対応するデータテーブルにおけるM行の古いデータを取得し、ここで、ファイル生成モジュール602は、M行の古いデータに従って、フルデータ削除ファイルを生成し、ファイル結合モジュール604は、フルデータ更新ファイルとフルデータ削除ファイルとを結合してテーブルデータ更新ファイルにし、ファイル・インポート・モジュール605は、テーブルデータ更新ファイルをデータテーブルにインポートする。このような方法を使用することによって、KeyValueデータベースのデータテーブル内の全てのデータのフル更新が実施される。加えて、従来技術ではデータテーブル内のKeyValueデータをひとつずつ更新することと比較して、フルデータ更新ファイルおよびフルデータ削除ファイルは、KeyValueデータベースにひとつずつインポートされないため、本実施形態で提供される方法によると、更新速度はより速く、且つ、原子性はより良い。
好ましくは、ファイル・インポート・モジュール605は、テーブルデータ更新ファイルのデータテーブルへのインポートを実施するために、テーブルデータ更新ファイルの保存パスをデータテーブルのディレクトリに変更してもよい。保存パスを変更する操作にかかる時間はわずか数秒である。
図3に示される実施形態と比較して、本実施形態では、フルデータ更新ファイルとフルデータ削除ファイルとが最初に結合されてテーブルデータ更新ファイルとなり、次いで、テーブルデータ更新ファイルはデータテーブルにインポートされる。このようにして、ファイルは、テーブルデータのフル更新を実施するために、データテーブルにただ一度だけインポートされる必要がある。より好ましくは、本発明の別の実施形態では、ファイル生成モジュール602はフルデータ更新ファイルまたはフルデータ削除ファイルを生成しないが、フルデータ更新命令に従って、テーブルデータ更新ファイルを直接生成し、次いで、ファイル・インポート・モジュール605は、テーブルデータ更新ファイルをデータテーブルにインポートしてもよい。
前述では、本発明の実施形態におけるテーブルデータを更新するための装置を、機能エンティティのユニット化の観点から説明しており、且つ、以下では、本発明の実施形態におけるテーブルデータを更新するための装置を、ハードウェア処理の観点から説明する。さらに図4を参照すると、本発明の実施形態におけるテーブルデータを更新するための装置400の別の実施形態は、入力装置401、出力装置402、プロセッサ403およびメモリ404を含む(テーブルデータを更新するための装置400内には1つ以上のプロセッサ403があってもよく、1つのプロセッサ403があることが、図4における例として使用される)。本発明のいくつかの実施形態では、入力装置401、出力装置402、プロセッサ403およびメモリ404はバスを使用することによって、または別の方法で接続されてもよい。接続のためにバスが使用されることが、図4における例として使用される。
メモリ404に格納された操作命令を呼び出すことによって、プロセッサ403は、
フルデータ更新命令を受信するステップと、
フルデータ更新命令に従って、インポートされるべきデータを取得し、インポートされるべきデータに従って、フルデータ更新ファイルを生成するステップであって、フルデータ更新ファイルはP行の新しいデータを含み、新しいデータの各行は、1つの行キーRowKeyとQ個の新しい列修飾子とを含み、各新しい列修飾子のデータ型はプットPut型であり、更新タイムスタンプが各新しい列修飾子に対して設定される、ステップと、
フルデータ更新命令に対応するデータテーブルにおけるM行の古いデータを取得するステップであって、古いデータの各行は、1つの行キーRowKeyとN個の古い列修飾子とを含み、オリジナル・タイムスタンプが各古い列修飾子に対して設定される、ステップと、
M行の古いデータに従って、フルデータ削除ファイルを生成するステップであって、フルデータ削除ファイルはM行の削除データを含み、削除データの各行は古いデータの各行と一対一で対応し、削除データの各行のデータ型はDelete型であり、削除タイムスタンプが削除データの各行に対して設定され、削除データのR番目の行の削除タイムスタンプは古いデータのR番目の行のオリジナル・タイムスタンプの最大値よりも大きく、削除データのR番目の行の削除タイムスタンプは新しいデータのS番目の行の更新タイムスタンプの最小値よりも小さく、削除データのR番目の行、古いデータのR番目の行および新しいデータのS番目の行は同じRowKeyを持ち、1 ≦ R ≦ M、且つ1 ≦ S ≦ Pである、ステップと、
フルデータ更新ファイルとフルデータ削除ファイルとを結合してテーブルデータ更新ファイルにするステップと、
テーブルデータ更新ファイルをデータテーブルにインポートするステップと
を実行するように構成される。
本発明のいくつかの実施形態では、プロセッサ403は、
テーブルデータ更新ファイルの保存パスをフルデータ更新命令に対応するデータテーブルのディレクトリに変更するステップ
を実行するようにさらに構成される。
簡便且つ簡潔な説明のために、前述のシステム、モジュールおよびユニットの詳細な動作プロセスについて、前述の方法の実施形態における対応するプロセスに対して参照が行われてもよいことは当業者によって明確に理解されることができ、詳細はここでは説明されない。
本願で提供されるいくつかの実施形態では、開示されるシステムおよび方法は他の方式で実施されてもよいことが理解されるべきである。例えば、説明されるシステムの実施形態は単に例示的なものである。例えば、ユニットの分割は単に論理的な機能の分割であり、実際の実施では他の分割であってもよい。例えば、複数のユニットまたは構成要素は、別のシステムに結合または統合されてもよく、あるいはいくつかの特徴は無視されるか、または実行されなくてもよい。加えて、表示または議論される相互結合または直接結合または通信接続は、いくつかのインタフェースを使用することによって実施されてもよい。モジュールまたはユニット間の間接結合または通信接続は、電子的、機械的または他の形式で実施されてもよい。
個別の部分として説明されるユニットは物理的に分離していてもしていなくてもよく、且つ、ユニットとして表示される部分は物理的なユニットであってもなくてもよく、1つの位置に配置されてもよく、または複数のネットワークユニット上に分散されてもよい。いくつかのまたは全てのユニットは、実施形態の解決手段の目的を達成するために、実際のニーズに従って選択されてもよい。
加えて、本発明の実施形態における機能的なユニットは1つの処理ユニットに統合されてもよく、または、ユニットの各々は物理的に孤立して存在してもよく、または、2つ以上のユニットは1つのユニットに統合される。前述の集積ユニットはハードウェアの形態で実施されてもよく、またはソフトウェア機能ユニットの形態で実施されてもよい。
集積ユニットがソフトウェア機能ユニットの形態で実施されるとともに、独立した製品として販売または使用される場合、集積ユニットはコンピュータ可読記憶媒体で格納されてもよい。このような理解に基づいて、本発明の技術的解決手段は本質的には、または従来技術に寄与する部分、または技術的解決手段の全てまたは一部は、ソフトウェア製品の形態で実施されてもよい。コンピュータソフトウェア製品は記憶媒体に格納されるとともに、本発明の実施形態で説明される方法のステップの全てまたは一部を実行するために、コンピュータデバイス(パーソナルコンピュータ、サーバまたはネットワークデバイスであってもよい)に命令するためのいくつかの命令を含む。前述の記憶媒体は、USBフラッシュドライブ、リムーバブルハードディスク、読出し専用メモリ(ROM, Read-Only Memory)、ランダム・アクセス・メモリ(RAM, Random Access Memory)、磁気ディスクまたは光ディスクなどの、プログラムコードを格納することができる任意の媒体を含む。
301 受信モジュール
302 ファイル生成モジュール
303 取得モジュール
304 インポートモジュール
400 テーブルデータを更新するための装置
401 入力装置
402 出力装置
403 プロセッサ
404 メモリ
601 命令受信モジュール
602 ファイル生成モジュール
603 データ取得モジュール
604 ファイル結合モジュール
605 ファイル・インポート・モジュール
本発明は情報技術の分野に関し、詳細には、KeyValueデータベースのデータテーブルを更新するための方法およびテーブルデータを更新するための装置に関する。
分散ストレージの非リレーショナル(NoSQL)データベースとして、キーと値のペアの(KeyValue)型のデータベース(以下、KeyValueデータベースと呼ばれる)は高いスケーラビリティと高い信頼性とを有し、より多くのシステムで広く適用されてきた。多くのKeyValueデータベース中のデータはテーブル単位で格納されている。各テーブルは複数行のデータを含み、データの各行は、行キー(RowKey)を使用することによって一意に識別されるとともに、データの各行は複数の列修飾子を含み、各列修飾子は1つのKeyValueデータに対応するとともに、各列修飾子はデータ型とタイムスタンプとを持つ。データ型はPut(新規追加)、Delete(削除)等を含む。Put型は修飾子が新規追加された修飾子であることを示すために使用され、Delete型は修飾子が古い修飾子を削除するために使用されることを示すために使用される。タイムスタンプは、各修飾子の生成時刻を示すために使用される。KeyValueデータベースでは、データのマルチバージョンの格納がタイムスタンプを使用することによって実現され、すなわち、同じRowKey値を持つデータに対して、新しいデータと古いデータがタイムスタンプを使用することによって区別される。KeyValueデータベースがデータの複数バージョンを含むとき、データの古いバージョンはデータの新しいバージョンによって上書きされ、データを読み出すときに、ユーザはデータの新しいバージョンを直接読み出す。
削除としてマークする技術は、KeyValueデータベースでデータを更新するために使用され、KeyValueデータはひとつずつ削除またはインポートされる。実際の適用においては、フル更新は多くの場合、テーブルデータの全てのデータに対して実行される必要があり、すなわち、テーブル内の全ての既存のデータが消去される必要があるとともに新しいデータがテーブルにインポートされる。しかしながら、既存のKeyValueデータベースは一度でのフル更新をサポートしていない。テーブルデータがひとつずつ削除されインポートされる場合、テーブル内の全てのデータを更新するプロセスは、長い時間を要し、更新プロセスは原子性に欠き、そのことは、テーブルによって提供されるデータ読み出しサービスの質に影響を与える。従って、KeyValueデータベースに適用可能なテーブルデータのフル更新方法を提供することは非常に重大なことである。
本発明の実施形態はKeyValueデータベースのデータテーブルを更新するための方法を提供し、この方法はKeyValueデータベースにおけるテーブルデータのフル更新を実施することができる。
本発明の実施形態の第1の態様は、KeyValueデータベースのデータテーブルを更新するための方法を提供し、その方法は、
フルデータ更新命令を受信するステップと、
フルデータ更新命令に従って、インポートされるべきデータを取得し、インポートされるべきデータに従って、フルデータ更新ファイルを生成するステップであって、フルデータ更新ファイルはP行の新しいデータを含み、新しいデータの各行は、1つの行キーとQ個の新しい列修飾子とを含み、各新しい列修飾子のデータ型はプット型であり、更新タイムスタンプが各新しい列修飾子に対して設定される、ステップと、
フルデータ更新命令に対応するデータテーブルにおけるM行の古いデータを取得するステップであって、古いデータの各行は、1つの行キーとN個の古い列修飾子とを含み、オリジナル・タイムスタンプが各古い列修飾子に対して設定される、ステップと、
M行の古いデータに従って、フルデータ削除ファイルを生成するステップであって、フルデータ削除ファイルはM行の削除データを含み、削除データの各行は古いデータの各行と一対一で対応し、削除データの各行のデータ型は削除型であり、削除タイムスタンプが削除データの各行に対して設定され、削除データのR番目の行の削除タイムスタンプは古いデータのR番目の行のオリジナル・タイムスタンプの最大値よりも大きく、削除データのR番目の行の削除タイムスタンプは新しいデータのS番目の行の更新タイムスタンプの最小値よりも小さく、削除データのR番目の行、古いデータのR番目の行および新しいデータのS番目の行は同じRowKeyを持ち、1 ≦ R ≦ M、且つ1 ≦ S ≦ Pである、ステップと、
フルデータ更新ファイルをデータテーブルにインポートするステップと、
フルデータ削除ファイルをデータテーブルにインポートするステップと
を含む。
本発明の実施形態の第1の態様を参照すると、本発明の実施形態の第1の態様の第1の実施方法では、フルデータ削除ファイルを生成するステップが最初に実行され、次いで、フルデータ更新ファイルを生成するステップが実行され、
各新しい列修飾子の更新タイムスタンプの時点は、フルデータ更新ファイルが生成される時点であるとともに、削除データの各行の削除タイムスタンプの時点は、フルデータ削除ファイルが生成される時点である。
本発明の実施形態の第1の態様または第1の態様の第1の実施方法を参照すると、本発明の実施形態の第1の態様の第2の実施方法では、フルデータ更新ファイルをデータテーブルにインポートするステップが最初に実行され、次いで、フルデータ削除ファイルをデータテーブルにインポートするステップが実行される。
本発明の実施形態の第1の態様、第1の態様の第1の実施方法または第2の実施方法を参照すると、本発明の実施形態の第1の態様の第3の実施方法では、フルデータ更新ファイルをデータテーブルにインポートするステップは、
フルデータ更新ファイルの保存パスをフルデータ更新命令に対応するデータテーブルのディレクトリに変更するステップ
を含む。
本発明の実施形態の第1の態様、第1の態様の第1の実施方法、第2の実施方法または第3の実施方法を参照すると、本発明の実施形態の第1の態様の第4の実施方法では、
フルデータ削除ファイルをデータテーブルにインポートするステップは、
フルデータ削除ファイルの保存パスをフルデータ更新命令に対応するデータテーブルのディレクトリに変更するステップ
を含む。
本発明の実施形態の第2の態様は、テーブルデータを更新するための装置を提供し、その装置は、
フルデータ更新命令を受信するように構成された受信モジュールと、
フルデータ更新命令に従って、インポートされるべきデータを取得し、インポートされるべきデータに従って、フルデータ更新ファイルを生成するように構成されたファイル生成モジュールであって、フルデータ更新ファイルはP行の新しいデータを含み、新しいデータの各行は、1つの行キーとQ個の新しい列修飾子とを含み、各新しい列修飾子のデータ型はプット型であり、更新タイムスタンプが各新しい列修飾子に対して設定される、ファイル生成モジュールと、
フルデータ更新命令に対応するデータテーブルにおけるM行の古いデータを取得するように構成された取得モジュールであって、古いデータの各行は、1つの行キーとN個の古い列修飾子とを含み、オリジナル・タイムスタンプが各古い列修飾子に対して設定される、取得モジュールと、
フルデータ更新ファイルをデータテーブルにインポートするとともにフルデータ削除ファイルをデータテーブルにインポートするように構成されたインポートモジュールとを含み、
ファイル生成モジュールは、M行の古いデータに従って、フルデータ削除ファイルを生成するようにさらに構成され、フルデータ削除ファイルはM行の削除データを含み、削除データの各行は古いデータの各行と一対一で対応し、削除データの各行のデータ型はDelete型であり、削除タイムスタンプが削除データの各行に対して設定され、削除データのR番目の行の削除タイムスタンプは古いデータのR番目の行のオリジナル・タイムスタンプの最大値よりも大きく、削除データのR番目の行の削除タイムスタンプは新しいデータのS番目の行の更新タイムスタンプの最小値よりも小さく、削除データのR番目の行、古いデータのR番目の行および新しいデータのS番目の行は同じRowKeyを持ち、1 ≦ R ≦ M、且つ1 ≦ S ≦ Pである。
本発明の実施形態の第2の態様を参照すると、本発明の実施形態の第2の態様の第1の実施方法では、ファイル生成モジュールは最初にフルデータ削除ファイルを生成し、次いで、フルデータ更新ファイルを生成し、且つ、フルデータ更新ファイルが生成される時点を各新しい列修飾子の更新タイムスタンプとして設定するとともに、フルデータ削除ファイルが生成される時点を削除データの各行の削除タイムスタンプとして設定する。
本発明の実施形態の第2の態様または第2の態様の第1の実施方法を参照すると、本発明の実施形態の第2の態様の第2の実施方法では、インポートモジュールは最初にフルデータ更新ファイルをデータテーブルにインポートし、次いで、フルデータ削除ファイルをデータテーブルにインポートする。
本発明の実施形態の第2の態様、第2の態様の第1の実施方法または第2の実施方法を参照すると、本発明の実施形態の第2の態様の第3の実施方法では、インポートモジュールは、具体的には、フルデータ更新ファイルの保存パスをフルデータ更新命令に対応するデータテーブルのディレクトリに変更するように構成される。
本発明の実施形態の第2の態様、第2の態様の第1の実施方法、第2の実施方法または第3の実施方法を参照すると、本発明の実施形態の第2の態様の第4の実施方法では、インポートモジュールは、具体的には、フルデータ削除ファイルの保存パスをフルデータ更新命令に対応するデータテーブルのディレクトリに変更するように構成される。
本発明の実施形態の第3の態様は、入力装置、出力装置、プロセッサおよびメモリを含む、テーブルデータを更新するための装置を提供し、メモリに格納された操作命令を呼び出すことによって、プロセッサは、
フルデータ更新命令を受信するステップと、
フルデータ更新命令に従って、インポートされるべきデータを取得し、インポートされるべきデータに従って、フルデータ更新ファイルを生成するステップであって、フルデータ更新ファイルはP行の新しいデータを含み、新しいデータの各行は、1つの行キーとQ個の新しい列修飾子とを含み、各新しい列修飾子のデータ型はプット型であり、更新タイムスタンプが各新しい列修飾子に対して設定される、ステップと、
フルデータ更新命令に対応するデータテーブルにおけるM行の古いデータを取得するステップであって、古いデータの各行は、1つの行キーとN個の古い列修飾子とを含み、オリジナル・タイムスタンプが各古い列修飾子に対して設定される、ステップと、
M行の古いデータに従って、フルデータ削除ファイルを生成するステップであって、フルデータ削除ファイルはM行の削除データを含み、削除データの各行は古いデータの各行と一対一で対応し、削除データの各行のデータ型はDelete型であり、削除タイムスタンプが削除データの各行に対して設定され、削除データのR番目の行の削除タイムスタンプは古いデータのR番目の行のオリジナル・タイムスタンプの最大値よりも大きく、削除データのR番目の行の削除タイムスタンプは新しいデータのS番目の行の更新タイムスタンプの最小値よりも小さく、削除データのR番目の行、古いデータのR番目の行および新しいデータのS番目の行は同じRowKeyを持ち、1 ≦ R ≦ M、且つ1 ≦ S ≦ Pである、ステップと、
フルデータ更新ファイルをデータテーブルにインポートするステップと、
フルデータ削除ファイルをデータテーブルにインポートするステップと
を実行するように構成される。
本発明の実施形態の第3の態様を参照すると、本発明の実施形態の第3の態様の第1の実施方法では、プロセッサは最初にフルデータ削除ファイルを生成し、次いで、フルデータ更新ファイルを生成し、且つ、フルデータ更新ファイルが生成される時点を各新しい列修飾子の更新タイムスタンプとして設定するとともに、フルデータ削除ファイルが生成される時点を削除データの各行の削除タイムスタンプとして設定する。
本発明の実施形態の第3の態様または第3の態様の第1の実施方法を参照すると、本発明の実施形態の第2の態様の第2の実施方法では、プロセッサは最初にフルデータ更新ファイルをデータテーブルにインポートし、次いで、フルデータ削除ファイルをデータテーブルにインポートする。
本発明の実施形態の第3の態様、第3の態様の第1の実施方法または第2の実施方法を参照すると、本発明の実施形態の第3の態様の第3の実施方法では、プロセッサは、
フルデータ更新ファイルの保存パスをフルデータ更新命令に対応するデータテーブルのディレクトリに変更するようにさらに構成される。
本発明の実施形態の第3の態様、第3の態様の第1の実施方法、第2の実施方法または第3の実施方法を参照すると、本発明の実施形態の第3の態様の第4の実施方法では、プロセッサは、
フルデータ削除ファイルの保存パスをフルデータ更新命令に対応するデータテーブルのディレクトリに変更するようにさらに構成される。
本発明の実施形態の第4の態様は、KeyValueデータベースのデータテーブルを更新するための方法を提供し、その方法は、
フルデータ更新命令を受信するステップと、
フルデータ更新命令に従って、インポートされるべきデータを取得し、インポートされるべきデータに従って、フルデータ更新ファイルを生成するステップであって、フルデータ更新ファイルはP行の新しいデータを含み、新しいデータの各行は、1つの行キーとQ個の新しい列修飾子とを含み、各新しい列修飾子のデータ型はプット型であり、更新タイムスタンプが各新しい列修飾子に対して設定される、ステップと、
フルデータ更新命令に対応するデータテーブルにおけるM行の古いデータを取得するステップであって、古いデータの各行は、1つの行キーとN個の古い列修飾子とを含み、オリジナル・タイムスタンプが各古い列修飾子に対して設定される、ステップと、
M行の古いデータに従って、フルデータ削除ファイルを生成するステップであって、フルデータ削除ファイルはM行の削除データを含み、削除データの各行は古いデータの各行と一対一で対応し、削除データの各行のデータ型は削除型であり、削除タイムスタンプが削除データの各行に対して設定され、削除データのR番目の行の削除タイムスタンプは古いデータのR番目の行のオリジナル・タイムスタンプの最大値よりも大きく、削除データのR番目の行の削除タイムスタンプは新しいデータのS番目の行の更新タイムスタンプの最小値よりも小さく、削除データのR番目の行、古いデータのR番目の行および新しいデータのS番目の行は同じRowKeyを持ち、1 ≦ R ≦ M、且つ1 ≦ S ≦ Pである、ステップと、
フルデータ更新ファイルとフルデータ削除ファイルとを結合してテーブルデータ更新ファイルにするステップと、
テーブルデータ更新ファイルをデータテーブルにインポートするステップと
を含む。
本発明の実施形態の第4の態様を参照すると、本発明の実施形態の第4の態様の第1の実施方法では、テーブルデータ更新ファイルをデータテーブルにインポートするステップは、
テーブルデータ更新ファイルの保存パスをフルデータ更新命令に対応するデータテーブルのディレクトリに変更するステップ
を含む。
本発明の実施形態の第5の態様は、テーブルデータを更新するための装置を提供し、その装置は、
フルデータ更新命令を受信するように構成された命令受信モジュールと、
フルデータ更新命令に従って、インポートされるべきデータを取得し、インポートされるべきデータに従って、フルデータ更新ファイルを生成するように構成されたファイル生成モジュールであって、フルデータ更新ファイルはP行の新しいデータを含み、新しいデータの各行は、1つの行キーとQ個の新しい列修飾子とを含み、各新しい列修飾子のデータ型はプット型であり、更新タイムスタンプが各新しい列修飾子に対して設定される、ファイル生成モジュールと、
フルデータ更新命令に対応するデータテーブルにおけるM行の古いデータを取得するように構成されたデータ取得モジュールであって、古いデータの各行は、1つの行キーとN個の古い列修飾子とを含み、オリジナル・タイムスタンプが各古い列修飾子に対して設定される、データ取得モジュールと、
フルデータ更新ファイルとフルデータ削除ファイルとを結合してテーブルデータ更新ファイルにするように構成されたファイル結合モジュールと、
テーブルデータ更新ファイルをデータテーブルにインポートするように構成されたファイル・インポート・モジュールとを含み、
ファイル生成モジュールは、M行の古いデータに従って、フルデータ削除ファイルを生成するようにさらに構成され、フルデータ削除ファイルはM行の削除データを含み、削除データの各行は古いデータの各行と一対一で対応し、削除データの各行のデータ型はDelete型であり、削除タイムスタンプが削除データの各行に対して設定され、削除データのR番目の行の削除タイムスタンプは古いデータのR番目の行のオリジナル・タイムスタンプの最大値よりも大きく、削除データのR番目の行の削除タイムスタンプは新しいデータのS番目の行の更新タイムスタンプの最小値よりも小さく、削除データのR番目の行、古いデータのR番目の行および新しいデータのS番目の行は同じRowKeyを持ち、1 ≦ R ≦ M、且つ1 ≦ S ≦ Pである。
本発明の実施形態の第5の態様を参照すると、本発明の実施形態の第5の態様の第1の実施方法では、ファイル・インポート・モジュールは、具体的には、
テーブルデータ更新ファイルの保存パスをフルデータ更新命令に対応するデータテーブルのディレクトリに変更するように構成される。
本発明の実施形態の第6の態様は、入力装置、出力装置、プロセッサおよびメモリを含む、テーブルデータを更新するための装置を提供し、メモリに格納された操作命令を呼び出すことによって、プロセッサは、
フルデータ更新命令を受信するステップと、
フルデータ更新命令に従って、インポートされるべきデータを取得し、インポートされるべきデータに従って、フルデータ更新ファイルを生成するステップであって、フルデータ更新ファイルはP行の新しいデータを含み、新しいデータの各行は、1つの行キーとQ個の新しい列修飾子とを含み、各新しい列修飾子のデータ型はプット型であり、更新タイムスタンプが各新しい列修飾子に対して設定される、ステップと、
フルデータ更新命令に対応するデータテーブルにおけるM行の古いデータを取得するステップであって、古いデータの各行は、1つの行キーとN個の古い列修飾子とを含み、オリジナル・タイムスタンプが各古い列修飾子に対して設定される、ステップと、
M行の古いデータに従って、フルデータ削除ファイルを生成するステップであって、フルデータ削除ファイルはM行の削除データを含み、削除データの各行は古いデータの各行と一対一で対応し、削除データの各行のデータ型はDelete型であり、削除タイムスタンプが削除データの各行に対して設定され、削除データのR番目の行の削除タイムスタンプは古いデータのR番目の行のオリジナル・タイムスタンプの最大値よりも大きく、削除データのR番目の行の削除タイムスタンプは新しいデータのS番目の行の更新タイムスタンプの最小値よりも小さく、削除データのR番目の行、古いデータのR番目の行および新しいデータのS番目の行は同じRowKeyを持ち、1 ≦ R ≦ M、且つ1 ≦ S ≦ Pである、ステップと、
フルデータ更新ファイルとフルデータ削除ファイルとを結合してテーブルデータ更新ファイルにするステップと、
テーブルデータ更新ファイルをデータテーブルにインポートするステップと
を実行するように構成される。
本発明の実施形態の第6の態様を参照すると、本発明の実施形態の第6の態様の第1の実施方法では、プロセッサは、
テーブルデータ更新ファイルの保存パスをフルデータ更新命令に対応するデータテーブルのディレクトリに変更するようにさらに構成される。
本発明の実施形態は、KeyValueデータベースのデータテーブルを更新するための方法を提供し、その方法は、フルデータ更新命令を受信するステップと、フルデータ更新命令に従って、インポートされるべきデータを取得し、インポートされるべきデータに従って、フルデータ更新ファイルを生成するステップと、フルデータ更新命令に対応するデータテーブルにおけるM行の古いデータを取得するステップと、M行の古いデータに従って、フルデータ削除ファイルを生成するステップと、フルデータ更新ファイルをデータテーブルにインポートするステップと、フルデータ削除ファイルをデータテーブルにインポートするステップとを含む。このような方法を使用することによって、KeyValueデータベースのデータテーブル内の全てのデータのフル更新が実施される。加えて、従来技術ではデータテーブル内のKeyValueデータをひとつずつ更新することと比較して、フルデータ更新ファイルおよびフルデータ削除ファイルは、KeyValueデータベースにひとつずつインポートされないため、本発明の実施形態で提供される方法によると、更新速度はより速く、且つ、原子性はより良い。
図1は、本発明の実施形態に係るKeyValueデータベースのデータテーブルを更新するための方法のフローチャートである。 図2は、本発明の別の実施形態に係るKeyValueデータベースのデータテーブルを更新するための方法のフローチャートである。 図3は、本発明の実施形態に係るテーブルデータを更新するための装置の構成図である。 図4は、本発明の別の実施形態に係るテーブルデータを更新するための装置の構成図である。 図5は、本発明の別の実施形態に係るKeyValueデータベースのデータテーブルを更新するための方法のフローチャートである。 図6は、本発明の別の実施形態に係るテーブルデータを更新するための装置の構成図である。
本発明の実施形態はKeyValueデータベースのデータテーブルを更新するための方法を提供し、この方法はKeyValueデータベースにおけるテーブルデータのフル更新を実施することができる。本発明は、テーブルデータを更新するための関連する装置をさらに提供する。以下では、方法と装置とを別々に説明する。
図1を参照すると、本発明の実施形態で提供される、KeyValueデータベースのデータテーブルを更新するための方法の基本的なプロセスは、主に以下を含む:
101.フルデータ更新命令を受信する。
ユーザは、クライアントを使用することによって、フルデータ更新命令を配信し、ここで、フルデータ更新命令は、KeyValueデータベースにおける指定されたデータテーブルのテーブルデータを完全に更新するように命令するために使用される。テーブルデータを更新するための装置は、フルデータ更新命令を受信する。
102.フルデータ更新命令に従って、インポートされるべきデータを取得し、インポートされるべきデータに従って、フルデータ更新ファイルを生成する。
テーブルデータを更新するための装置は、フルデータ更新命令に従って、インポートされるべきデータを取得し、インポートされるべきデータに従って、フルデータ更新ファイルを生成する。好ましくは、フルデータ更新命令はデータテーブルのテーブル名を含んでもよく、且つ、インポートされるべきデータの保存パスおよび生成されたフルデータ更新ファイルの保存パスを指定する。テーブルデータを更新するための装置は、インポートされるべきデータの、フルデータ更新命令で指定された保存パスから、インポートされるべきデータを取得し、インポートされるべきデータに従って、フルデータ更新ファイルを生成し、次いで、フルデータ更新ファイルの、フルデータ更新命令で指定された保存パスに、フルデータ更新ファイルを保存する。
フルデータ更新ファイルはP行の新しいデータを含み、ここで、新しいデータの各行は、1つの行キーと、Q個の新しい列修飾子とを含み、各新しい列修飾子のデータ型は、プット型であり、更新タイムスタンプが各新しい列修飾子に対して設定される。
103.フルデータ更新命令に対応するデータテーブル内のM行の古いデータを取得し、M行の古いデータに従って、フルデータ削除ファイルを生成する。
テーブルデータを更新するための装置は、フルデータ更新命令に対応するデータテーブル内のM行の古いデータを取得し、ここで、古いデータの各行は、1つの行キーとN個の古い列修飾子とを含み、オリジナル・タイムスタンプが各古い列修飾子に対して設定される。テーブルデータを更新するための装置は、M行の古いデータに従って、フルデータ削除ファイルを生成する。
好ましくは、フルデータ更新命令はデータテーブルのテーブル名を含んでもよく、且つ、生成されたフルデータ削除ファイルの保存パスを指定する。テーブルデータを更新するための装置は、データテーブルのテーブル名に従ってデータテーブルを決定し、次いで、フルデータ削除ファイルの、フルデータ更新命令で指定された保存パスに、データテーブルを保存する。
フルデータ削除ファイルはM行の削除データを含み、ここで、削除データの各行はデータテーブル内の古いデータの各行と一対一で対応し、削除データの各行のデータ型はDelete型であり、削除データの各行は削除データの行と同じRowKeyを持つ古いデータを削除するために使用される。削除タイムスタンプが削除データの各行に対して設定される。
ステップ103はステップ102の前に実行されてもよく、このことは本実施形態では限定されない。しかしながら、ステップ103とステップ102との間の順番に関わらず、削除データのR番目の行の削除タイムスタンプは古いデータのR番目の行のオリジナル・タイムスタンプの最大値よりも大きく、削除データのR番目の行の削除タイムスタンプは新しいデータのS番目の行の更新タイムスタンプの最小値よりも小さいことが保証される必要がある。削除データのR番目の行、古いデータのR番目の行および新しいデータのS番目の行は同じRowKeyを持ち、1 ≦ R ≦ M、且つ1 ≦ S ≦ Pである。
104. フルデータ更新ファイルをデータテーブルにインポートする。
テーブルデータを更新するための装置は、フルデータ更新ファイルを、フルデータ更新命令に対応するデータテーブルにインポートし、ここで、フルデータ更新ファイルはデータテーブルに一度にインポートされ、このことは、データインポートの原子性を保証することができる。
フルデータ更新ファイルにおける新しいデータのS番目の行の更新タイムスタンプの最小値は、新しいデータのS番目の行と同じRowKeyを持つ古いデータのR番目の行のオリジナル・タイムスタンプの最大値よりも大きく、従って、フルデータ更新ファイルがデータテーブルにインポートされた後、古いデータのR番目の行が存在する場合、新しいデータのS番目の行は古いデータのR番目の行を上書きすることができ、ユーザは新しいデータのS番目の行を読み出すことができるが、古いデータのR番目の行を読み出すことはできない。
105. フルデータ削除ファイルをデータテーブルにインポートする。
テーブルデータを更新するための装置は、フルデータ削除ファイルを、フルデータ更新命令に対応するデータテーブルにインポートし、ここで、フルデータ削除ファイルはデータテーブルに一度にインポートされ、このことは、データ削除の原子性を保証することができる。
削除データのR番目の行の削除タイムスタンプは削除データのR番目の行と同じRowKeyを持つ古いデータのR番目の行のオリジナル・タイムスタンプの最大値よりも大きく、従って、削除データのR番目の行は、削除データのR番目の行と同じRowKeyを持つ古いデータのR番目の行を削除することができる。加えて、フルデータ削除ファイルは、データテーブル内のM行の古いデータのRowKeyと一対一で対応するM行の削除データを含み、従って、フルデータ削除ファイルがデータテーブルにインポートされた後、データテーブル内の古いデータのM行全てが削除され、ユーザはデータテーブルから古いデータを読み出すことはできない。削除データのR番目の行の削除タイムスタンプは削除データのR番目の行と同じRowKeyを持つ新しいデータのS番目の行の更新タイムスタンプの最小値よりも小さく、従って、新しいデータのS番目の行が存在する場合、新しいデータのS番目の行は依然として有効であり、すなわち、フルデータ削除ファイルがデータテーブルにインポートされた後、フルデータ更新ファイルは依然としてユーザによって通常通り読み出されることができる。
ステップ105はステップ104の前に実行されてもよく、このことは本実施形態では限定されない。
本実施形態は、KeyValueデータベースのデータテーブルを更新するための方法を提供し、その方法は、フルデータ更新命令を受信するステップと、フルデータ更新命令に従って、インポートされるべきデータを取得し、インポートされるべきデータに従って、フルデータ更新ファイルを生成するステップと、フルデータ更新命令に対応するデータテーブルにおけるM行の古いデータを取得するステップと、M行の古いデータに従って、フルデータ削除ファイルを生成するステップと、フルデータ更新ファイルをデータテーブルにインポートするステップと、フルデータ削除ファイルをデータテーブルにインポートするステップとを含む。このような方法を使用することによって、KeyValueデータベースのデータテーブル内の全てのデータのフル更新が実施される。加えて、従来技術ではデータテーブル内のKeyValueデータをひとつずつ更新することと比較して、フルデータ更新ファイルおよびフルデータ削除ファイルは、KeyValueデータベースにひとつずつインポートされないため、本実施形態で提供される方法によると、更新速度はより速く、且つ、原子性はより良い。
図1で示される実施形態では、ステップ102と103との間の順番は限定されず、且つステップ104と105との間の順番は限定されない。しかしながら、実際の適用では、これらのステップの順番を変更することによって、有益な効果がさらにもたらされることができる。図2を参照すると、本発明の実施形態で提供されるKeyValueデータベースのデータテーブルを更新するための別の方法のプロセスは、以下を含む:
201. フルデータ更新命令を受信する。
ユーザは、クライアントを使用することによって、フルデータ更新命令を配信し、ここで、フルデータ更新命令は、KeyValueデータベースにおけるデータテーブルのテーブルデータを完全に更新するように命令するために使用される。テーブルデータを更新するための装置は、フルデータ更新命令を受信する。
具体的には、フルデータ更新命令はKeyValueデータベースにおけるデータテーブルの古いデータを削除するとともに新しいデータをデータテーブルにインポートするように命令するために使用され、従って、好ましくは、フルデータ更新命令は削除命令と更新命令とを含んでもよい。削除命令はKeyValueデータベースにおけるデータテーブルの古いデータを削除するように命令するために使用され、更新命令は新しいデータをデータテーブルにインポートするように命令するために使用される。
202. フルデータ更新命令に対応するデータテーブルにおけるM行の古いデータを取得し、M行の古いデータに従って、フルデータ削除ファイルを生成する。
テーブルデータを更新するための装置は、フルデータ更新命令に従って、フルデータ更新命令に対応するデータテーブル内のM行の古いデータを取得し、ここで、古いデータの各行は、1つの行キーとN個の古い列修飾子とを含み、オリジナル・タイムスタンプが各古い列修飾子に対して設定される。テーブルデータを更新するための装置は、M行の古いデータに従って、フルデータ削除ファイルを生成する。
好ましくは、フルデータ更新命令はデータテーブルのテーブル名を含んでもよく、且つ、生成されたフルデータ削除ファイルの保存パスを指定する。テーブルデータを更新するための装置は、データテーブルのテーブル名に従ってデータテーブルを決定し、次いで、フルデータ削除ファイルの、フルデータ更新命令で指定された保存パスに、データテーブルを保存する。
フルデータ削除ファイルはM行の削除データを含み、ここで、削除データの各行はデータテーブル内の古いデータの各行と一対一で対応し、削除データの各行のデータ型はDelete型であり、削除データの各行は削除データの行と同じRowKeyを持つ古いデータを削除するために使用される。削除タイムスタンプが削除データの各行に対して設定され、削除データの各行の削除タイムスタンプの時点は、フルデータ削除ファイルが生成される時点であり、ここで、そのタイムスタンプはオリジナル・タイムスタンプの最大値よりも大きい。
フルデータ更新命令が削除命令と更新命令とを含む場合、テーブルデータを更新するための装置は、削除命令に従って、このステップにおける操作を実行する。
203. フルデータ更新命令に従って、インポートされるべきデータを取得し、インポートされるべきデータに従って、フルデータ更新ファイルを生成する。
フルデータ削除ファイルを生成した後、テーブルデータを更新するための装置は、フルデータ更新命令に従って、インポートされるべきデータを取得し、インポートされるべきデータに従って、フルデータ更新ファイルを生成する。好ましくは、フルデータ更新命令はデータテーブルのテーブル名を含んでもよく、且つ、インポートされるべきデータの保存パスおよび生成されたフルデータ更新ファイルの保存パスを指定する。テーブルデータを更新するための装置は、インポートされるべきデータの、フルデータ更新命令で指定された保存パスから、インポートされるべきデータを取得し、インポートされるべきデータに従って、フルデータ更新ファイルを生成し、次いで、フルデータ更新ファイルの、フルデータ更新命令で指定された保存パスに、フルデータ更新ファイルを保存する。
フルデータ更新ファイルはP行の新しいデータを含み、ここで、新しいデータの各行は、1つの行キーと、Q個の新しい列修飾子とを含み、各新しい列修飾子のデータ型は、プット型であり、更新タイムスタンプが各新しい列修飾子に対して設定される。加えて、各新しい列修飾子の更新タイムスタンプの時点は、フルデータ更新ファイルが生成される時点であり、更新タイムスタンプはオリジナル・タイムスタンプの最大値よりも大きい。
フルデータ更新命令が削除命令と更新命令とを含む場合、テーブルデータを更新するための装置は、更新命令に従って、このステップにおける操作を実行する。
204. フルデータ更新ファイルをデータテーブルにインポートする。
テーブルデータを更新するための装置は、フルデータ更新ファイルを、フルデータ更新命令に対応するデータテーブルにインポートし、ここで、フルデータ更新ファイルはデータテーブルに一度にインポートされ、このことは、データインポートの原子性を保証することができる。
好ましくは、テーブルデータを更新するための装置は、フルデータ更新ファイルのデータテーブルへのインポートを実施するために、フルデータ更新ファイルの保存パスをデータテーブルのディレクトリに変更してもよい。保存パスを変更する操作の時間消費は、秒レベルでしかない。
各新しい列修飾子の更新タイムスタンプの時点は、フルデータ更新ファイルが生成される時点であり、更新タイムスタンプはオリジナル・タイムスタンプの最大値よりも大きく、従って、フルデータ更新ファイルがデータテーブルにインポートされた後、新しいデータのS番目の行は古いデータのR番目の行を上書きすることができ、ユーザは新しいデータのS番目の行を読み出すことができるが、古いデータのR番目の行を読み出すことはできない。古いデータのR番目の行および新しいデータのS番目の行は同じRowKeyを持ち、1 ≦ R ≦ M、且つ1 ≦ S ≦ Pである。
205. フルデータ削除ファイルをデータテーブルにインポートする。
テーブルデータを更新するための装置は、フルデータ削除ファイルを、フルデータ更新命令に対応するデータテーブルにインポートし、ここで、フルデータ削除ファイルはデータテーブルに一度にインポートされ、このことは、データ削除の原子性を保証することができる。
好ましくは、テーブルデータを更新するための装置は、フルデータ削除ファイルのデータテーブルへのインポートを実施するために、フルデータ削除ファイルの保存パスをデータテーブルのディレクトリに変更してもよい。保存パスを変更する操作にかかる時間はわずか数秒である。
削除データの各行の削除タイムスタンプの時点は、フルデータ削除ファイルが生成される時点であり、そのタイムスタンプはオリジナル・タイムスタンプの最大値よりも大きく、従って、フルデータ更新ファイルがデータテーブルにインポートされた後、削除データのR番目の行は、削除データのR番目の行と同じRowKeyを持つ古いデータのR番目の行を削除することができる。加えて、フルデータ削除ファイルは、データテーブル内のM行の古いデータのRowKeyと一対一で対応するM行の削除データを含み、従って、フルデータ削除ファイルがデータテーブルにインポートされた後、データテーブル内の古いデータのM行全てが削除され、ユーザはデータテーブルから古いデータを読み出すことはできない。各新しい列修飾子の更新タイムスタンプの時点は、ステップ203で、フルデータ更新ファイルが生成される時点であり、削除データの各行の削除タイムスタンプの時点は、ステップ202で、フルデータ削除ファイルが生成される時点であり、ステップ202はステップ203の前に実行され、従って、各削除タイムスタンプは各更新タイムスタンプよりも小さく、フルデータ削除ファイルはフルデータ更新ファイル内のデータを削除せず、フルデータ更新ファイルは依然としてユーザによって通常通り読み出されることができる。
ステップ204と205との間の順番は、本実施形態では限定されない。しかしながら、ステップ205が最初に実行される場合、フルデータ削除ファイルがデータテーブルにインポートされた後で且つフルデータ更新ファイルがデータテーブルにインポートされる前、データテーブル内にユーザによって読み出されることができるデータはなく、KeyValueデータベースによってユーザのために提供されるサービスは一時的に中断された状態にある。従って、好ましくは、ステップ204が最初に実行され、次いで、ステップ205が実行され、このようにして、KeyValueデータベースのデータテーブルが更新されているとき、ユーザがデータテーブル内のデータを常に読み出すことができ、サービスが中断されない、ということが保証されることができる。
好ましくは、本発明の本実施形態におけるKeyValueデータベースは、基礎となるデータストレージの媒体として、分散ファイルシステムを使用してもよい。分散ファイルシステムはファイル管理システムであり、システム内の物理的な記憶リソースは必ずしもローカルノードに接続されてはいないが、コンピュータネットワークを使用することによって複数のノードに接続される。分散ファイルシステムでは、大きなデータブロックは複数の小さなデータブロックに分割されるとともに、複数の小さなデータブロックは複数のノード上に格納され、その結果、分散ファイルシステムは高い耐障害性と高いスループットを有する。Hadoop分散ファイルシステム(HDFS, Hadoop Distributed File System)等を含む多くの共有分散ファイルシステムが存在し、本発明の本実施形態では分散ファイルシステムは限定されず、HDFSは例として使用されるのみである。フルデータ更新ファイルとフルデータ削除ファイルとを生成した後、テーブルデータを更新するための装置は、フルデータ更新ファイルとフルデータ削除ファイルとをHDFSにおけるKeyValueデータベースのディレクトリ以外の場所に保存する。ステップ204では、フルデータ更新ファイルの保存パスはHDFSにおけるKeyValueデータベース内のデータテーブルのディレクトリに変更されるとともに、ステップ205では、フルデータ削除ファイルの保存パスはHDFSにおけるKeyValueデータベース内のデータテーブルのディレクトリに変更される。
本実施形態は、KeyValueデータベースのデータテーブルを更新するための方法を提供し、その方法は、フルデータ更新命令を受信するステップと、フルデータ更新命令に従って、インポートされるべきデータを取得し、インポートされるべきデータに従って、フルデータ更新ファイルを生成するステップと、フルデータ更新命令に対応するデータテーブルにおけるM行の古いデータを取得するステップと、M行の古いデータに従って、フルデータ削除ファイルを生成するステップと、フルデータ更新ファイルをデータテーブルにインポートするステップと、フルデータ削除ファイルをデータテーブルにインポートするステップとを含む。このような方法を使用することによって、KeyValueデータベースのデータテーブル内の全てのデータの更新が実施される。加えて、従来技術ではデータテーブル内のKeyValueデータをひとつずつ更新することと比較して、フルデータ更新ファイルおよびフルデータ削除ファイルは、KeyValueデータベースにひとつずつインポートされず、且つインポートにかかる時間はわずか数秒であるため、本発明の本実施形態で提供される方法によると、原子性はより良く、且つ、更新速度はより速い。さらに、本発明の本実施形態における方法によると、フルデータ更新ファイルが最初にインポートされ、次いで、フルデータ削除ファイルがインポートされ、従って、ターゲットテーブルにインポートされている新しいデータがないと同時に古いデータが既に削除されている、というケースが発生しない。従って、データ読み出しサービスは中断されず、ユーザ体験がより良い。
前述の実施形態の理解を容易にするために、以下では、説明のための例として、前述の実施形態の具体的な適用シナリオを使用する。
KeyValueデータベースは、基礎となるデータストレージの媒体として、HDFSを使用する。ユーザは、クライアントを使用することによって、フルデータ更新命令を配信し、データテーブルTable 1におけるデータを更新するように命令する。
データテーブルTable 1の形態はTable 1に示される。Table 1はデータテーブルTable 1の論理的構造のみを示し、ここで、データテーブルTable 1の基礎となるファイルはKeyValueの形態であり、各行の各修飾子は、1つのKeyValueに対応しており、各KeyValueはRowKey値、データ型およびオリジナル・タイムスタンプを含むとともに他の情報をさらに含んでもよい。データテーブルTable 1は100行の古いデータを含み、且つ、100行の古いデータでは、古いデータの各行は1つのRowKeyと3つの列修飾子(修飾子1、修飾子2および修飾子3)とを含むとともに、オリジナル・タイムスタンプT0が各列修飾子に対して設定される。各列修飾子のデータ型はPutである。
時点T1で、テーブルデータを更新するための装置は、フルデータ更新命令に従って、Table 1内の100行の古いデータを取得する。テーブルデータを更新するための装置は、100行の古いデータに従って、フルデータ削除ファイルを生成する。フルデータ削除ファイルはデータテーブルTable 1内の100行の古いデータに一対一で対応する、100行の削除データを含み、ここで、100行の削除データは100行の古いデータのRowKeyに一対一で対応するとともに、100行の削除データは100行の古いデータを削除するために使用される。
フルデータ削除ファイルの100行の削除データの形態がTable 2(a)に示されることができる。Table 2(a)はフルデータ削除ファイルの論理的構造のみを示し、ここで、フルデータ削除ファイルの基礎となるファイルはKeyValueの形態であり、各行は、1つのKeyValueに対応しており、各KeyValueはRowKey値、データ型および削除タイムスタンプを含むとともに他の情報をさらに含んでもよい。削除データの各行のデータ型はDeleteであるとともに、削除タイムスタンプが、削除データの各行に対して設定され、且つ、削除データの各行の削除タイムスタンプの時点は、フルデータ削除ファイルが生成される時点T1であり、ここで、T1はT0よりも大きい。
特に、フルデータ削除ファイルの100行の削除データの形態がまたTable 2(b)に示されることができる。Table 2(b)はフルデータ削除ファイルの論理的構造のみを示し、ここで、フルデータ削除ファイルの基礎となるファイルはKeyValueの形態であり、各行の各修飾子は、1つのKeyValueに対応しており、各KeyValueはRowKey値、データ型および削除タイムスタンプを含むとともに他の情報をさらに含んでもよい。削除データの各行は、Table 1における3つの修飾子を有し、各修飾子のデータ型はDeleteであり、削除タイムスタンプが、各修飾子に対して設定され、且つ、各修飾子の削除タイムスタンプの時点は、フルデータ削除ファイルが生成される時点T1であり、ここで、T1はT0よりも大きい。本例では、図2(a)で示されるフルデータ削除ファイルのみが説明のための例として使用される。
時点T2で、テーブルデータを更新するための装置は、フルデータ更新命令に従って、インポートされるべきデータを取得し、インポートされるべきデータに従って、フルデータ更新ファイルを生成する。Table 3を参照すると、Table 3はフルデータ更新ファイルの論理的構造のみを示し、ここで、フルデータ更新ファイルの基礎となるファイルはKeyValueの形態であり、各行の各修飾子は、1つのKeyValueに対応しており、各KeyValueはRowKey値、データ型および更新タイムスタンプを含むとともに他の情報をさらに含んでもよい。フルデータ更新ファイルは200行の新しいデータを含み、新しいデータの各行は1つの行キーと3つの新しい列修飾子(修飾子1、修飾子2および修飾子4)とを含み、ここで、各新しい列修飾子のデータ型はプット型であり、更新タイムスタンプが、各新しい列修飾子に対して設定され、且つ、各新しい列修飾子の更新タイムスタンプの時点は、フルデータ更新ファイルが生成される時点T2であり、ここで、T2はT1よりも大きい。
時点T3で、テーブルデータを更新するための装置は、フルデータ更新ファイルのデータテーブルへのインポートを実施するために、フルデータ更新ファイルの保存パスをデータテーブルTable 1のディレクトリに変更する。
時点T4で、テーブルデータを更新するための装置は、フルデータ削除ファイルのデータテーブルへのインポートを実施するために、フルデータ削除ファイルの保存パスをデータテーブルTable 1のディレクトリに変更する。このようにして、フルデータ更新ファイルのデータは有効であるが、データテーブル内の古いデータの全てが削除される。T4はT3よりも大きい。
本発明の実施形態は、テーブルデータを更新するための関連する装置をさらに提供する。図3を参照すると、装置の基本構造は、主に以下を含む:
受信モジュール301はフルデータ更新命令を受信するように構成される。
ユーザは、クライアントを使用することによって、フルデータ更新命令を配信し、ここで、フルデータ更新命令は、KeyValueデータベースにおけるデータテーブルのテーブルデータを完全に更新するように命令するために使用される。受信モジュール301は、フルデータ更新命令を受信する。
ファイル生成モジュール302は、フルデータ更新命令に従って、インポートされるべきデータを取得し、インポートされるべきデータに従って、フルデータ更新ファイルを生成するように構成される。
ファイル生成モジュール302は、フルデータ更新命令に従って、インポートされるべきデータを取得し、インポートされるべきデータに従って、フルデータ更新ファイルを生成する。好ましくは、フルデータ更新命令はデータテーブルのテーブル名を含んでもよく、且つ、インポートされるべきデータの保存パスおよび生成されたフルデータ更新ファイルの保存パスを指定する。ファイル生成モジュール302は、インポートされるべきデータの、フルデータ更新命令で指定された保存パスから、インポートされるべきデータを取得し、インポートされるべきデータに従って、フルデータ更新ファイルを生成し、次いで、フルデータ更新ファイルの、フルデータ更新命令で指定された保存パスに、フルデータ更新ファイルを保存する。
フルデータ更新ファイルはP行の新しいデータを含み、ここで、新しいデータの各行は、1つの行キーと、Q個の新しい列修飾子とを含み、各新しい列修飾子のデータ型は、プット型であり、更新タイムスタンプが各新しい列修飾子に対して設定される。
取得モジュール303は、フルデータ更新命令に対応するデータテーブルにおけるM行の古いデータを取得するように構成される。
古いデータの各行は、1つのRowKeyとN個の古い列修飾子とを含み、オリジナル・タイムスタンプが各列修飾子に対して設定される。
ファイル生成モジュール302は、M行の古いデータに従って、フルデータ削除ファイルを生成するようにさらに構成される。
好ましくは、フルデータ更新命令はデータテーブルのテーブル名を含んでもよく、且つ、生成されたフルデータ削除ファイルの保存パスを指定する。ファイル生成モジュール302は、データテーブルのテーブル名に従ってデータテーブルを決定し、次いで、フルデータ削除ファイルの、フルデータ更新命令で指定された保存パスに、データテーブルを保存する。
フルデータ削除ファイルはM行の削除データを含み、ここで、削除データの各行はデータテーブル内の古いデータの各行と一対一で対応し、削除データの各行のデータ型はDelete型であり、削除データの各行は削除データの行と同じRowKeyを持つ古いデータを削除するために使用される。削除タイムスタンプが削除データの各行に対して設定される。
削除データのR番目の行の削除タイムスタンプは古いデータのR番目の行のオリジナル・タイムスタンプの最大値よりも大きく、削除データのR番目の行の削除タイムスタンプは新しいデータのS番目の行の更新タイムスタンプの最小値よりも小さい。削除データのR番目の行、古いデータのR番目の行および新しいデータのS番目の行は同じRowKeyを持ち、1 ≦ R ≦ M、且つ1 ≦ S ≦ Pである。
インポートモジュール304は、フルデータ更新ファイルをデータテーブルにインポートするとともにフルデータ削除ファイルをデータテーブルにインポートするように構成される。
インポートモジュール304は、フルデータ更新ファイルを、フルデータ更新命令に対応するデータテーブルにインポートし、ここで、フルデータ更新ファイルはデータテーブルに一度にインポートされ、このことは、データインポートの原子性を保証することができる。
フルデータ更新ファイルにおける新しいデータのS番目の行の更新タイムスタンプの最小値は、新しいデータのS番目の行と同じRowKeyを持つ古いデータのR番目の行のオリジナル・タイムスタンプの最大値よりも大きく、従って、フルデータ更新ファイルがデータテーブルにインポートされた後、古いデータのR番目の行が存在する場合、新しいデータのS番目の行は古いデータのR番目の行を上書きすることができ、ユーザは新しいデータのS番目の行を読み出すことができるが、古いデータのR番目の行を読み出すことはできない。
インポートモジュール304は、フルデータ削除ファイルを、フルデータ更新命令に対応するデータテーブルにインポートし、ここで、フルデータ削除ファイルはデータテーブルに一度にインポートされ、このことは、データ削除の原子性を保証することができる。
削除データのR番目の行の削除タイムスタンプは削除データのR番目の行と同じRowKeyを持つ古いデータのR番目の行のオリジナル・タイムスタンプの最大値よりも大きく、従って、削除データのR番目の行は、削除データのR番目の行と同じRowKeyを持つ古いデータのR番目の行を削除することができる。加えて、フルデータ削除ファイルは、データテーブル内のM行の古いデータのRowKeyと一対一で対応するM行の削除データを含み、従って、フルデータ削除ファイルがデータテーブルにインポートされた後、データテーブル内の古いデータのM行全てが削除され、ユーザはデータテーブルから古いデータを読み出すことはできない。削除データのR番目の行の削除タイムスタンプは削除データのR番目の行と同じRowKeyを持つ新しいデータのS番目の行の更新タイムスタンプの最小値よりも小さく、従って、新しいデータのS番目の行が存在する場合、新しいデータのS番目の行は依然として有効であり、すなわち、フルデータ削除ファイルがデータテーブルにインポートされた後、フルデータ更新ファイルは依然としてユーザによって通常通り読み出されることができる。
本実施形態は、テーブルデータを更新するための装置を提供し、その装置は、フルデータ更新命令を受信するように構成された受信モジュール301と、フルデータ更新命令に従って、インポートされるべきデータを取得し、インポートされるべきデータに従って、フルデータ更新ファイルを生成するように構成されたファイル生成モジュール302と、フルデータ更新命令に対応するデータテーブルにおけるM行の古いデータを取得するように構成された取得モジュール303と、フルデータ更新ファイルをデータテーブルにインポートするとともにフルデータ削除ファイルをデータテーブルにインポートするように構成されたインポートモジュール304とを含み、ファイル生成モジュール302は、M行の古いデータに従って、フルデータ削除ファイルを生成するようにさらに構成される。本実施形態で提供されるテーブルデータを更新するための装置は、KeyValueデータベースのデータテーブル内の全てのデータの更新を実施することができる。加えて、従来技術ではデータテーブル内のKeyValueデータをひとつずつ更新することと比較して、フルデータ更新ファイルおよびフルデータ削除ファイルは、KeyValueデータベースにひとつずつインポートされないため、本発明の本実施形態で提供されるテーブルデータを更新するための装置によると、更新速度はより速く、且つ、原子性はより良い。
好ましくは、図3で示される実施形態では、ファイル生成モジュール302は最初にフルデータ削除ファイルを生成し、次いで、フルデータ更新ファイルを生成してもよい。このようにして、KeyValueデータベースのデータテーブルが更新されているとき、ユーザがデータテーブル内のデータを常に読み出すことができ、サービスが中断されない、ということが保証されることができる。より好ましくは、ファイル生成モジュール302は、フルデータ更新ファイルが生成される時点を各新しい列修飾子の更新タイムスタンプとして設定するとともに、フルデータ削除ファイルが生成される時点を削除データの各行の削除タイムスタンプとして設定してもよい。好ましくは、図3で示される実施形態では、インポートモジュール304は、最初にフルデータ更新ファイルをデータテーブルにインポートし、次いで、フルデータ削除ファイルをデータテーブルにインポートしてもよい。
好ましくは、図3で示される実施形態では、インポートモジュール304は、具体的には、フルデータ更新ファイルの保存パスをデータテーブルのディレクトリに変更するとともに、フルデータ削除ファイルの保存パスをデータテーブルのディレクトリに変更するように構成される。保存パスを変更する操作にかかる時間はわずか数秒である。より好ましくは、本発明の本実施形態におけるKeyValueデータベースは、基礎となるデータストレージの媒体として、分散ファイルシステムを使用してもよく、インポートモジュール304は、具体的には、フルデータ更新ファイルの保存パスをHDFSにおけるKeyValueデータベースのデータテーブルのディレクトリに変更するとともに、フルデータ削除ファイルの保存パスをHDFSにおけるKeyValueデータベースのデータテーブルのディレクトリに変更するように構成される。
前述の実施形態の理解を容易にするために、以下では、説明のための例として、前述の実施形態の具体的な適用シナリオを使用する。
KeyValueデータベースは、基礎となるデータストレージの媒体として、HDFSを使用する。ユーザは、クライアントを使用することによって、フルデータ更新命令を配信し、データテーブルTable 1におけるデータを更新するように命令する。
データテーブルTable 1の形態はTable 1に示される。データテーブルTable 1は100行の古いデータを含み、且つ、100行の古いデータでは、古いデータの各行は1つのRowKeyと3つの列修飾子(修飾子1、修飾子2および修飾子3)とを含むとともに、オリジナル・タイムスタンプT0が各列修飾子に対して設定される。各列修飾子のデータ型はPutである。
時点T1で、受信モジュール301は、フルデータ更新命令に従って、データテーブルTable 1内の100行の古いデータを取得する。ファイル生成モジュール302は、100行の古いデータに従って、フルデータ削除ファイルを生成する。フルデータ削除ファイルはデータテーブルTable 1内の100行の古いデータに一対一で対応する、100行の削除データを含み、ここで、100行の削除データは100行の古いデータのRowKeyに一対一で対応するとともに、100行の削除データは100行の古いデータを削除するために使用される。
フルデータ削除ファイルの100行の削除データの形態がTable (a)に示されることができる。削除データの各行のデータ型はDeleteであり、削除タイムスタンプが、削除データの各行に対して設定され、且つ、削除データの各行の削除タイムスタンプの時点は、フルデータ削除ファイルが生成される時点T1であり、ここで、T1はT0よりも大きい。
Table 3を参照すると、時点T2で、ファイル生成モジュール302は、フルデータ更新命令に従って、インポートされるべきデータを取得し、インポートされるべきデータに従って、フルデータ更新ファイルを生成する。フルデータ更新ファイルは200行の新しいデータを含み、新しいデータの各行は1つの行キーと3つの新しい列修飾子(修飾子1、修飾子2および修飾子4)とを含み、ここで、各新しい列修飾子のデータ型はプット型であり、更新タイムスタンプが、各新しい列修飾子に対して設定され、且つ、各新しい列修飾子の更新タイムスタンプの時点は、フルデータ更新ファイルが生成される時点T2であり、ここで、T2はT1よりも大きい。
時点T3で、インポートモジュール304は、フルデータ更新ファイルのデータテーブルへのインポートを実施するために、フルデータ更新ファイルの保存パスをデータテーブルのディレクトリに変更する。
時点T4で、インポートモジュール304は、フルデータ削除ファイルのデータテーブルへのインポートを実施するために、フルデータ削除ファイルの保存パスをデータテーブルのディレクトリに変更する。このようにして、フルデータ更新ファイルのデータは有効であるが、データテーブル内の古いデータの全てが削除される。T4はT3よりも大きい。
前述では、本発明の実施形態におけるテーブルデータを更新するための装置を、機能エンティティのユニット化の観点から説明しており、且つ、以下では、本発明の実施形態におけるテーブルデータを更新するための装置を、ハードウェア処理の観点から説明する。図4を参照すると、本発明の実施形態におけるテーブルデータを更新するための装置400の別の実施形態は、入力装置401、出力装置402、プロセッサ403およびメモリ404を含む(テーブルデータを更新するための装置400内には1つ以上のプロセッサ403があってもよく、1つのプロセッサ403があることが、図4における例として使用される)。本発明のいくつかの実施形態では、入力装置401、出力装置402、プロセッサ403およびメモリ404はバスを使用することによって、または別の方法で接続されてもよい。接続のためにバスが使用されることが、図4における例として使用される。
メモリ404に格納された操作命令を呼び出すことによって、プロセッサ403は、
フルデータ更新命令を受信するステップと、
フルデータ更新命令に従って、インポートされるべきデータを取得し、インポートされるべきデータに従って、フルデータ更新ファイルを生成するステップであって、フルデータ更新ファイルはP行の新しいデータを含み、新しいデータの各行は、1つの行キーとQ個の新しい列修飾子とを含み、各新しい列修飾子のデータ型はプット型であり、更新タイムスタンプが各新しい列修飾子に対して設定される、ステップと、
フルデータ更新命令に対応するデータテーブルにおけるM行の古いデータを取得するステップであって、古いデータの各行は、1つの行キーとN個の古い列修飾子とを含み、オリジナル・タイムスタンプが各古い列修飾子に対して設定される、ステップと、
M行の古いデータに従って、フルデータ削除ファイルを生成するステップであって、フルデータ削除ファイルはM行の削除データを含み、削除データの各行は古いデータの各行と一対一で対応し、削除データの各行のデータ型はDelete型であり、削除タイムスタンプが削除データの各行に対して設定され、削除データのR番目の行の削除タイムスタンプは古いデータのR番目の行のオリジナル・タイムスタンプの最大値よりも大きく、削除データのR番目の行の削除タイムスタンプは新しいデータのS番目の行の更新タイムスタンプの最小値よりも小さく、削除データのR番目の行、古いデータのR番目の行および新しいデータのS番目の行は同じRowKeyを持ち、1 ≦ R ≦ M、且つ1 ≦ S ≦ Pである、ステップと、
フルデータ更新ファイルをデータテーブルにインポートするステップと、
フルデータ削除ファイルをデータテーブルにインポートするステップと
を実行するように構成される。
本発明のいくつかの実施形態では、プロセッサ403は最初にフルデータ削除ファイルを生成し、次いで、フルデータ更新ファイルを生成し、且つ、フルデータ更新ファイルが生成される時点を各新しい列修飾子の更新タイムスタンプとして設定するとともに、フルデータ削除ファイルが生成される時点を削除データの各行の削除タイムスタンプとして設定する。
本発明のいくつかの実施形態では、プロセッサ403は最初にフルデータ更新ファイルをデータテーブルにインポートし、次いで、フルデータ削除ファイルをデータテーブルにインポートする。本発明のいくつかの実施形態では、プロセッサ403は、
フルデータ更新ファイルの保存パスをフルデータ更新命令に対応するデータテーブルのディレクトリに変更するステップ
を実行するようにさらに構成される。
本発明のいくつかの実施形態では、プロセッサ403は、
フルデータ削除ファイルの保存パスをフルデータ更新命令に対応するデータテーブルのディレクトリに変更するステップ
を実行するようにさらに構成される。
図5を参照すると、本発明の実施形態は、KeyValueデータベースのデータテーブルを更新するための別の方法をさらに提供し、その方法は、具体的には以下を含む:
501. フルデータ更新命令を受信する。
502. フルデータ更新命令に従って、インポートされるべきデータを取得し、インポートされるべきデータに従って、フルデータ更新ファイルを生成する。
503. フルデータ更新命令に対応するデータテーブルにおけるM行の古いデータを取得し、M行の古いデータに従って、フルデータ削除ファイルを生成する。
ステップ501から503は基本的にステップ101から103と同じであり、詳細はここでは説明されない。
504. フルデータ更新ファイルとフルデータ削除ファイルとを結合してテーブルデータ更新ファイルにする。
フルデータ更新ファイルとフルデータ削除ファイルとを生成した後、テーブルデータを更新するための装置は、フルデータ更新ファイルとフルデータ削除ファイルとを結合してテーブルデータ更新ファイルにする。結合後に得られたテーブルデータ更新ファイルはフルデータ更新ファイルの全てのデータを含むだけでなく、フルデータ削除ファイルの全てのデータも含む。
505. テーブルデータ更新ファイルをデータテーブルにインポートする。
テーブルデータを更新するための装置は、テーブルデータ更新ファイルを、フルデータ更新命令に対応するデータテーブルにインポートする。テーブルデータ更新ファイルはデータテーブルに一度にインポートされるため、データインポートの原子性が保証されることができる。
結合後に得られたテーブルデータ更新ファイルはフルデータ更新ファイルの全てのデータを含み、フルデータ更新ファイルの新しいデータのS番目の行の更新タイムスタンプの最小値は、新しいデータのS番目の行と同じRowKeyを持つ古いデータのR番目の行のオリジナル・タイムスタンプの最大値よりも大きく、従って、テーブルデータ更新ファイルがデータテーブルにインポートされた後、古いデータのR番目の行が存在する場合、新しいデータのS番目の行は古いデータのR番目の行を上書きすることができ、ユーザは新しいデータのS番目の行を読み出すことができるが、古いデータのR番目の行を読み出すことはできない。
結合後に得られたテーブルデータ更新ファイルはフルデータ削除ファイルの全てのデータを含み、削除データのR番目の行の削除タイムスタンプは削除データのR番目の行と同じRowKeyを持つ古いデータのR番目の行のオリジナル・タイムスタンプの最大値よりも大きく、従って、テーブルデータ更新ファイルがデータテーブルにインポートされた後、削除データのR番目の行は、削除データのR番目の行と同じRowKeyを持つ古いデータのR番目の行を削除することができる。加えて、フルデータ削除ファイルは、データテーブル内のM行の古いデータのRowKeyと一対一で対応するM行の削除データを含み、従って、テーブルデータ更新ファイルがデータテーブルにインポートされた後、データテーブル内の古いデータのM行全てが削除され、ユーザはデータテーブルから古いデータを読み出すことはできない。削除データのR番目の行の削除タイムスタンプは削除データのR番目の行と同じRowKeyを持つ新しいデータのS番目の行の更新タイムスタンプの最小値よりも小さく、従って、新しいデータのS番目の行が存在する場合、新しいデータのS番目の行は依然として有効であり、すなわち、テーブルデータ更新ファイルの全てのデータが、依然としてユーザによって通常通り読み出されることができる。
本実施形態は、KeyValueデータベースのデータテーブルを更新するための方法を提供し、その方法は、フルデータ更新命令を受信するステップと、フルデータ更新命令に従って、インポートされるべきデータを取得し、インポートされるべきデータに従って、フルデータ更新ファイルを生成するステップと、フルデータ更新命令に対応するデータテーブルにおけるM行の古いデータを取得するステップと、M行の古いデータに従って、フルデータ削除ファイルを生成するステップと、フルデータ更新ファイルとフルデータ削除ファイルとを結合してテーブルデータ更新ファイルにするステップと、テーブルデータ更新ファイルをデータテーブルにインポートするステップとを含む。このような方法を使用することによって、KeyValueデータベースのデータテーブル内の全てのデータのフル更新が実施される。加えて、従来技術ではデータテーブル内のKeyValueデータをひとつずつ更新することと比較して、フルデータ更新ファイルおよびフルデータ削除ファイルは、KeyValueデータベースにひとつずつインポートされないため、本実施形態で提供される方法によると、更新速度はより速く、且つ、原子性はより良い。
図1に示される実施形態と本実施形態との間の違いは、フルデータ更新ファイルとフルデータ削除ファイルとが最初に結合されてテーブルデータ更新ファイルとなり、次いで、テーブルデータ更新ファイルはデータテーブルにインポートされることにある。このようにして、ファイルは、テーブルデータのフル更新を実施するために、データテーブルにただ一度だけインポートされる必要がある。より好ましくは、本発明の別の実施形態では、テーブルデータを更新するための装置はフルデータ更新ファイルまたはフルデータ削除ファイルを生成しないが、フルデータ更新命令に従って、テーブルデータ更新ファイルを直接生成し、次いで、テーブルデータ更新ファイルをデータテーブルにインポートしてもよい。
好ましくは、テーブルデータを更新するための装置は、テーブルデータ更新ファイルのデータテーブルへのインポートを実施するために、テーブルデータ更新ファイルの保存パスをデータテーブルのディレクトリに変更してもよい。保存パスを変更する操作にかかる時間はわずか数秒である。
本発明の実施形態は、テーブルデータを更新するための関連する装置をさらに提供する。図6を参照すると、装置の基本構造は、主に以下を含む:
命令受信モジュール601は、フルデータ更新命令を受信するように構成される。
ファイル生成モジュール602は、フルデータ更新命令に従って、インポートされるべきデータを取得し、インポートされるべきデータに従って、フルデータ更新ファイルを生成するように構成される。
データ取得モジュール603は、フルデータ更新命令に対応するデータテーブルにおけるM行の古いデータを取得するように構成される。
ファイル生成モジュール602は、M行の古いデータに従って、フルデータ削除ファイルを生成するようにさらに構成される。
モジュール601から603は基本的にモジュール301から303と同じであり、詳細はここでは説明されない。
ファイル結合モジュール604は、フルデータ更新ファイルとフルデータ削除ファイルとを結合してテーブルデータ更新ファイルにするように構成される。
テーブルデータを更新するための装置はフルデータ更新ファイルとフルデータ削除ファイルとを生成した後、ファイル結合モジュール604は、フルデータ更新ファイルとフルデータ削除ファイルとを結合してテーブルデータ更新ファイルにする。結合後に得られたテーブルデータ更新ファイルはフルデータ更新ファイルの全てのデータを含むだけでなく、フルデータ削除ファイルの全てのデータも含む。
ファイル・インポート・モジュール605は、テーブルデータ更新ファイルをデータテーブルにインポートするように構成される。
ファイル・インポート・モジュール605は、テーブルデータ更新ファイルを、フルデータ更新命令に対応するデータテーブルにインポートする。テーブルデータ更新ファイルはデータテーブルに一度にインポートされるため、データインポートの原子性が保証されることができる。
結合後に得られたテーブルデータ更新ファイルはフルデータ更新ファイルの全てのデータを含み、フルデータ更新ファイルの新しいデータのS番目の行の更新タイムスタンプの最小値は、新しいデータのS番目の行と同じRowKeyを持つ古いデータのR番目の行のオリジナル・タイムスタンプの最大値よりも大きく、従って、テーブルデータ更新ファイルがデータテーブルにインポートされた後、古いデータのR番目の行が存在する場合、新しいデータのS番目の行は古いデータのR番目の行を上書きすることができ、ユーザは新しいデータのS番目の行を読み出すことができるが、古いデータのR番目の行を読み出すことはできない。
結合後に得られたテーブルデータ更新ファイルはフルデータ削除ファイルの全てのデータを含み、削除データのR番目の行の削除タイムスタンプは削除データのR番目の行と同じRowKeyを持つ古いデータのR番目の行のオリジナル・タイムスタンプの最大値よりも大きく、従って、テーブルデータ更新ファイルがデータテーブルにインポートされた後、削除データのR番目の行は、削除データのR番目の行と同じRowKeyを持つ古いデータのR番目の行を削除することができる。加えて、フルデータ削除ファイルは、データテーブル内のM行の古いデータのRowKeyと一対一で対応するM行の削除データを含み、従って、テーブルデータ更新ファイルがデータテーブルにインポートされた後、データテーブル内の古いデータのM行全てが削除され、ユーザはデータテーブルから古いデータを読み出すことはできない。削除データのR番目の行の削除タイムスタンプは削除データのR番目の行と同じRowKeyを持つ新しいデータのS番目の行の更新タイムスタンプの最小値よりも小さく、従って、新しいデータのS番目の行が存在する場合、新しいデータのS番目の行は依然として有効であり、すなわち、テーブルデータ更新ファイルの全てのデータが、依然としてユーザによって通常通り読み出されることができる。
本実施形態は、テーブルデータを更新するための装置を提供し、ここで、命令受信モジュール601は、フルデータ更新命令を受信し、ファイル生成モジュール602は、フルデータ更新命令に従って、インポートされるべきデータを取得し、インポートされるべきデータに従って、フルデータ更新ファイルを生成し、データ取得モジュール603は、フルデータ更新命令に対応するデータテーブルにおけるM行の古いデータを取得し、ここで、ファイル生成モジュール602は、M行の古いデータに従って、フルデータ削除ファイルを生成し、ファイル結合モジュール604は、フルデータ更新ファイルとフルデータ削除ファイルとを結合してテーブルデータ更新ファイルにし、ファイル・インポート・モジュール605は、テーブルデータ更新ファイルをデータテーブルにインポートする。このような方法を使用することによって、KeyValueデータベースのデータテーブル内の全てのデータのフル更新が実施される。加えて、従来技術ではデータテーブル内のKeyValueデータをひとつずつ更新することと比較して、フルデータ更新ファイルおよびフルデータ削除ファイルは、KeyValueデータベースにひとつずつインポートされないため、本実施形態で提供される方法によると、更新速度はより速く、且つ、原子性はより良い。
好ましくは、ファイル・インポート・モジュール605は、テーブルデータ更新ファイルのデータテーブルへのインポートを実施するために、テーブルデータ更新ファイルの保存パスをデータテーブルのディレクトリに変更してもよい。保存パスを変更する操作にかかる時間はわずか数秒である。
1に示される実施形態と本実施形態との間の違いは、フルデータ更新ファイルとフルデータ削除ファイルとが最初に結合されてテーブルデータ更新ファイルとなり、次いで、テーブルデータ更新ファイルはデータテーブルにインポートされることにある。このようにして、ファイルは、テーブルデータのフル更新を実施するために、データテーブルにただ一度だけインポートされる必要がある。より好ましくは、本発明の別の実施形態では、ファイル生成モジュール602はフルデータ更新ファイルまたはフルデータ削除ファイルを生成しないが、フルデータ更新命令に従って、テーブルデータ更新ファイルを直接生成し、次いで、ファイル・インポート・モジュール605は、テーブルデータ更新ファイルをデータテーブルにインポートする。
前述では、本発明の実施形態におけるテーブルデータを更新するための装置を、機能エンティティのユニット化の観点から説明しており、且つ、以下では、本発明の実施形態におけるテーブルデータを更新するための装置を、ハードウェア処理の観点から説明する。さらに図4を参照すると、本発明の実施形態におけるテーブルデータを更新するための装置400の別の実施形態は、入力装置401、出力装置402、プロセッサ403およびメモリ404を含む(テーブルデータを更新するための装置400内には1つ以上のプロセッサ403があってもよく、1つのプロセッサ403があることが、図4における例として使用される)。本発明のいくつかの実施形態では、入力装置401、出力装置402、プロセッサ403およびメモリ404はバスを使用することによって、または別の方法で接続されてもよい。接続のためにバスが使用されることが、図4における例として使用される。
メモリ404に格納された操作命令を呼び出すことによって、プロセッサ403は、
フルデータ更新命令を受信するステップと、
フルデータ更新命令に従って、インポートされるべきデータを取得し、インポートされるべきデータに従って、フルデータ更新ファイルを生成するステップであって、フルデータ更新ファイルはP行の新しいデータを含み、新しいデータの各行は、1つの行キーとQ個の新しい列修飾子とを含み、各新しい列修飾子のデータ型はプット型であり、更新タイムスタンプが各新しい列修飾子に対して設定される、ステップと、
フルデータ更新命令に対応するデータテーブルにおけるM行の古いデータを取得するステップであって、古いデータの各行は、1つの行キーとN個の古い列修飾子とを含み、オリジナル・タイムスタンプが各古い列修飾子に対して設定される、ステップと、
M行の古いデータに従って、フルデータ削除ファイルを生成するステップであって、フルデータ削除ファイルはM行の削除データを含み、削除データの各行は古いデータの各行と一対一で対応し、削除データの各行のデータ型はDelete型であり、削除タイムスタンプが削除データの各行に対して設定され、削除データのR番目の行の削除タイムスタンプは古いデータのR番目の行のオリジナル・タイムスタンプの最大値よりも大きく、削除データのR番目の行の削除タイムスタンプは新しいデータのS番目の行の更新タイムスタンプの最小値よりも小さく、削除データのR番目の行、古いデータのR番目の行および新しいデータのS番目の行は同じRowKeyを持ち、1 ≦ R ≦ M、且つ1 ≦ S ≦ Pである、ステップと、
フルデータ更新ファイルとフルデータ削除ファイルとを結合してテーブルデータ更新ファイルにするステップと、
テーブルデータ更新ファイルをデータテーブルにインポートするステップと
を実行するように構成される。
本発明のいくつかの実施形態では、プロセッサ403は、
テーブルデータ更新ファイルの保存パスをフルデータ更新命令に対応するデータテーブルのディレクトリに変更するステップ
を実行するようにさらに構成される。
簡便且つ簡潔な説明のために、前述のシステム、モジュールおよびユニットの詳細な動作プロセスについて、前述の方法の実施形態における対応するプロセスに対して参照が行われてもよいことは当業者によって明確に理解されることができ、詳細はここでは説明されない。
本願で提供されるいくつかの実施形態では、開示されるシステムおよび方法は他の方式で実施されてもよいことが理解されるべきである。例えば、説明されるシステムの実施形態は単に例示的なものである。例えば、ユニットの分割は単に論理的な機能の分割であり、実際の実施では他の分割であってもよい。例えば、複数のユニットまたは構成要素は、別のシステムに結合または統合されてもよく、あるいはいくつかの特徴は無視されるか、または実行されなくてもよい。加えて、表示または議論される相互結合または直接結合または通信接続は、いくつかのインタフェースを使用することによって実施されてもよい。モジュールまたはユニット間の間接結合または通信接続は、電子的、機械的または他の形式で実施されてもよい。
個別の部分として説明されるユニットは物理的に分離していてもしていなくてもよく、且つ、ユニットとして表示される部分は物理的なユニットであってもなくてもよく、1つの位置に配置されてもよく、または複数のネットワークユニット上に分散されてもよい。いくつかのまたは全てのユニットは、実施形態の解決手段の目的を達成するために、実際のニーズに従って選択されてもよい。
加えて、本発明の実施形態における機能的なユニットは1つの処理ユニットに統合されてもよく、または、ユニットの各々は物理的に孤立して存在してもよく、または、2つ以上のユニットは1つのユニットに統合される。前述の集積ユニットはハードウェアの形態で実施されてもよく、またはソフトウェア機能ユニットの形態で実施されてもよい。
集積ユニットがソフトウェア機能ユニットの形態で実施されるとともに、独立した製品として販売または使用される場合、集積ユニットはコンピュータ可読記憶媒体で格納されてもよい。このような理解に基づいて、本発明の技術的解決手段は本質的には、または従来技術に寄与する部分、または技術的解決手段の全てまたは一部は、ソフトウェア製品の形態で実施されてもよい。コンピュータソフトウェア製品は記憶媒体に格納されるとともに、本発明の実施形態で説明される方法のステップの全てまたは一部を実行するために、コンピュータデバイス(パーソナルコンピュータ、サーバまたはネットワークデバイスであってもよい)に命令するためのいくつかの命令を含む。前述の記憶媒体は、USBフラッシュドライブ、リムーバブルハードディスク、読出し専用メモリ(ROM, Read-Only Memory)、ランダム・アクセス・メモリ(RAM, Random Access Memory)、磁気ディスクまたは光ディスクなどの、プログラムコードを格納することができる任意の媒体を含む。
301 受信モジュール
302 ファイル生成モジュール
303 取得モジュール
304 インポートモジュール
400 テーブルデータを更新するための装置
401 入力装置
402 出力装置
403 プロセッサ
404 メモリ
601 命令受信モジュール
602 ファイル生成モジュール
603 データ取得モジュール
604 ファイル結合モジュール
605 ファイル・インポート・モジュール

Claims (21)

  1. KeyValueデータベースのデータテーブルを更新するための方法であって、
    フルデータ更新命令を受信するステップと、
    前記フルデータ更新命令に従って、インポートされるべきデータを取得し、前記インポートされるべきデータに従って、フルデータ更新ファイルを生成するステップであって、前記フルデータ更新ファイルはP行の新しいデータを有し、新しいデータの各行は、1つの行キーRowKeyとQ個の新しい列修飾子とを有し、各新しい列修飾子のデータ型はプットPut型であり、更新タイムスタンプが各新しい列修飾子に対して設定される、ステップと、
    前記フルデータ更新命令に対応するデータテーブルにおけるM行の古いデータを取得するステップであって、古いデータの各行は、1つの行キーRowKeyとN個の古い列修飾子とを有し、オリジナル・タイムスタンプが各古い列修飾子に対して設定される、ステップと、
    前記M行の古いデータに従って、フルデータ削除ファイルを生成するステップであって、前記フルデータ削除ファイルはM行の削除データを有し、削除データの各行は古いデータの各行と一対一で対応し、削除データの各行のデータ型は削除Delete型であり、削除タイムスタンプが削除データの各行に対して設定され、削除データのR番目の行の削除タイムスタンプは古いデータの前記R番目の行のオリジナル・タイムスタンプの最大値よりも大きく、削除データの前記R番目の行の前記削除タイムスタンプは新しいデータのS番目の行の更新タイムスタンプの最小値よりも小さく、削除データの前記R番目の行、古いデータの前記R番目の行および新しいデータの前記S番目の行は同じRowKeyを持ち、1 ≦ R ≦ M、且つ1 ≦ S ≦ Pである、ステップと、
    前記フルデータ更新ファイルを前記データテーブルにインポートするステップと、
    前記フルデータ削除ファイルを前記データテーブルにインポートするステップと
    を有する、KeyValueデータベースのデータテーブルを更新するための方法。
  2. フルデータ削除ファイルを生成する前記ステップが最初に実行され、次いで、フルデータ更新ファイルを生成する前記ステップが実行され、
    各新しい列修飾子の前記更新タイムスタンプの時点は、前記フルデータ更新ファイルが生成される時点であるとともに、削除データの各行の前記削除タイムスタンプの時点は、前記フルデータ削除ファイルが生成される時点である、請求項1に記載のKeyValueデータベースのデータテーブルを更新するための方法。
  3. 前記フルデータ更新ファイルを前記データテーブルにインポートする前記ステップが最初に実行され、次いで、前記フルデータ削除ファイルを前記データテーブルにインポートする前記ステップが実行される、請求項1または2に記載のKeyValueデータベースのデータテーブルを更新するための方法。
  4. 前記フルデータ更新ファイルを前記データテーブルにインポートする前記ステップは、
    前記フルデータ更新ファイルの保存パスを前記フルデータ更新命令に対応する前記データテーブルのディレクトリに変更するステップ
    を有する、請求項1乃至3のいずれか1項に記載のKeyValueデータベースのデータテーブルを更新するための方法。
  5. 前記フルデータ削除ファイルを前記データテーブルにインポートする前記ステップは、
    前記フルデータ削除ファイルの保存パスを前記フルデータ更新命令に対応する前記データテーブルのディレクトリに変更するステップ
    を有する、請求項1乃至3のいずれか1項に記載のKeyValueデータベースのデータテーブルを更新するための方法。
  6. テーブルデータを更新するための装置であって、
    フルデータ更新命令を受信するように構成された受信モジュールと、
    前記フルデータ更新命令に従って、インポートされるべきデータを取得し、前記インポートされるべきデータに従って、フルデータ更新ファイルを生成するように構成されたファイル生成モジュールであって、前記フルデータ更新ファイルはP行の新しいデータを有し、新しいデータの各行は、1つの行キーRowKeyとQ個の新しい列修飾子とを有し、各新しい列修飾子のデータ型はプットPut型であり、更新タイムスタンプが各新しい列修飾子に対して設定される、ファイル生成モジュールと、
    前記フルデータ更新命令に対応するデータテーブルにおけるM行の古いデータを取得するように構成された取得モジュールであって、古いデータの各行は、1つの行キーRowKeyとN個の古い列修飾子とを有し、オリジナル・タイムスタンプが各古い列修飾子に対して設定される、取得モジュールと、
    前記フルデータ更新ファイルを前記データテーブルにインポートするとともにフルデータ削除ファイルを前記データテーブルにインポートするように構成されたインポートモジュールとを有し、
    前記ファイル生成モジュールは、前記M行の古いデータに従って、前記フルデータ削除ファイルを生成するようにさらに構成され、前記フルデータ削除ファイルはM行の削除データを有し、削除データの各行は古いデータの各行と一対一で対応し、削除データの各行のデータ型はDelete型であり、削除タイムスタンプが削除データの各行に対して設定され、削除データのR番目の行の削除タイムスタンプは古いデータの前記R番目の行のオリジナル・タイムスタンプの最大値よりも大きく、削除データの前記R番目の行の前記削除タイムスタンプは新しいデータのS番目の行の更新タイムスタンプの最小値よりも小さく、削除データの前記R番目の行、古いデータの前記R番目の行および新しいデータの前記S番目の行は同じRowKeyを持ち、1 ≦ R ≦ M、且つ1 ≦ S ≦ Pである、テーブルデータを更新するための装置。
  7. 前記ファイル生成モジュールは最初に前記フルデータ削除ファイルを生成し、次いで、前記フルデータ更新ファイルを生成し、且つ、前記フルデータ更新ファイルが生成される時点を各新しい列修飾子の前記更新タイムスタンプとして設定するとともに、前記フルデータ削除ファイルが生成される時点を削除データの各行の前記削除タイムスタンプとして設定する、請求項6に記載のテーブルデータを更新するための装置。
  8. 前記インポートモジュールは最初に前記フルデータ更新ファイルを前記データテーブルにインポートし、次いで、前記フルデータ削除ファイルを前記データテーブルにインポートする、請求項6または7に記載のテーブルデータを更新するための装置。
  9. 前記インポートモジュールは、前記フルデータ更新ファイルの保存パスを前記フルデータ更新命令に対応する前記データテーブルのディレクトリに変更する方法を使用することによって、前記フルデータ更新ファイルを前記データテーブルにインポートする、請求項6乃至8のいずれか1項に記載のテーブルデータを更新するための装置。
  10. 前記インポートモジュールは、前記フルデータ削除ファイルの保存パスを前記フルデータ更新命令に対応する前記データテーブルのディレクトリに変更する方法を使用することによって、前記フルデータ削除ファイルを前記データテーブルにインポートする、請求項6乃至8のいずれか1項に記載のテーブルデータを更新するための装置。
  11. 入力装置、出力装置、プロセッサおよびメモリを有する、テーブルデータを更新するための装置であって、前記メモリに格納された操作命令を呼び出すことによって、前記プロセッサは、
    フルデータ更新命令を受信するステップと、
    前記フルデータ更新命令に従って、インポートされるべきデータを取得し、前記インポートされるべきデータに従って、フルデータ更新ファイルを生成するステップであって、前記フルデータ更新ファイルはP行の新しいデータを有し、新しいデータの各行は、1つの行キーRowKeyとQ個の新しい列修飾子とを有し、各新しい列修飾子のデータ型はプットPut型であり、更新タイムスタンプが各新しい列修飾子に対して設定される、ステップと、
    前記フルデータ更新命令に対応するデータテーブルにおけるM行の古いデータを取得するステップであって、古いデータの各行は、1つの行キーRowKeyとN個の古い列修飾子とを有し、オリジナル・タイムスタンプが各古い列修飾子に対して設定される、ステップと、
    前記M行の古いデータに従って、フルデータ削除ファイルを生成するステップであって、前記フルデータ削除ファイルはM行の削除データを有し、削除データの各行は古いデータの各行と一対一で対応し、削除データの各行のデータ型はDelete型であり、削除タイムスタンプが削除データの各行に対して設定され、削除データのR番目の行の削除タイムスタンプは古いデータの前記R番目の行のオリジナル・タイムスタンプの最大値よりも大きく、削除データの前記R番目の行の前記削除タイムスタンプは新しいデータのS番目の行の更新タイムスタンプの最小値よりも小さく、削除データの前記R番目の行、古いデータの前記R番目の行および新しいデータの前記S番目の行は同じRowKeyを持ち、1 ≦ R ≦ M、且つ1 ≦ S ≦ Pである、ステップと、
    前記フルデータ更新ファイルを前記データテーブルにインポートするステップと、
    前記フルデータ削除ファイルを前記データテーブルにインポートするステップと
    を実行するように構成された、テーブルデータを更新するための装置。
  12. 前記プロセッサは最初に前記フルデータ削除ファイルを生成し、次いで、前記フルデータ更新ファイルを生成し、且つ、前記フルデータ更新ファイルが生成される時点を各新しい列修飾子の前記更新タイムスタンプとして設定するとともに、前記フルデータ削除ファイルが生成される時点を削除データの各行の前記削除タイムスタンプとして設定する、請求項11に記載のテーブルデータを更新するための装置。
  13. 前記プロセッサは最初に前記フルデータ更新ファイルを前記データテーブルにインポートし、次いで、前記フルデータ削除ファイルを前記データテーブルにインポートする、請求項11または12に記載のテーブルデータを更新するための装置。
  14. 前記プロセッサは、前記フルデータ更新ファイルの保存パスを前記フルデータ更新命令に対応する前記データテーブルのディレクトリに変更するようにさらに構成された、請求項11乃至13のいずれか1項に記載のテーブルデータを更新するための装置。
  15. 前記プロセッサは、前記フルデータ削除ファイルの保存パスを前記フルデータ更新命令に対応する前記データテーブルのディレクトリに変更するようにさらに構成された、請求項11乃至13のいずれか1項に記載のテーブルデータを更新するための装置。
  16. KeyValueデータベースのデータテーブルを更新するための方法であって、
    フルデータ更新命令を受信するステップと、
    前記フルデータ更新命令に従って、インポートされるべきデータを取得し、前記インポートされるべきデータに従って、フルデータ更新ファイルを生成するステップであって、前記フルデータ更新ファイルはP行の新しいデータを有し、新しいデータの各行は、1つの行キーRowKeyとQ個の新しい列修飾子とを有し、各新しい列修飾子のデータ型はプットPut型であり、更新タイムスタンプが各新しい列修飾子に対して設定される、ステップと、
    前記フルデータ更新命令に対応するデータテーブルにおけるM行の古いデータを取得するステップであって、古いデータの各行は、1つの行キーRowKeyとN個の古い列修飾子とを有し、オリジナル・タイムスタンプが各古い列修飾子に対して設定される、ステップと、
    前記M行の古いデータに従って、フルデータ削除ファイルを生成するステップであって、前記フルデータ削除ファイルはM行の削除データを有し、削除データの各行は古いデータの各行と一対一で対応し、削除データの各行のデータ型は削除Delete型であり、削除タイムスタンプが削除データの各行に対して設定され、削除データのR番目の行の削除タイムスタンプは古いデータの前記R番目の行のオリジナル・タイムスタンプの最大値よりも大きく、削除データの前記R番目の行の前記削除タイムスタンプは新しいデータのS番目の行の更新タイムスタンプの最小値よりも小さく、削除データの前記R番目の行、古いデータの前記R番目の行および新しいデータの前記S番目の行は同じRowKeyを持ち、1 ≦ R ≦ M、且つ1 ≦ S ≦ Pである、ステップと、
    前記フルデータ更新ファイルと前記フルデータ削除ファイルとを結合してテーブルデータ更新ファイルにするステップと、
    前記テーブルデータ更新ファイルを前記データテーブルにインポートするステップと
    を有する、KeyValueデータベースのデータテーブルを更新するための方法。
  17. 前記テーブルデータ更新ファイルを前記データテーブルにインポートする前記ステップは、
    前記テーブルデータ更新ファイルの保存パスを前記フルデータ更新命令に対応する前記データテーブルのディレクトリに変更するステップ
    を有する、請求項16に記載のKeyValueデータベースのデータテーブルを更新するための方法。
  18. テーブルデータを更新するための装置であって、
    フルデータ更新命令を受信するように構成された命令受信モジュールと、
    前記フルデータ更新命令に従って、インポートされるべきデータを取得し、前記インポートされるべきデータに従って、フルデータ更新ファイルを生成するように構成されたファイル生成モジュールであって、前記フルデータ更新ファイルはP行の新しいデータを有し、新しいデータの各行は、1つの行キーRowKeyとQ個の新しい列修飾子とを有し、各新しい列修飾子のデータ型はプットPut型であり、更新タイムスタンプが各新しい列修飾子に対して設定される、ファイル生成モジュールと、
    前記フルデータ更新命令に対応するデータテーブルにおけるM行の古いデータを取得するように構成されたデータ取得モジュールであって、古いデータの各行は、1つの行キーRowKeyとN個の古い列修飾子とを有し、オリジナル・タイムスタンプが各古い列修飾子に対して設定される、データ取得モジュールと、
    前記フルデータ更新ファイルとフルデータ削除ファイルとを結合してテーブルデータ更新ファイルにするように構成されたファイル結合モジュールと、
    前記テーブルデータ更新ファイルを前記データテーブルにインポートするように構成されたファイル・インポート・モジュールとを有し、
    前記ファイル生成モジュールは、前記M行の古いデータに従って、前記フルデータ削除ファイルを生成するようにさらに構成され、前記フルデータ削除ファイルはM行の削除データを有し、削除データの各行は古いデータの各行と一対一で対応し、削除データの各行のデータ型はDelete型であり、削除タイムスタンプが削除データの各行に対して設定され、削除データのR番目の行の削除タイムスタンプは古いデータの前記R番目の行のオリジナル・タイムスタンプの最大値よりも大きく、削除データの前記R番目の行の前記削除タイムスタンプは新しいデータのS番目の行の更新タイムスタンプの最小値よりも小さく、削除データの前記R番目の行、古いデータの前記R番目の行および新しいデータの前記S番目の行は同じRowKeyを持ち、1 ≦ R ≦ M、且つ1 ≦ S ≦ Pである、テーブルデータを更新するための装置。
  19. 前記ファイル・インポート・モジュールは、
    前記テーブルデータ更新ファイルの保存パスを前記フルデータ更新命令に対応する前記データテーブルのディレクトリに変更するように構成された、請求項18に記載のテーブルデータを更新するための装置。
  20. 入力装置、出力装置、プロセッサおよびメモリを有する、テーブルデータを更新するための装置であって、前記メモリに格納された操作命令を呼び出すことによって、前記プロセッサは、
    フルデータ更新命令を受信するステップと、
    前記フルデータ更新命令に従って、インポートされるべきデータを取得し、前記インポートされるべきデータに従って、フルデータ更新ファイルを生成するステップであって、前記フルデータ更新ファイルはP行の新しいデータを有し、新しいデータの各行は、1つの行キーRowKeyとQ個の新しい列修飾子とを有し、各新しい列修飾子のデータ型はプットPut型であり、更新タイムスタンプが各新しい列修飾子に対して設定される、ステップと、
    前記フルデータ更新命令に対応するデータテーブルにおけるM行の古いデータを取得するステップであって、古いデータの各行は、1つの行キーRowKeyとN個の古い列修飾子とを有し、オリジナル・タイムスタンプが各古い列修飾子に対して設定される、ステップと、
    前記M行の古いデータに従って、フルデータ削除ファイルを生成するステップであって、前記フルデータ削除ファイルはM行の削除データを有し、削除データの各行は古いデータの各行と一対一で対応し、削除データの各行のデータ型はDelete型であり、削除タイムスタンプが削除データの各行に対して設定され、削除データのR番目の行の削除タイムスタンプは古いデータの前記R番目の行のオリジナル・タイムスタンプの最大値よりも大きく、削除データの前記R番目の行の前記削除タイムスタンプは新しいデータのS番目の行の更新タイムスタンプの最小値よりも小さく、削除データの前記R番目の行、古いデータの前記R番目の行および新しいデータの前記S番目の行は同じRowKeyを持ち、1 ≦ R ≦ M、且つ1 ≦ S ≦ Pである、ステップと、
    前記フルデータ更新ファイルと前記フルデータ削除ファイルとを結合してテーブルデータ更新ファイルにするステップと、
    前記テーブルデータ更新ファイルを前記データテーブルにインポートするステップと
    を実行するように構成された、テーブルデータを更新するための装置。
  21. 前記プロセッサは、
    前記テーブルデータ更新ファイルの保存パスを前記フルデータ更新命令に対応する前記データテーブルのディレクトリに変更するようにさらに構成された、請求項20に記載のテーブルデータを更新するための装置。
JP2017224417A 2014-11-12 2017-11-22 KeyValueデータベースのデータテーブルを更新するための方法およびテーブルデータを更新するための装置 Active JP6521402B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN2014090934 2014-11-12
CNPCT/CN2014/090934 2014-11-12

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2016519954A Division JP6251388B2 (ja) 2014-11-12 2015-02-17 KeyValueデータベースのデータテーブルを更新するための方法およびテーブルデータを更新するための装置

Publications (2)

Publication Number Publication Date
JP2018049656A true JP2018049656A (ja) 2018-03-29
JP6521402B2 JP6521402B2 (ja) 2019-05-29

Family

ID=55953654

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2016519954A Active JP6251388B2 (ja) 2014-11-12 2015-02-17 KeyValueデータベースのデータテーブルを更新するための方法およびテーブルデータを更新するための装置
JP2017224417A Active JP6521402B2 (ja) 2014-11-12 2017-11-22 KeyValueデータベースのデータテーブルを更新するための方法およびテーブルデータを更新するための装置

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2016519954A Active JP6251388B2 (ja) 2014-11-12 2015-02-17 KeyValueデータベースのデータテーブルを更新するための方法およびテーブルデータを更新するための装置

Country Status (6)

Country Link
US (1) US10467192B2 (ja)
EP (1) EP3051440B1 (ja)
JP (2) JP6251388B2 (ja)
CN (2) CN105900093B (ja)
AU (1) AU2015316450B2 (ja)
WO (1) WO2016074370A1 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10204135B2 (en) * 2015-07-29 2019-02-12 Oracle International Corporation Materializing expressions within in-memory virtual column units to accelerate analytic queries
US10372706B2 (en) 2015-07-29 2019-08-06 Oracle International Corporation Tracking and maintaining expression statistics across database queries
US10671641B1 (en) * 2016-04-25 2020-06-02 Gravic, Inc. Method and computer program product for efficiently loading and synchronizing column-oriented databases
CN109960212B (zh) * 2017-12-25 2020-07-31 北京京东乾石科技有限公司 任务发送方法和装置
US11226955B2 (en) 2018-06-28 2022-01-18 Oracle International Corporation Techniques for enabling and integrating in-memory semi-structured data and text document searches with in-memory columnar query processing
CN108920725B (zh) 2018-08-02 2020-08-04 网宿科技股份有限公司 一种对象存储的方法及对象存储网关
CN109471866B (zh) * 2018-11-09 2021-10-22 南京医渡云医学技术有限公司 增量医疗数据更新方法及系统
CN109582726B (zh) * 2018-12-18 2021-09-07 网易(杭州)网络有限公司 数据表的处理方法和装置
CN109688266B (zh) * 2018-12-21 2020-12-18 北京金山安全软件有限公司 铃声设置方法、装置和电子设备
US11507590B2 (en) 2019-09-13 2022-11-22 Oracle International Corporation Techniques for in-memory spatial object filtering

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6959301B2 (en) 2001-01-04 2005-10-25 Reuters Limited Maintaining and reconstructing the history of database content modified by a series of events
US6665654B2 (en) * 2001-07-03 2003-12-16 International Business Machines Corporation Changing table records in a database management system
US6792429B2 (en) * 2001-12-19 2004-09-14 Hewlett-Packard Development Company, L.P. Method for fault tolerant modification of data representation in a large database
US7149736B2 (en) * 2003-09-26 2006-12-12 Microsoft Corporation Maintaining time-sorted aggregation records representing aggregations of values from multiple database records using multiple partitions
US7624119B2 (en) * 2004-02-11 2009-11-24 International Business Machines Corporation Low-overhead built-in timestamp column for relational database systems
US8533169B1 (en) * 2005-09-21 2013-09-10 Infoblox Inc. Transactional replication
US7769732B2 (en) * 2007-08-27 2010-08-03 International Business Machines Corporation Apparatus and method for streamlining index updates in a shared-nothing architecture
US20090083503A1 (en) * 2007-09-20 2009-03-26 Inventec Corporation System of creating logical volume and method thereof
CN101127915B (zh) 2007-09-20 2011-04-20 中兴通讯股份有限公司 一种基于增量式的电子节目导航数据同步方法及系统
JP5448428B2 (ja) * 2008-11-27 2014-03-19 三菱電機株式会社 データ管理システム及びデータ管理方法及びデータ管理プログラム
US8918380B2 (en) * 2009-07-09 2014-12-23 Norsync Technology As Methods, systems and devices for performing incremental updates of partial databases
EP2302534B1 (en) * 2009-09-18 2017-12-13 Software AG Method for mass-deleting data records of a database system
US8825601B2 (en) * 2010-02-01 2014-09-02 Microsoft Corporation Logical data backup and rollback using incremental capture in a distributed database
US20120284317A1 (en) * 2011-04-26 2012-11-08 Dalton Michael W Scalable Distributed Metadata File System using Key-Value Stores
CN102279885A (zh) 2011-08-16 2011-12-14 中兴通讯股份有限公司 内存数据库对数据的操作方法及装置
US8751525B2 (en) * 2011-12-23 2014-06-10 Sap Ag Time slider operator for temporal data aggregation
CN103473239B (zh) 2012-06-08 2016-12-21 腾讯科技(深圳)有限公司 一种非关系型数据库数据更新方法和装置
WO2014068820A1 (ja) * 2012-10-29 2014-05-08 日本電気株式会社 トランザクションシステム
CN103002011B (zh) 2012-10-29 2016-06-29 北京奇虎科技有限公司 基于服务器的数据更新方法和服务器
US9449040B2 (en) * 2012-11-26 2016-09-20 Amazon Technologies, Inc. Block restore ordering in a streaming restore system
JP6103037B2 (ja) * 2013-03-15 2017-03-29 日本電気株式会社 計算機システム
CN103595776A (zh) * 2013-11-05 2014-02-19 福建网龙计算机网络信息技术有限公司 分布式缓存方法及系统
CN103617232B (zh) * 2013-11-26 2018-03-30 北京京东尚科信息技术有限公司 一种针对HBase表的分页查询方法
CN103714163B (zh) * 2013-12-30 2017-02-15 中国科学院信息工程研究所 一种NoSQL数据库的模式管理方法及系统

Also Published As

Publication number Publication date
US10467192B2 (en) 2019-11-05
EP3051440A4 (en) 2016-12-28
JP6251388B2 (ja) 2017-12-20
EP3051440A1 (en) 2016-08-03
AU2015316450A1 (en) 2016-05-26
JP6521402B2 (ja) 2019-05-29
CN105900093B (zh) 2018-02-02
AU2015316450B2 (en) 2016-11-03
EP3051440B1 (en) 2019-01-02
CN107977396A (zh) 2018-05-01
CN107977396B (zh) 2021-07-20
WO2016074370A1 (zh) 2016-05-19
CN105900093A (zh) 2016-08-24
JP2017500622A (ja) 2017-01-05
US20160179836A1 (en) 2016-06-23

Similar Documents

Publication Publication Date Title
JP6251388B2 (ja) KeyValueデータベースのデータテーブルを更新するための方法およびテーブルデータを更新するための装置
US20170161297A1 (en) Data synchronization in a storage network
CN107958010B (zh) 用于在线数据迁移的方法及系统
US20190324691A1 (en) Data Recovery Method and Device, and Cloud Storage System
CN111143382B (zh) 数据处理方法、系统和计算机可读存储介质
CN109714188B (zh) 基于Zookeeper的配置数据管理方法、设备和存储介质
US20190045008A1 (en) Systems and methods for generating, deploying, and managing data infrastructure stacks
CN113204598B (zh) 一种数据同步方法、系统及存储介质
CN110858194A (zh) 一种数据库扩容的方法和装置
CN105069151A (zh) HBase二级索引构建装置和方法
US10545988B2 (en) System and method for data synchronization using revision control
US20170060922A1 (en) Method and device for data search
US20130290531A1 (en) Providing client and service compatibility through cloud-hosted adapters
CN111858760A (zh) 一种异构数据库的数据处理方法及装置
JP2024026143A (ja) 最終的に一貫性のあるデータベース複製への切り替え
US20180121532A1 (en) Data table partitioning management method and apparatus
CN111090803A (zh) 一种数据处理方法、装置、电子设备和存储介质
CN110019131B (zh) 一种复盘业务的方法和装置
CN111752939A (zh) 用于多个系统的数据处理方法、装置、计算机系统、介质
WO2019214071A1 (zh) 区块链上用户通信方法、装置、终端设备及存储介质
CN111506646B (zh) 数据同步方法、装置、系统、存储介质及处理器
US11789971B1 (en) Adding replicas to a multi-leader replica group for a data set
CN108573042B (zh) 报表同步方法、电子设备及计算机可读存储介质
CA2922388C (en) Method and apparatus for updating data table of keyvalue database
CN112527900A (zh) 一种数据库读多副本一致性的方法、装置、设备及介质

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181023

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181029

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181128

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: 20190408

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190418

R150 Certificate of patent or registration of utility model

Ref document number: 6521402

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250