(57)【要約】      （修正有）【課題】KeyValueデータベースのデータテーブルを更新するための方法を提供する。【解決手段】フルデータ更新命令を受信するステップ１０１と、フルデータ更新命令に従って、インポートされるべきデータを取得し、インポートされるべきデータに従って、フルデータ更新ファイルを生成するステップ１０２と、フルデータ更新命令に対応するデータテーブルにおけるM行の古いデータを取得するステップ１０３と、M行の古いデータのM個のRowKeyに従って、フルデータ削除ファイルを生成するステップ１０３と、フルデータ更新ファイルをデータテーブルにインポートするステップ１０４と、フルデータ削除ファイルをデータテーブルにインポートするステップ１０４とを含む。【選択図】図１
2018049656.tif 000002
【特許請求の範囲】
【請求項１】
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データベースのデータテーブルを更新するための方法。
【請求項２】
フルデータ削除ファイルを生成する前記ステップが最初に実行され、次いで、フルデータ更新ファイルを生成する前記ステップが実行され、
各新しい列修飾子の前記更新タイムスタンプの時点は、前記フルデータ更新ファイルが生成される時点であるとともに、削除データの各行の前記削除タイムスタンプの時点は、前記フルデータ削除ファイルが生成される時点である、請求項1に記載のKeyValueデータベースのデータテーブルを更新するための方法。
【請求項３】
前記フルデータ更新ファイルを前記データテーブルにインポートする前記ステップが最初に実行され、次いで、前記フルデータ削除ファイルを前記データテーブルにインポートする前記ステップが実行される、請求項1または2に記載のKeyValueデータベースのデータテーブルを更新するための方法。
【請求項４】
前記フルデータ更新ファイルを前記データテーブルにインポートする前記ステップは、
前記フルデータ更新ファイルの保存パスを前記フルデータ更新命令に対応する前記データテーブルのディレクトリに変更するステップ
を有する、請求項1乃至3のいずれか1項に記載のKeyValueデータベースのデータテーブルを更新するための方法。
【請求項５】
前記フルデータ削除ファイルを前記データテーブルにインポートする前記ステップは、
前記フルデータ削除ファイルの保存パスを前記フルデータ更新命令に対応する前記データテーブルのディレクトリに変更するステップ
を有する、請求項1乃至3のいずれか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である、テーブルデータを更新するための装置。
【請求項７】
前記ファイル生成モジュールは最初に前記フルデータ削除ファイルを生成し、次いで、前記フルデータ更新ファイルを生成し、且つ、前記フルデータ更新ファイルが生成される時点を各新しい列修飾子の前記更新タイムスタンプとして設定するとともに、前記フルデータ削除ファイルが生成される時点を削除データの各行の前記削除タイムスタンプとして設定する、請求項6に記載のテーブルデータを更新するための装置。
【請求項８】
前記インポートモジュールは最初に前記フルデータ更新ファイルを前記データテーブルにインポートし、次いで、前記フルデータ削除ファイルを前記データテーブルにインポートする、請求項6または7に記載のテーブルデータを更新するための装置。
【請求項９】
前記インポートモジュールは、前記フルデータ更新ファイルの保存パスを前記フルデータ更新命令に対応する前記データテーブルのディレクトリに変更する方法を使用することによって、前記フルデータ更新ファイルを前記データテーブルにインポートする、請求項6乃至8のいずれか1項に記載のテーブルデータを更新するための装置。
【請求項１０】
前記インポートモジュールは、前記フルデータ削除ファイルの保存パスを前記フルデータ更新命令に対応する前記データテーブルのディレクトリに変更する方法を使用することによって、前記フルデータ削除ファイルを前記データテーブルにインポートする、請求項6乃至8のいずれか1項に記載のテーブルデータを更新するための装置。
【請求項１１】
入力装置、出力装置、プロセッサおよびメモリを有する、テーブルデータを更新するための装置であって、前記メモリに格納された操作命令を呼び出すことによって、前記プロセッサは、
フルデータ更新命令を受信するステップと、
前記フルデータ更新命令に従って、インポートされるべきデータを取得し、前記インポートされるべきデータに従って、フルデータ更新ファイルを生成するステップであって、前記フルデータ更新ファイルは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である、ステップと、
前記フルデータ更新ファイルを前記データテーブルにインポートするステップと、
前記フルデータ削除ファイルを前記データテーブルにインポートするステップと
を実行するように構成された、テーブルデータを更新するための装置。
【請求項１２】
前記プロセッサは最初に前記フルデータ削除ファイルを生成し、次いで、前記フルデータ更新ファイルを生成し、且つ、前記フルデータ更新ファイルが生成される時点を各新しい列修飾子の前記更新タイムスタンプとして設定するとともに、前記フルデータ削除ファイルが生成される時点を削除データの各行の前記削除タイムスタンプとして設定する、請求項11に記載のテーブルデータを更新するための装置。
【請求項１３】
前記プロセッサは最初に前記フルデータ更新ファイルを前記データテーブルにインポートし、次いで、前記フルデータ削除ファイルを前記データテーブルにインポートする、請求項11または12に記載のテーブルデータを更新するための装置。
【請求項１４】
前記プロセッサは、前記フルデータ更新ファイルの保存パスを前記フルデータ更新命令に対応する前記データテーブルのディレクトリに変更するようにさらに構成された、請求項11乃至13のいずれか1項に記載のテーブルデータを更新するための装置。
【請求項１５】
前記プロセッサは、前記フルデータ削除ファイルの保存パスを前記フルデータ更新命令に対応する前記データテーブルのディレクトリに変更するようにさらに構成された、請求項11乃至13のいずれか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データベースのデータテーブルを更新するための方法。
【請求項１７】
前記テーブルデータ更新ファイルを前記データテーブルにインポートする前記ステップは、
前記テーブルデータ更新ファイルの保存パスを前記フルデータ更新命令に対応する前記データテーブルのディレクトリに変更するステップ
を有する、請求項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である、テーブルデータを更新するための装置。
【請求項１９】
前記ファイル・インポート・モジュールは、
前記テーブルデータ更新ファイルの保存パスを前記フルデータ更新命令に対応する前記データテーブルのディレクトリに変更するように構成された、請求項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である、ステップと、
前記フルデータ更新ファイルと前記フルデータ削除ファイルとを結合してテーブルデータ更新ファイルにするステップと、
前記テーブルデータ更新ファイルを前記データテーブルにインポートするステップと
を実行するように構成された、テーブルデータを更新するための装置。
【請求項２１】
前記プロセッサは、
前記テーブルデータ更新ファイルの保存パスを前記フルデータ更新命令に対応する前記データテーブルのディレクトリに変更するようにさらに構成された、請求項20に記載のテーブルデータを更新するための装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、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の態様の第2の実施方法では、フルデータ更新ファイルをデータテーブルにインポートするステップが最初に実行され、次いで、フルデータ削除ファイルをデータテーブルにインポートするステップが実行される。
【０００９】
本発明の実施形態の第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である。
【００７４】
【表１】
2018049656.tif 000003
【００７５】
時点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よりも大きい。
【００７７】
【表２ａ】
2018049656.tif 000004
【００７８】
特に、フルデータ削除ファイルの100行の削除データの形態がまたTable 2(b)に示されることができる。Table 2(b)はフルデータ削除ファイルの論理的構造のみを示し、ここで、フルデータ削除ファイルの基礎となるファイルはKeyValueの形態であり、各行の各修飾子は、1つのKeyValueに対応しており、各KeyValueはRowKey値、データ型および削除タイムスタンプを含むとともに他の情報をさらに含んでもよい。削除データの各行は、Table 1における3つの修飾子を有し、各修飾子のデータ型はDeleteであり、削除タイムスタンプが、各修飾子に対して設定され、且つ、各修飾子の削除タイムスタンプの時点は、フルデータ削除ファイルが生成される時点T1であり、ここで、T1はT0よりも大きい。本例では、図2(a)で示されるフルデータ削除ファイルのみが説明のための例として使用される。
【００７９】
【表２ｂ】
2018049656.tif 000005
【００８０】
時点T2で、テーブルデータを更新するための装置は、フルデータ更新命令に従って、インポートされるべきデータを取得し、インポートされるべきデータに従って、フルデータ更新ファイルを生成する。Table 3を参照すると、Table 3はフルデータ更新ファイルの論理的構造のみを示し、ここで、フルデータ更新ファイルの基礎となるファイルはKeyValueの形態であり、各行の各修飾子は、1つのKeyValueに対応しており、各KeyValueはRowKey値、データ型および更新タイムスタンプを含むとともに他の情報をさらに含んでもよい。フルデータ更新ファイルは200行の新しいデータを含み、新しいデータの各行は1つの行キーRowKeyと3つの新しい列修飾子（修飾子1、修飾子2および修飾子4）とを含み、ここで、各新しい列修飾子のデータ型はプットPut型であり、更新タイムスタンプが、各新しい列修飾子に対して設定され、且つ、各新しい列修飾子の更新タイムスタンプの時点は、フルデータ更新ファイルが生成される時点T2であり、ここで、T2はT1よりも大きい。
【００８１】
【表３】
2018049656.tif 000006
【００８２】
時点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  ファイル・インポート・モジュール
【図１】
2018049656.tif 000007
【図２】
2018049656.tif 000008
【図３】
2018049656.tif 000009
【図４】
2018049656.tif 000010
【図５】
2018049656.tif 000011
【図６】
2018049656.tif 000012
【手続補正書】
【提出日】平成29年11月27日(2017.11.27)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報技術の分野に関し、詳細には、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の態様の第2の実施方法では、フルデータ更新ファイルをデータテーブルにインポートするステップが最初に実行され、次いで、フルデータ削除ファイルをデータテーブルにインポートするステップが実行される。
【０００８】
本発明の実施形態の第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である。
【００７３】
【表１】
2018049656.tif 000013
【００７４】
時点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よりも大きい。
【００７６】
【表２ａ】
2018049656.tif 000014
【００７７】
特に、フルデータ削除ファイルの100行の削除データの形態がまたTable 2(b)に示されることができる。Table 2(b)はフルデータ削除ファイルの論理的構造のみを示し、ここで、フルデータ削除ファイルの基礎となるファイルはKeyValueの形態であり、各行の各修飾子は、1つのKeyValueに対応しており、各KeyValueはRowKey値、データ型および削除タイムスタンプを含むとともに他の情報をさらに含んでもよい。削除データの各行は、Table 1における3つの修飾子を有し、各修飾子のデータ型はDeleteであり、削除タイムスタンプが、各修飾子に対して設定され、且つ、各修飾子の削除タイムスタンプの時点は、フルデータ削除ファイルが生成される時点T1であり、ここで、T1はT0よりも大きい。本例では、図2(a)で示されるフルデータ削除ファイルのみが説明のための例として使用される。
【００７８】
【表２ｂ】
2018049656.tif 000015
【００７９】
時点T2で、テーブルデータを更新するための装置は、フルデータ更新命令に従って、インポートされるべきデータを取得し、インポートされるべきデータに従って、フルデータ更新ファイルを生成する。Table 3を参照すると、Table 3はフルデータ更新ファイルの論理的構造のみを示し、ここで、フルデータ更新ファイルの基礎となるファイルはKeyValueの形態であり、各行の各修飾子は、1つのKeyValueに対応しており、各KeyValueはRowKey値、データ型および更新タイムスタンプを含むとともに他の情報をさらに含んでもよい。フルデータ更新ファイルは200行の新しいデータを含み、新しいデータの各行は1つの行キーと3つの新しい列修飾子（修飾子1、修飾子2および修飾子4）とを含み、ここで、各新しい列修飾子のデータ型はプット型であり、更新タイムスタンプが、各新しい列修飾子に対して設定され、且つ、各新しい列修飾子の更新タイムスタンプの時点は、フルデータ更新ファイルが生成される時点T2であり、ここで、T2はT1よりも大きい。
【００８０】
【表３】
2018049656.tif 000016
【００８１】
時点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  ファイル・インポート・モジュール
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プロセッサによって、KeyValueデータベースのデータテーブルを更新するための方法であって、
フルデータ更新命令を受信するステップであって、前記フルデータ更新命令は、前記KeyValueデータベースにおける指定されたデータテーブルのテーブルデータを完全に更新するように命令するために使用され、且つ、前記フルデータ更新命令は、フルデータ更新ファイルの保存パスを含む、ステップと、
前記フルデータ更新命令に従って、インポートされるべきデータを取得し、前記インポートされるべきデータに従って、フルデータ更新ファイルを生成するステップであって、前記フルデータ更新ファイルは、前記フルデータ更新命令で指定された、前記フルデータ更新ファイルの前記保存パスに保存され、前記フルデータ更新ファイルはP行の新しいデータを有し、新しいデータの各行は、1つの行キーとQ個の新しい列修飾子とを有し、更新タイムスタンプが各新しい列修飾子に対して設定される、ステップと、
前記フルデータ更新命令に対応する前記データテーブルにおけるM行の古いデータを取得するステップであって、古いデータの各行は、1つの行キーとN個の古い列修飾子とを有し、オリジナル・タイムスタンプが各古い列修飾子に対して設定される、ステップと、
前記M行の古いデータに従って、フルデータ削除ファイルを生成するステップであって、前記フルデータ削除ファイルはM行の削除データを有し、削除データの各行は古いデータの各行と一対一で対応し、削除タイムスタンプが削除データの各行に対して設定され、削除データのR番目の行の削除タイムスタンプは古いデータの前記R番目の行のオリジナル・タイムスタンプの最大値よりも大きく、削除データの前記R番目の行の前記削除タイムスタンプは新しいデータのS番目の行の更新タイムスタンプの最小値よりも小さく、削除データの前記R番目の行、古いデータの前記R番目の行および新しいデータの前記S番目の行は同じRowKeyを持ち、1 ≦ R ≦ M、且つ1 ≦ S ≦ Pである、ステップと、
前記フルデータ更新ファイルの前記保存パスを前記フルデータ更新命令に対応する前記データテーブルのディレクトリに変更することによって、前記フルデータ更新ファイルを前記データテーブルにインポートするステップと、
前記フルデータ削除ファイルを前記データテーブルにインポートするステップと
を有する、KeyValueデータベースのデータテーブルを更新するための方法。
【請求項２】
フルデータ削除ファイルを生成する前記ステップが最初に実行され、次いで、フルデータ更新ファイルを生成する前記ステップが実行され、
各新しい列修飾子の前記更新タイムスタンプの時点は、前記フルデータ更新ファイルが生成される時点であるとともに、削除データの各行の前記削除タイムスタンプの時点は、前記フルデータ削除ファイルが生成される時点である、請求項1に記載のKeyValueデータベースのデータテーブルを更新するための方法。
【請求項３】
前記フルデータ更新ファイルを前記データテーブルにインポートする前記ステップが最初に実行され、次いで、前記フルデータ削除ファイルを前記データテーブルにインポートする前記ステップが実行される、請求項1または2に記載のKeyValueデータベースのデータテーブルを更新するための方法。
【請求項４】
前記フルデータ削除ファイルを前記データテーブルにインポートする前記ステップは、
前記フルデータ削除ファイルの保存パスを前記フルデータ更新命令に対応する前記データテーブルのディレクトリに変更するステップ
を有する、請求項1乃至3のいずれか1項に記載のKeyValueデータベースのデータテーブルを更新するための方法。
【請求項５】
テーブルデータを更新するための装置であって、
フルデータ更新命令を受信するように構成された受信モジュールであって、前記フルデータ更新命令は、KeyValueデータベースにおける指定されたデータテーブルのテーブルデータを完全に更新するように命令するために使用され、且つ、前記フルデータ更新命令は、フルデータ更新ファイルの保存パスを含む受信モジュールと、
前記フルデータ更新命令に従って、インポートされるべきデータを取得し、前記インポートされるべきデータに従って、フルデータ更新ファイルを生成するように構成されたファイル生成モジュールであって、前記フルデータ更新ファイルは、前記フルデータ更新命令で指定された、前記フルデータ更新ファイルの前記保存パスに保存され、前記フルデータ更新ファイルはP行の新しいデータを有し、新しいデータの各行は、1つの行キーとQ個の新しい列修飾子とを有し、更新タイムスタンプが各新しい列修飾子に対して設定される、ファイル生成モジュールと、
前記フルデータ更新命令に対応する前記データテーブルにおけるM行の古いデータを取得するように構成された取得モジュールであって、古いデータの各行は、1つの行キーとN個の古い列修飾子とを有し、オリジナル・タイムスタンプが各古い列修飾子に対して設定される、取得モジュールと、
前記フルデータ更新ファイルの前記保存パスを前記フルデータ更新命令に対応する前記データテーブルのディレクトリに変更することによって、前記フルデータ更新ファイルを前記データテーブルにインポートするとともにフルデータ削除ファイルを前記データテーブルにインポートするように構成されたインポートモジュールとを有し、
前記ファイル生成モジュールは、前記M行の古いデータに従って、前記フルデータ削除ファイルを生成するようにさらに構成され、前記フルデータ削除ファイルはM行の削除データを有し、削除データの各行は古いデータの各行と一対一で対応し、削除タイムスタンプが削除データの各行に対して設定され、削除データのR番目の行の削除タイムスタンプは古いデータの前記R番目の行のオリジナル・タイムスタンプの最大値よりも大きく、削除データの前記R番目の行の前記削除タイムスタンプは新しいデータのS番目の行の更新タイムスタンプの最小値よりも小さく、削除データの前記R番目の行、古いデータの前記R番目の行および新しいデータの前記S番目の行は同じRowKeyを持ち、1 ≦ R ≦ M、且つ1 ≦ S ≦ Pである、テーブルデータを更新するための装置。
【請求項６】
前記ファイル生成モジュールは最初に前記フルデータ削除ファイルを生成し、次いで、前記フルデータ更新ファイルを生成し、且つ、前記フルデータ更新ファイルが生成される時点を各新しい列修飾子の前記更新タイムスタンプとして設定するとともに、前記フルデータ削除ファイルが生成される時点を削除データの各行の前記削除タイムスタンプとして設定する、請求項5に記載のテーブルデータを更新するための装置。
【請求項７】
前記インポートモジュールは最初に前記フルデータ更新ファイルを前記データテーブルにインポートし、次いで、前記フルデータ削除ファイルを前記データテーブルにインポートする、請求項5または6に記載のテーブルデータを更新するための装置。
【請求項８】
前記インポートモジュールは、前記フルデータ削除ファイルの保存パスを前記フルデータ更新命令に対応する前記データテーブルのディレクトリに変更する方法を使用することによって、前記フルデータ削除ファイルを前記データテーブルにインポートする、請求項5乃至7のいずれか1項に記載のテーブルデータを更新するための装置。
【請求項９】
プロセッサによって、KeyValueデータベースのデータテーブルを更新するための方法であって、
フルデータ更新命令を受信するステップであって、前記フルデータ更新命令は、前記KeyValueデータベースにおける指定されたデータテーブルのテーブルデータを完全に更新するように命令するために使用される、ステップと、
前記フルデータ更新命令に従って、インポートされるべきデータを取得し、前記インポートされるべきデータに従って、フルデータ更新ファイルを生成するステップであって、前記フルデータ更新ファイルはP行の新しいデータを有し、新しいデータの各行は、1つの行キーとQ個の新しい列修飾子とを有し、更新タイムスタンプが各新しい列修飾子に対して設定される、ステップと、
前記フルデータ更新命令に対応する前記データテーブルにおけるM行の古いデータを取得するステップであって、古いデータの各行は、1つの行キーとN個の古い列修飾子とを有し、オリジナル・タイムスタンプが各古い列修飾子に対して設定される、ステップと、
前記M行の古いデータに従って、フルデータ削除ファイルを生成するステップであって、前記フルデータ削除ファイルはM行の削除データを有し、削除データの各行は古いデータの各行と一対一で対応し、削除タイムスタンプが削除データの各行に対して設定され、削除データのR番目の行の削除タイムスタンプは古いデータの前記R番目の行のオリジナル・タイムスタンプの最大値よりも大きく、削除データの前記R番目の行の前記削除タイムスタンプは新しいデータのS番目の行の更新タイムスタンプの最小値よりも小さく、削除データの前記R番目の行、古いデータの前記R番目の行および新しいデータの前記S番目の行は同じRowKeyを持ち、1 ≦ R ≦ M、且つ1 ≦ S ≦ Pである、ステップと、
前記フルデータ更新ファイルと前記フルデータ削除ファイルとを結合してテーブルデータ更新ファイルにするステップと、
前記テーブルデータ更新ファイルの保存パスを前記フルデータ更新命令に対応する前記データテーブルのディレクトリに変更することによって、前記テーブルデータ更新ファイルを前記データテーブルにインポートするステップと
を有する、KeyValueデータベースのデータテーブルを更新するための方法。
【請求項１０】
テーブルデータを更新するための装置であって、
フルデータ更新命令を受信するように構成された命令受信モジュールであって、前記フルデータ更新命令は、KeyValueデータベースにおける指定されたデータテーブルのテーブルデータを完全に更新するように命令するために使用される、命令受信モジュールと、
前記フルデータ更新命令に従って、インポートされるべきデータを取得し、前記インポートされるべきデータに従って、フルデータ更新ファイルを生成するように構成されたファイル生成モジュールであって、前記フルデータ更新ファイルはP行の新しいデータを有し、新しいデータの各行は、1つの行キーとQ個の新しい列修飾子とを有し、更新タイムスタンプが各新しい列修飾子に対して設定される、ファイル生成モジュールと、
前記フルデータ更新命令に対応する前記データテーブルにおけるM行の古いデータを取得するように構成されたデータ取得モジュールであって、古いデータの各行は、1つの行キーとN個の古い列修飾子とを有し、オリジナル・タイムスタンプが各古い列修飾子に対して設定される、データ取得モジュールと、
前記フルデータ更新ファイルとフルデータ削除ファイルとを結合してテーブルデータ更新ファイルにするように構成されたファイル結合モジュールと、
前記テーブルデータ更新ファイルの保存パスを前記フルデータ更新命令に対応する前記データテーブルのディレクトリに変更することによって、前記テーブルデータ更新ファイルを前記データテーブルにインポートするように構成されたファイル・インポート・モジュールとを有し、
前記ファイル生成モジュールは、前記M行の古いデータに従って、前記フルデータ削除ファイルを生成するようにさらに構成され、前記フルデータ削除ファイルはM行の削除データを有し、削除データの各行は古いデータの各行と一対一で対応し、削除タイムスタンプが削除データの各行に対して設定され、削除データのR番目の行の削除タイムスタンプは古いデータの前記R番目の行のオリジナル・タイムスタンプの最大値よりも大きく、削除データの前記R番目の行の前記削除タイムスタンプは新しいデータのS番目の行の更新タイムスタンプの最小値よりも小さく、削除データの前記R番目の行、古いデータの前記R番目の行および新しいデータの前記S番目の行は同じRowKeyを持ち、1 ≦ R ≦ M、且つ1 ≦ S ≦ Pである、テーブルデータを更新するための装置。
【請求項１１】
その上に記録されるプログラムを有するコンピュータ可読記憶媒体であって、前記プログラムは、コンピュータに請求項1乃至4のいずれか1項の方法を実行させる、コンピュータ可読記憶媒体。
【請求項１２】
その上に記録されるプログラムを有するコンピュータ可読記憶媒体であって、前記プログラムは、コンピュータに請求項9の方法を実行させる、コンピュータ可読記憶媒体。
【請求項１３】
プロセッサおよびメモリを含む、テーブルデータを更新するための装置であって、前記メモリに記憶された操作命令を呼び出すことによって、前記プロセッサは、請求項1乃至4のいずれか1項の前記方法を実行する、装置。
【請求項１４】
プロセッサおよびメモリを含む、テーブルデータを更新するための装置であって、前記メモリに記憶された操作命令を呼び出すことによって、前記プロセッサは、請求項9の前記方法を実行する、装置。
【外国語明細書】
2018049656000001.pdf