(57)【要約】      （修正有）【課題】データクエリ効率を改善することができるデータ記憶方法を提供する。【解決手段】ＫｅｙＶａｌｕｅ式分散データベースに記憶されるべき少なくとも２つのデータオブジェクトの同じカラム属性を決定するステップと、少なくとも２つのデータオブジェクトの各データオブジェクトのＫｅｙＶａｌｕｅ式分散データベースにおけるロー識別子のフォーマットを決定するステップと、各データオブジェクトの決定されたロー識別子フォーマットに従って、各データオブジェクトの各データ記録のロー識別子値を決定するステップと、ＫｅｙＶａｌｕｅ式分散データベースに、各データ記録のロー識別子値と各データ記録とを記憶するステップと、を有する。【選択図】図１
2018026158.tif 000002
【特許請求の範囲】
【請求項１】
データを記憶する方法であって、
キー値（ＫｅｙＶａｌｕｅ）式分散データベースに記憶されるべき少なくとも２つのデータオブジェクトの同じカラム属性を決定するステップであって、各データオブジェクトはデータ記録を有する、ステップと、
前記少なくとも２つのデータオブジェクトの各データオブジェクトの前記ＫｅｙＶａｌｕｅ式分散データベースにおけるロー識別子のフォーマットを決定するステップであって、前記ロー識別子の前記フォーマットは前記同じカラム属性及びデータオブジェクト識別子を含み、前記少なくとも２つのデータオブジェクトのうち異なるデータオブジェクトのデータオブジェクト識別子は、前記ロー識別子の前記フォーマット内の同じ位置にあり、且つ前記同じカラム属性の後にある、ステップと、
各データオブジェクトの決定された前記ロー識別子の前記フォーマットに従って、各データオブジェクトの各データ記録のロー識別子値を決定するステップと、
全ての前記データ記録のロー識別子値に従って、前記少なくとも２つのデータオブジェクトの全ての前記データ記録を第１の順序にソートするステップであって、前記少なくとも２つのデータオブジェクトの全てのデータ記録がクラスターテーブルを形成する、ステップと、
前記ＫｅｙＶａｌｕｅ式分散データベースに、前記クラスターテーブルの各データ記録と各データ記録の前記ロー識別子値とを記憶するステップであって、各データ記録の前記ロー識別子値は、各データ記録の前記ＫｅｙＶａｌｕｅ式分散データベースにおける主索引として利用される、ステップと、
を有する方法。
【請求項２】
前記第１の順序は辞書式順序である、請求項１に記載の方法。
【請求項３】
前記少なくとも２つのデータオブジェクトの各データオブジェクトの前記ＫｅｙＶａｌｕｅ式分散データベースにおけるロー識別子のフォーマットを決定する前記ステップは、
前記少なくとも２つのデータオブジェクトに対して、前記ＫｅｙＶａｌｕｅ式分散データベース中の前記ロー識別子の第１のプレフィックスを指定するステップであって、前記第１のプレフィックスは定数である、ステップと、
前記少なくとも２つのデータオブジェクト中の第１のデータオブジェクトのロー識別子フォーマットが、前記第１のプレフィックスと、前記同じカラム属性と、前記第１のデータオブジェクトのデータオブジェクト識別子とを含むことを決定するステップと、
を含む、請求項１又は２に記載の方法。
【請求項４】
前記少なくとも２つのデータオブジェクトのうち任意のデータオブジェクトの前記ＫｅｙＶａｌｕｅ式分散データベースにおける副索引のフォーマットが、第２のプレフィックス、第２の属性及び前記同じカラム属性であることを決定するステップであって、前記第２の属性は、前記任意のデータオブジェクトのカラム属性のうち前記同じ属性とは異なるカラム属性であり、且つ、前記第２のプレフィックスは、前記第１のプレフィックスとは異なる定数である、ステップと、
前記任意のデータオブジェクトの前記副索引の前記フォーマットに従って、前記任意のデータオブジェクトの前記副索引を決定するステップと、
前記任意のデータオブジェクトの前記副索引を、前記ＫｅｙＶａｌｕｅ式分散データベースに記憶するステップと、
を更に有する、請求項３に記載の方法。
【請求項５】
前記少なくとも２つのデータオブジェクトの各データオブジェクトの前記ＫｅｙＶａｌｕｅ式分散データベースにおけるロー識別子のフォーマットを決定する前記ステップは、
前記少なくとも２つのデータオブジェクトに対して、前記ＫｅｙＶａｌｕｅ式分散データベース中の前記ロー識別子の第１のプレフィックスを指定するステップであって、前記第１のプレフィックスは定数である、ステップと、
前記少なくとも２つのデータオブジェクト中の第２のデータオブジェクトのロー識別子フォーマットが、前記第１のプレフィックスと、前記同じカラム属性と、前記第２のデータオブジェクトのデータオブジェクト識別子と、前記第２のデータオブジェクトのカラム属性のうち前記第２のデータオブジェクトの全てのデータ記録を区別できるカラム属性とを含むことを決定するステップと、
を含む、請求項１又は２に記載の方法。
【請求項６】
前記少なくとも２つのデータオブジェクトのうち任意のデータオブジェクトの前記ＫｅｙＶａｌｕｅ式分散データベースにおける副索引のフォーマットが、第２のプレフィックス、第２の属性及び前記同じカラム属性であることを決定するステップであって、前記第２の属性は、前記任意のデータオブジェクトのカラム属性のうち前記同じ属性とは異なるカラム属性であり、且つ、前記第２のプレフィックスは、前記第１のプレフィックスとは異なる定数である、ステップと、
前記任意のデータオブジェクトの前記副索引の前記フォーマットに従って、前記任意のデータオブジェクトの前記副索引を決定するステップと、
前記任意のデータオブジェクトの前記副索引を、前記ＫｅｙＶａｌｕｅ式分散データベースに記憶するステップと、
を更に有する、請求項５に記載の方法。
【請求項７】
前記クエリ情報は前記第１のプレフィックス及び前記同じカラム属性を含む、
請求項３乃至６のいずれか一項に記載の方法。
【請求項８】
前記ロー識別子の前記フォーマットのフィールド間、又は固定長を有する前記フィールド間に、セパレータが設定される、
請求項１乃至７のいずれか一項に記載の方法。
【請求項９】
データ記憶装置であって、
前記装置は、プロセッサ及びメモリを備え、前記メモリには複数の命令が記憶され、前記複数の命令は、前記プロセッサによって実行されると、
キー値（ＫｅｙＶａｌｕｅ）式分散データベースに記憶されるべき少なくとも２つのデータオブジェクトの同じカラム属性を決定するステップと、
前記少なくとも２つのデータオブジェクトの各データオブジェクトの前記ＫｅｙＶａｌｕｅ式分散データベースにおけるロー識別子のフォーマットを決定するステップであって、前記ロー識別子の前記フォーマットは前記同じカラム属性及びデータオブジェクト識別子を含み、前記少なくとも２つのデータオブジェクトのうち異なるデータオブジェクトのデータオブジェクト識別子は、前記ロー識別子の前記フォーマット内の同じ位置にあり、且つ前記同じカラム属性の後にある、ステップと、
各データオブジェクトの決定された前記ロー識別子の前記フォーマットに従って、各データオブジェクトの各データ記録のロー識別子値を決定するステップと、
全ての前記データ記録のロー識別子値に従って、前記少なくとも２つのデータオブジェクトの全ての前記データ記録を第１の順序にソートするステップであって、前記少なくとも２つのデータオブジェクトの全てのデータ記録がクラスターテーブルを形成する、ステップと、
前記ＫｅｙＶａｌｕｅ式分散データベースに、前記クラスターテーブルの各データ記録と各データ記録の前記ロー識別子値とを記憶するステップであって、各データ記録の前記ロー識別子値は、各データ記録の前記ＫｅｙＶａｌｕｅ式分散データベースにおける主索引として利用される、ステップと、
を前記プロセッサに実行させる、装置。
【請求項１０】
前記第１の順序は辞書式順序である、
請求項９に記載の装置。
【請求項１１】
前記複数の命令は、前記プロセッサに、
前記少なくとも２つのデータオブジェクトに対して、前記ＫｅｙＶａｌｕｅ式分散データベース中の前記ロー識別子の第１のプレフィックスを指定するステップであって、前記第１のプレフィックスは定数である、ステップと、
前記少なくとも２つのデータオブジェクト中の第１のデータオブジェクトのロー識別子フォーマットが、前記第１のプレフィックスと、前記同じカラム属性と、前記第１のデータオブジェクトのデータオブジェクト識別子とを含むことを決定するステップと、
を更に実行させる、請求項９又は１０に記載の装置。
【請求項１２】
前記複数の命令は、前記プロセッサに、
前記少なくとも２つのデータオブジェクトのうち任意のデータオブジェクトの前記ＫｅｙＶａｌｕｅ式分散データベースにおける副索引のフォーマットが、第２のプレフィックス、第２の属性及び前記同じカラム属性であることを決定するステップであって、前記第２の属性は、前記任意のデータオブジェクトのカラム属性のうち前記同じ属性とは異なるカラム属性であり、前記第２のプレフィックスは、前記第１のプレフィックスとは異なる定数である、ステップと、
前記任意のデータオブジェクトの前記副索引の前記フォーマットに従って、前記任意のデータオブジェクトの前記副索引を決定するステップと、
前記任意のデータオブジェクトの前記副索引を、前記ＫｅｙＶａｌｕｅ式分散データベースに記憶するステップと、
を更に実行させる、請求項１１に記載の装置。
【請求項１３】
前記複数の命令は、前記プロセッサに、
前記少なくとも２つのデータオブジェクトに対して、前記ＫｅｙＶａｌｕｅ式分散データベース中の前記ロー識別子の第１のプレフィックスを指定するステップであって、前記第１のプレフィックスは定数である、ステップと、
前記少なくとも２つのデータオブジェクト中の第２のデータオブジェクトのロー識別子フォーマットが、前記第１のプレフィックスと、前記同じカラム属性と、前記第２のデータオブジェクトのデータオブジェクト識別子と、前記第２のデータオブジェクトのカラム属性のうち前記第２のデータオブジェクトの全てのデータ記録を区別できるカラム属性とを含むことを決定するステップと、
を更に実行させる、請求項９又は１０に記載の装置。
【請求項１４】
前記複数の命令は、前記プロセッサに、
前記少なくとも２つのデータオブジェクトのうち任意のデータオブジェクトの前記ＫｅｙＶａｌｕｅ式分散データベースにおける副索引のフォーマットが、第２のプレフィックス、第２の属性及び前記同じカラム属性であることを決定するステップであって、前記第２の属性は、前記任意のデータオブジェクトのカラム属性のうち前記同じ属性とは異なるカラム属性であり、前記第２のプレフィックスは、前記第１のプレフィックスとは異なる定数である、ステップと、
前記任意のデータオブジェクトの前記副索引の前記フォーマットに従って、前記任意のデータオブジェクトの前記副索引を決定するステップと、
前記任意のデータオブジェクトの前記副索引を、前記ＫｅｙＶａｌｕｅ式分散データベースに記憶するステップと、
を更に実行させる、請求項１３に記載の装置。
【請求項１５】
前記クエリ情報は前記第１のプレフィックス及び前記同じカラム属性を含む、
請求項１１乃至１４のいずれか一項に記載の装置。
【請求項１６】
前記ロー識別子の前記フォーマットのフィールド間、又は固定長を有する前記フィールド間に、セパレータが設定される、
請求項９乃至１５のいずれか一項に記載の装置。
【請求項１７】
コンピューター命令を記憶するためのコンピューター可読記憶媒体であって、
コンピューターのプロセッサが前記コンピューター命令を実行して、記憶されたデータへの高速アクセスを提供するとき、前記コンピューターは請求項１乃至８のいずれか一項に記載の方法を実行する、
コンピューター可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報技術分野に関し、特に、データを記憶する方法及び装置に関する。
【背景技術】
【０００２】
分散カラム記憶データベースとして、キー値（ＫｅｙＶａｌｕｅ）式分散データベースは高いスケーラビリティとロバストネスをもち、ますます多くのシステムに幅広く適用されている。ＫｅｙＶａｌｕｅ式分散データベースのユーザーテーブルは、一般に、比較的単純なデータフォーマットで単純な相関をもつが量が膨大であるデータを記憶するように設計され、例えば、ウェブページアドレス情報の記憶、通話記録情報の記憶又はネットワークアクセス記録情報の記憶等のために設計される。ＫｅｙＶａｌｕｅ式分散データベースにより、データ記録のローキー（ＲｏｗＫｅｙ）による高速クエリが可能であり、高速クエリはデータ量に関係がない。現在の記憶スペース使用率が閾値に達した場合、ＫｅｙＶａｌｕｅ式分散データベースに対して動的に物理ノードを追加することができる。
【０００３】
企業が既存のデータベースを適用する場合、一般に、多くのユーザーデータテーブルが相関し、これらのデータテーブルは異なるサイズを有し、テーブルのデータ間に内部相関が存在する場合がある。しかしながら、スパースマトリックスに基づくＫｅｙＶａｌｕｅ式分散データベースは、データ量の大きいテーブルを記憶するのに適している。これらの元のテーブルが直接的にＫｅｙＶａｌｕｅ式分散データベースにインポートされると、非常に小さなテーブルが存在する。したがって、クロステーブル相関クエリを実施することが困難であり、管理の複雑性も増大してしまう。すなわち、１つのユーザーテーブルと別のユーザーテーブルとの間で相関クエリを完了するために、従来の適用においてデータがＫｅｙＶａｌｕｅ式分散データベースに移行されると、異なるテーブルをクエリする必要があり、持続的にデータの位置決めを実行する必要があり、効率が低くなってしまう。
【発明の概要】
【０００４】
本発明の実施形態は、データクエリ効率を改善することのできる、データを記憶する方法及び装置を提供する。
【０００５】
第１の態様はデータを記憶する方法を提供する。本方法は、ＫｅｙＶａｌｕｅ式分散データベースに記憶されるべき少なくとも２つのデータオブジェクトの同じカラム属性を決定するステップと、少なくとも２つのデータオブジェクトの各データオブジェクトのＫｅｙＶａｌｕｅ式分散データベースにおけるロー識別子のフォーマットを決定するステップであって、ロー識別子フォーマットは同じカラム属性及びデータオブジェクト識別子を含み、少なくとも２つのデータオブジェクトのうち異なるデータオブジェクトのデータオブジェクト識別子は、ロー識別子フォーマット内の同じ位置にあり、且つ同じカラム属性の後に位置する、ステップと、各データオブジェクトの決定されたロー識別子フォーマットに従って、各データオブジェクトの各データ記録のロー識別子値を決定するステップと、ＫｅｙＶａｌｕｅ式分散データベースに、各データ記録のロー識別子値と各データ記録とを記憶するステップであって、各データ記録のロー識別子値は、各データ記録のＫｅｙＶａｌｕｅ式分散データベースにおける主索引として利用される、ステップと、を有する。
【０００６】
第１の可能な実施方式では、本方法は更に、全てのデータ記録のロー識別子値に対して、少なくとも２つのデータオブジェクトの全てのデータ記録がクラスターテーブルを形成するように、全てのデータ記録を第１の順序にソートするステップ、を有する。
【０００７】
第１の態様の第１の可能な実施形式に関して、第２の可能な実施形式では、第１の順序は辞書式順序である。
【０００８】
第１の態様又は第１の態様の第１若しくは第２の可能な実施形式に関して、第３の可能な実施形式では、本方法は更に、データリクエストを受信するステップであって、データリクエストは、少なくとも２つのデータオブジェクトのデータ記録をクエリ又は取得することを命令する、ステップと、ロー識別子フォーマットに従って、ＫｅｙＶａｌｕｅ式分散データベースにおいてクエリを行うためのクエリ情報を構成するステップであって、クエリ情報は同じカラム属性を含む、ステップと、クエリ情報に従って、その主索引がクエリ情報を含むデータ記録をＫｅｙＶａｌｕｅ式分散データベースからエクスポートするステップと、を有する。
【０００９】
第１の態様又は第１の態様の第１〜第３の可能な実施形式のうちいずれかの可能な実施形式に関して、第４の可能な実施形式では、少なくとも２つのデータオブジェクトの各データオブジェクトのＫｅｙＶａｌｕｅ式分散データベースにおけるロー識別子のフォーマットを決定するステップは、少なくとも２つのデータオブジェクトに対して、ＫｅｙＶａｌｕｅ式分散データベース中のロー識別子の第１のプレフィックスを指定するステップであって、第１のプレフィックスは定数である、ステップと、少なくとも２つのデータオブジェクト中の第１のデータオブジェクトのロー識別子フォーマットが、第１のプレフィックスと、同じカラム属性と、第１のデータオブジェクトのデータオブジェクト識別子とを含むことを決定するステップか、又は、少なくとも２つのデータオブジェクト中の第２のデータオブジェクトのロー識別子フォーマットが、第１のプレフィックスと、同じカラム属性と、第２のデータオブジェクトのデータオブジェクト識別子と、第２のデータオブジェクトのカラム属性のうち第２のデータオブジェクトの全てのデータ記録を区別できるカラム属性とを含むことを決定するステップと、を含む。
【００１０】
第１の態様の第４の可能な実施形式に関して、第５の可能な実施形式では、クエリ情報は第１のプレフィックス及び同じカラム属性を含む。
【００１１】
第１の態様の第４又は第５の可能な実施形式に関して、第６の可能な実施形式では、本方法は更に、少なくとも２つのデータオブジェクトのうち任意のデータオブジェクトのＫｅｙＶａｌｕｅ式分散データベースにおける副索引のフォーマットが第２のプレフィックス、第２の属性及び同じカラム属性であることを決定するステップであって、第２の属性は、任意のデータオブジェクトのカラム属性にあり、且つ同じ属性とは異なるカラム属性であり、第２のプレフィックスは第１のプレフィックスとは異なる定数である、ステップと、任意のデータオブジェクトの副索引のフォーマットに従って、任意のデータオブジェクトの副索引を決定するステップと、任意のデータオブジェクトの副索引を、ＫｅｙＶａｌｕｅ式分散データベースに記憶するステップと、を有する。
【００１２】
第１の態様又は第１の態様の第１〜第６の可能な実施形式のうちいずれかの可能な実施形式に関して、第７の可能な実施形式では、ロー識別子フォーマットのフィールド間、又は固定長を有するフィールド間に、セパレータが設定される。
【００１３】
第２の態様はデータ記憶装置を提供する。本データ記憶装置は、キー値（ＫｅｙＶａｌｕｅ）式分散データベースに記憶されるべき少なくとも２つのデータオブジェクトの同じカラム属性を決定するように構成され、少なくとも２つのデータオブジェクトの各データオブジェクトのＫｅｙＶａｌｕｅ式分散データベースにおけるロー識別子のフォーマットを決定するように構成され、ロー識別子フォーマットは同じカラム属性及びデータオブジェクト識別子を含み、少なくとも２つのデータオブジェクトのうち異なるデータオブジェクトのデータオブジェクト識別子は、ロー識別子フォーマット内の同じ位置にあり、且つ同じカラム属性の後にあり、各データオブジェクトの決定されたロー識別子フォーマットに従って、各データオブジェクトの各データ記録のロー識別子値を決定するように構成される決定モジュールと、ＫｅｙＶａｌｕｅ式分散データベースに、各データ記録のロー識別子値と各データ記録とを記憶するように構成される記憶モジュールであって、各データ記録のロー識別子値は、各データ記録のＫｅｙＶａｌｕｅ式分散データベースにおける主索引として利用される、記憶モジュールと、を備える。
【００１４】
第１の可能な実施方式では、記憶モジュールは更に、全てのデータ記録のロー識別子値に対して、少なくとも２つのデータオブジェクトの全てのデータ記録がクラスターテーブルを形成するように、全てのデータ記録を第１の順序にソートするように構成される。
【００１５】
第２の態様の第１の可能な実施形式に関して、第２の可能な実施形式では、第１の順序は辞書式順序である。
【００１６】
第２の態様又は第２の態様の第１若しくは第２の可能な実施形式に関して、第３の可能な実施形式では、本装置は更に、データリクエストを受信するように構成される受信モジュールであって、データリクエストは、少なくとも２つのデータオブジェクトのデータ記録をクエリ又は取得することを命令する、受信モジュールと、ロー識別子フォーマットに従って、ＫｅｙＶａｌｕｅ式分散データベースにおいてクエリを行うためのクエリ情報を構成するように構成され、クエリ情報は同じカラム属性を含み、且つ、クエリ情報に従って、その主索引がクエリ情報を含むデータ記録をＫｅｙＶａｌｕｅ式分散データベースからエクスポートするように構成されるクエリモジュールと、を備える。
【００１７】
第２の態様又は第２の態様の第１〜第３の可能な実施形式のうちいずれかの可能な実施形式に関して、第４の可能な実施形式では、決定モジュールは、特に、少なくとも２つのデータオブジェクトに対して、ＫｅｙＶａｌｕｅ式分散データベース中のロー識別子の第１のプレフィックスを指定するように構成され、第１のプレフィックスは定数であり、且つ、少なくとも２つのデータオブジェクト中の第１のデータオブジェクトのロー識別子フォーマットが、第１のプレフィックスと、同じカラム属性と、第１のデータオブジェクトのデータオブジェクト識別子とを含むことを決定するか、又は、少なくとも２つのデータオブジェクト中の第２のデータオブジェクトのロー識別子フォーマットが、第１のプレフィックスと、同じカラム属性と、第２のデータオブジェクトのデータオブジェクト識別子と、第２のデータオブジェクトのカラム属性のうち第２のデータオブジェクトの全てのデータ記録を区別できるカラム属性とを含むことを決定するように構成される。
【００１８】
第２の態様の第４の可能な実施形式に関して、第５の可能な実施形式では、クエリ情報は第１のプレフィックス及び同じカラム属性を含む。
【００１９】
第２の態様の第４又は第５の可能な実施形式に関して、第６の可能な実施形式では、決定モジュールは更に、少なくとも２つのデータオブジェクトのうち任意のデータオブジェクトのＫｅｙＶａｌｕｅ式分散データベースにおける副索引のフォーマットが、第２のプレフィックス、第２の属性及び同じカラム属性であることを決定するように構成され、第２の属性は、任意のデータオブジェクトのカラム属性にあり、且つ同じ属性とは異なるカラム属性であり、第２のプレフィックスは第１のプレフィックスとは異なる定数であり、且つ、任意のデータオブジェクトの副索引のフォーマットに従って、任意のデータオブジェクトの副索引を決定するように構成される。記憶モジュールは更に、任意のデータオブジェクトの副索引をＫｅｙＶａｌｕｅ式分散データベースに記憶するように構成される。
【００２０】
第２の態様又は第２の態様の第１〜第６の可能な実施形式のうちいずれかの可能な実施形式に関して、第７の可能な実施形式では、ロー識別子フォーマットのフィールド間、又は固定長を有するフィールド間に、セパレータが設定される。
【００２１】
上述の技術的解決策に基づき、本発明の実施形態におけるデータを記憶する方法及び装置では、複数のデータオブジェクトに対して相関クエリを実行できるように、同じカラム属性を含むロー識別子フォーマットを利用することにより、相関するデータオブジェクトがＫｅｙＶａｌｕｅ式分散データベースに記憶される。よって、データクエリ効率が改善される。
【図面の簡単な説明】
【００２２】
本発明の実施形態における技術的解決策をより明確に説明するために、以下、本発明の実施形態の説明に要する添付の図面を簡単に紹介する。当然ながら、以下の説明において、添付の図面は本発明の一部の実施形態を示すに過ぎない。当業者であれば、これらの添付の図面から創意工夫なく他の図面を更に導出できるであろう。
【図１】本発明の実施形態に係るデータを記憶する方法の概略フローチャートである。
【図２】本発明の実施形態に係るロー識別子フォーマットを決定する方法の概略フローチャートである。
【図３】本発明の別の実施形態に係るデータを記憶する方法の概略フローチャートである。
【図４】本発明の更に別の実施形態に係るデータを記憶する方法の概略フローチャートである。
【図５】本発明の実施形態に係るデータ記憶装置の概略ブロック図である。
【図６】本発明の別の実施形態に係るデータ記憶装置の概略ブロック図である。
【図７】本発明の実施形態に係るデータ記憶装置の概略構造図である。
【発明を実施するための形態】
【００２３】
以下、本発明の実施形態において添付の図面を参照して、本発明の実施形態における技術的解決策を明確且つ完全に説明する。当然ながら、説明される実施形態は本発明の実施形態の一部であり、全部ではない。当業者が本発明の実施形態に基づいて創意工夫なく得る他の実施形態は、全て本発明の保護範囲に包含されるものとする。
【００２４】
本発明の実施形態における技術的解決策は、ＫｅｙＶａｌｕｅ式分散データベースに適用されてよい。
【００２５】
本発明の実施形態では、データオブジェクトはデータテーブル（簡単にテーブルとも呼ばれる）又はデータテーブルフォーマットのデータである。例えば、データは、記録データ、ネットワークアクセス記録データ等と呼ばれてよい。説明を簡単にするために、以下の実施形態では、データテーブルを例に用いて説明する。
【００２６】
図１は、本発明の実施形態に係るデータを記憶する方法１００の概略フローチャートを示す。図１の方法はデータ記憶装置によって実行される。図１に示されるように、方法１００は以下のステップを有する。
【００２７】
Ｓ１１０：ＫｅｙＶａｌｕｅ式分散データベースに記憶されるべき少なくとも２つのデータオブジェクトの同じカラム属性を決定する。
【００２８】
Ｓ１２０：少なくとも２つのデータオブジェクトの各データオブジェクトのＫｅｙＶａｌｕｅ式分散データベースにおけるロー識別子のフォーマットを決定する。ロー識別子フォーマットは、同じカラム属性及びデータオブジェクト識別子を含む。少なくとも２つのデータオブジェクトのうち異なるデータオブジェクトのデータオブジェクト識別子は、ロー識別子フォーマット内の同じ位置にあり、且つ同じカラム属性の後に位置する。
【００２９】
Ｓ１３０：各データオブジェクトの決定されたロー識別子フォーマットに従って、各データオブジェクトの各データ記録のロー識別子値を決定する。
【００３０】
Ｓ１４０：ＫｅｙＶａｌｕｅ式分散データベースに、各データ記録のロー識別子値と各データ記録とを記憶する。各データ記録のロー識別子値は、各データ記録のＫｅｙＶａｌｕｅ式分散データベースにおける主索引として利用される。
【００３１】
本発明の本実施形態では、複数の（すなわち少なくとも２つ）のデータオブジェクトが相関するとき、すなわち複数のデータオブジェクトが同じカラム属性を有するとき、複数のデータオブジェクトに対する相関クエリを容易にするために、データ記憶装置は、ＫｅｙＶａｌｕｅ式分散データベースの１つのテーブルに複数のデータオブジェクトを記憶する。データ記憶装置は、同じカラム属性に基づいて、各データオブジェクトのＫｅｙＶａｌｕｅ式分散データベースにおけるロー識別子（例えばＲｏｗＫｅｙ）のフォーマットを決定する。ロー識別子フォーマットは、同じカラム属性及びデータオブジェクト識別子を含む。少なくとも２つのデータオブジェクトのうち異なるデータオブジェクトのデータオブジェクト識別子は、ロー識別子フォーマット内の同じ位置にあり、且つ同じカラム属性の後に位置する。すなわち、全てのデータオブジェクトのロー識別子フォーマットは、クエリを容易にするために同じカラム属性を有し、更に、異なるデータオブジェクトを区別すために、データオブジェクトに対応するデータオブジェクト識別子を有する。異なるデータオブジェクトのロー識別子フォーマットが一貫した構成になるように、異なるデータオブジェクトのデータオブジェクト識別子は、ロー識別子フォーマットの同じ位置にあり、且つ、同じカラム属性の後に位置する。そして、データ記憶装置は、決定されたロー識別子フォーマットに従って各データオブジェクトの各データ記録のロー識別子値を決定し、各データ記録のロー識別子値と各データ記録とをＫｅｙＶａｌｕｅ式分散データベースに記憶する。各データ記録のロー識別子値は、各データ記録のＫｅｙＶａｌｕｅ式分散データベースにおける主索引として利用される。複数の相関するデータオブジェクトについて一貫したロー識別子フォーマットが利用されるので、このように、データクエリの間、１つのデータテーブルにおいて複数のデータオブジェクトに対して相関クエリを実施できるように、ロー識別子フォーマットに従ってクエリ情報が構成される。よって、データクエリ効率が改善される。
【００３２】
したがって、本発明の本実施形態におけるデータを記憶する方法では、複数のデータオブジェクトに対して相関クエリを実施できるように、同じカラム属性を含むロー識別子フォーマットを利用して、相関するデータオブジェクトをＫｅｙＶａｌｕｅ式分散データベースに記憶する。よって、データクエリ効率が改善される。
【００３３】
留意すべきこととして、本発明の本実施形態では、ロー識別子は、データの各ローの識別子である。ロー識別子はＲｏｗＫｅｙ又はＫｅｙと表されてよく、本発明では限定されない。説明を簡単にするために、以下の実施形態では、ＲｏｗＫｅｙを例に用いて説明する。
【００３４】
以下、具体的な例を用いて本発明の本実施形態を詳述する。留意すべきこととして、この例は当業者が本発明の本実施形態をよりよく理解できるようにすることを目的とするに過ぎず、本発明の本実施形態の範囲を限定する目的はない。
【００３５】
Ｓ１１０では、データ記憶装置が、ＫｅｙＶａｌｕｅ式分散データベースに記憶されるべき少なくとも２つのデータオブジェクトの同じカラム属性を決定する。
【００３６】
複数のデータオブジェクトが同じカラム属性を有することは、複数のデータオブジェクトが相関することを意味する。
【００３７】
例えば、データオブジェクトＡについて、学生情報を記録するテーブル１を例に用いると、その属性情報は、名称（Ｎａｍｅ）、学生番号（ＩＤ）、性別（Ｓｅｘ）、学部（Ｄｅｐｔ）等のカラム（Ｃｏｌｕｍｎ）属性を含む。
【００３８】
【表１】
2018026158.tif 000003
【００３９】
データオブジェクトＢについて、学生カリキュラム可変情報を記録するテーブル２を例に用いると、その属性情報は、連番（Ｎｏ）、学生番号（ＩＤ）、課程（ｃｏｕｒｓｅ）等のカラム属性を含む。
【００４０】
【表２】
2018026158.tif 000004
【００４１】
テーブル１とテーブル２は両方ともＩＤカラムを有し、すなわち、テーブル１とテーブル２は同じカラム属性ＩＤを有する。したがって、テーブル１及びテーブル２は相関するデータオブジェクトである。
【００４２】
Ｓ１２０では、データ記憶装置は、少なくとも２つのデータオブジェクトの各データオブジェクトのＫｅｙＶａｌｕｅ式分散データベースにおけるロー識別子のフォーマットを決定する。
【００４３】
ロー識別子フォーマットは、同じカラム属性及びデータオブジェクト識別子を含む。少なくとも２つのデータオブジェクトのうち異なるデータオブジェクトのデータオブジェクト識別子は、ロー識別子フォーマット内の同じ位置にあり、且つ同じカラム属性の後に位置する。
【００４４】
具体的には、本発明の本実施形態では、データクエリ効率を改善するために、各データオブジェクトは独立したテーブルには記憶されず、代わりに、複数のデータオブジェクトが統一されたフォーマットに従って１つのテーブルに記憶され、それによって相関クエリが実施される。複数のデータオブジェクトを１つのテーブルに記憶するために、ロー識別子フォーマットが予め構成される必要がある。ＲｏｗＫｅｙフォーマットが予め設計される場合を例に用いると、すなわちＲｏｗＫｅｙがどの構成要素を含むかと、構成要素がどのように組み合わされるかが、予め指定される。本実施形態では、ロー識別子の構成要素は、少なくとも２つのデータオブジェクトの同じカラム属性とデータオブジェクト識別子とを含む。同じカラム属性は、少なくとも２つのデータオブジェクトを相関する方式で記憶するために用いられ、データオブジェクト識別子は、各ローのデータがどのデータオブジェクトに由来するかを示すのに用いられる。データオブジェクト識別子は同じカラム属性の後に位置し、全てのデータオブジェクトのデータオブジェクト識別子は、ロー識別子フォーマットの同じ位置に存在する。具体的には、異なるデータオブジェクトのデータオブジェクト識別子は、異なるデータオブジェクトを区別するために、異なる定数であってよい。
【００４５】
本発明の本実施形態では、任意に、図２に示されるように、Ｓ１２０は以下のステップを含む。
【００４６】
Ｓ１２１：少なくとも２つのデータオブジェクトに対して、ＫｅｙＶａｌｕｅ式分散データベース中のロー識別子の第１のプレフィックスを指定する。第１のプレフィックスは定数である。
【００４７】
Ｓ１２２：少なくとも２つのデータオブジェクト中の第１のデータオブジェクトのロー識別子フォーマットが、第１のプレフィックスと、同じカラム属性と、第１のデータオブジェクトのデータオブジェクト識別子とを含むことを決定する。或いは、
Ｓ１２３：少なくとも２つのデータオブジェクト中の第２のデータオブジェクトのロー識別子フォーマットが、第１のプレフィックスと、同じカラム属性と、第２のデータオブジェクトのデータオブジェクト識別子と、第２のデータオブジェクトのカラム属性のうち第２のデータオブジェクトの全てのデータ記録を区別できるカラム属性とを含むことを決定する。
【００４８】
具体的には、本実施形態では、ロー識別子は同じプレフィックス（第１のプレフィックスと表される）を含む。ＲｏｗＫｅｙを例にして用いると、ＲｏｗＫｅｙは以下のフォーマット、すなわち、
ＲｏｗＫｅｙ＝第１のプレフィックス＋同じカラム属性＋データオブジェクト識別子（＋別の属性）
である。
【００４９】
本実施形態では、異なるデータオブジェクトについて、ＲｏｗＫｅｙフォーマットは同じ第１のプレフィックスと同じ属性とを含む。このように、データ記録がＲｏｗキー値の順序で記憶される場合、異なるデータオブジェクトのデータ記録を隣接して記憶することができる（クラスター記憶と呼ばれる）。そして、異なるデータオブジェクトは、各データオブジェクトのデータオブジェクト識別子を用いて区別される。加えて、同じカラム属性がデータオブジェクト（第１のデータオブジェクトと表される）の全てのデータ記録を区別できる場合、例えば、テーブル１のＩＤ属性がテーブル１の全てのデータ記録を区別できる場合、第１のデータオブジェクトのＲｏｗＫｅｙフォーマットは別の属性を含まない。同じ属性がデータオブジェクト（第２のデータオブジェクトと表される）の全てのデータ記録を区別できない場合、例えば、テーブル２のＩＤ属性がテーブル２の全てのデータ記録を区別できない場合、第２のデータオブジェクトのＲｏｗＫｅｙフォーマットは更に、第２のデータオブジェクトの他のカラム属性のうち第２のデータオブジェクトの全てのデータ記録を区別できる属性、例えば、テーブル２のＮｏ属性を含む必要がある。
【００５０】
テーブル１とテーブル２を例として用いると、それらの同じカラム属性はＩＤである。テーブル１について、ＩＤはテーブル１の全てのデータ記録を区別することができる。したがって、テーブル１のＲｏｗＫｅｙフォーマットは、
Ａ（第１のプレフィックス）＋ＩＤ＋Ｍ（Ｍはテーブル１に対応するデータオブジェクト識別子である）
であってよい。
【００５１】
テーブル２について、ＩＤはテーブル２の全てのデータ記録を区別することができず、Ｎｏはテーブル２の全てのデータ記録を区別することができる。したがって、テーブル２のＲｏｗＫｅｙフォーマットは、
Ａ（第１のプレフィックス）＋ＩＤ＋Ｎ（Ｎはテーブル２に対応するデータオブジェクト識別子である）＋Ｎｏ
であってよい。
【００５２】
本発明の本実施形態では、任意に、ロー識別子フォーマットのフィールド間、又は固定長を有するフィールド間に、セパレータが設定される。
【００５３】
すなわち、上述のＲｏｗＫｅｙフォーマットの「＋」はセパレータであってよい。或いは、ＲｏｗＫｅｙフォーマットのフィールドは、固定長を有するように設定されてよい。この場合、「＋」は実際には存在しない。
【００５４】
Ｓ１３０では、データ記憶装置は、各データオブジェクトの決定されたロー識別子フォーマットに従って、各データオブジェクトの各データ記録のロー識別子値を決定する。
【００５５】
具体的には、ＲｏｗＫｅｙを例として用いると、データ記憶装置は、決定されたＲｏｗＫｅｙフォーマットに従って、各データオブジェクトの各データ記録のＲｏｗキー値を決定する。
【００５６】
例えば、データオブジェクトＡの第１のデータ記録について、Ｒｏｗキー値はＡ０００１Ｍであり、データオブジェクトＢの第１のデータ記録について、Ｒｏｗキー値はＡ０００１Ｎ１等である。
【００５７】
Ｓ１４０では、データ記憶装置は、各データ記録のロー識別子値と各データ記録とをＫｅｙＶａｌｕｅ式分散データベースに記憶する。
【００５８】
各データ記録のロー識別子値は、各データ記録のＫｅｙＶａｌｕｅ式分散データベースにおける主索引として利用される。
【００５９】
本発明の本実施形態では、任意に、図３に示されるように、方法１００は更に以下のステップを有する。
【００６０】
Ｓ１５０：少なくとも２つのデータオブジェクトの全てのデータ記録がクラスターテーブルを形成するように、全てのデータ記録のロー識別子値に対して、全てのデータ記録を第１の順序にソートする。
【００６１】
本発明の本実施形態では、複数のデータオブジェクトのデータ記録がクラスターテーブルを形成できるように、データ記録はロー識別子値の順序でＫｅｙＶａｌｕｅ式分散データベースに記憶される。このクラスターテーブル記憶方式では、ロー識別子値の範囲はパーティションに対応することができる。すなわち、データ記録のロー識別子値が範囲に属するとき、データ記録はこの範囲に対応するパーティション内にある。したがって、範囲に従うクエリをサポートすることができる。
【００６２】
第１の順序は辞書式順序であってよい。例えば、全てのデータ記録は、Ｒｏｗキー値の辞書式順序でＫｅｙＶａｌｕｅ式分散データベースに記憶されてよい。第１の順序は別の順序であってもよい。例えば大きさ順であってよく、すなわち、データ記録はＲｏｗキー値の大きさ順に連続して記憶されてよい。小さなＲｏｗキー値が大きなＲｏｗキー値の前に記憶されるか、又は、大きなＲｏｗキー値が小さなＲｏｗキー値の前に記憶される。本発明の本実施形態において、第１の順序は限定されない。説明を簡単にするために、以下の実施形態では、Ｒｏｗキー値の辞書式順序を例に用いて説明する。
【００６３】
テーブル１とテーブル２を例に用いて、Ｒｏｗキー値の辞書式順序でＫｅｙＶａｌｕｅ式分散データベースにおいて記憶が実行されると、テーブル３が得られる。
【００６４】
【表３】
2018026158.tif 000005
（斜線付きカラムは、現在のローのデータがカラムをもたず、記憶上のどの空間も占用しないことを示す。以下同様である。）
【００６５】
本発明の本実施形態におけるデータを記憶する方法を用いることにより、クラスターテーブルを形成するために、異なる相関するデータオブジェクトのデータ記録を隣接して記憶することができる。例えば、テーブル３の第１のデータ記録は元のテーブル１の第１の記録であり、テーブル３の第２〜第４の記録は元のテーブル２の第１〜第３の記録であり、これらのデータ記録は同じＩＤを有するので、隣接してＫｅｙＶａｌｕｅ式分散データベースに記憶される。隣接記憶により、データアクセス速度を向上することができ、クエリ効率を更に改善することができる。
【００６６】
以下、上述の記憶方法に従って得られたデータテーブルのクエリを行う実施方式を説明する。
【００６７】
本発明の本実施形態では、任意に、図４に示されるように、方法１００は更に以下のステップを有する。
【００６８】
Ｓ１６０：データリクエストを受信する。データリクエストは、少なくとも２つのデータオブジェクトのデータ記録をクエリ又は取得することを命令する。
【００６９】
Ｓ１７０：ロー識別子フォーマットに従って、ＫｅｙＶａｌｕｅ式分散データベースにおいてクエリを行うためのクエリ情報を構成する。クエリ情報は同じカラム属性を含む。
【００７０】
Ｓ１８０：クエリ情報に従って、その主索引がクエリ情報を含むデータ記録をＫｅｙＶａｌｕｅ式分散データベースからエクスポートする。
【００７１】
具体的には、データ記録をクエリ又は取得するためのデータリクエストが受信されるとき、データ記憶装置は、ロー識別子フォーマットに従ってクエリ情報を構成する。クエリ情報は同じカラム属性を含む必要がある。そして、データ記憶装置は、構成されたクエリ情報を用いてクエリを実行して、ＫｅｙＶａｌｕｅ式分散データベース中の、その主索引がクエリ情報を含むデータ記録を取得する。
【００７２】
任意に、ロー識別子フォーマットが第１のプレフィックスを含む場合、クエリ情報は第１のプレフィックス及び同じカラム属性を含む。
【００７３】
例えば、学生の学生番号（ＩＤ＝０００１）を用いて学生情報及び学生カリキュラム可変情報が取得される場合、クエリ情報：Ａ０００１が構成されてよい。学生番号（ＩＤ＝０００１）をもつ学生の学生情報及び学生カリキュラム可変情報は、範囲クエリによってテーブル３において取得することができる。取得されるクエリ結果はテーブル４に示される。クエリプロセスでは、１つのテーブルだけにクエリが実行されればよく、ユーザーデータの位置決めは１回だけ完了されればよい。学生情報と学生カリキュラム可変情報とが隣接して記憶されるので、高速のリターンを実現することができる。
【００７４】
【表４】
2018026158.tif 000006
【００７５】
したがって、本発明の本実施形態におけるデータを記憶する方法では、相関するデータオブジェクトを１つのデータテーブルにクラスターとして記憶できるように、同じカラム属性を含むロー識別子フォーマットを利用することにより、相関するデータオブジェクトがＫｅｙＶａｌｕｅ式分散データベースに記憶される。１つのデータテーブルにおいて相関クエリを実施することができ、よって、データクエリ効率が改善される。
【００７６】
本発明の本実施形態では、任意に、方法１００は更に以下のステップを有する。
【００７７】
少なくとも２つのデータオブジェクトのうち任意のデータオブジェクトのＫｅｙＶａｌｕｅ式分散データベースにおける副索引のフォーマットが、第２のプレフィックス、第２の属性及び同じカラム属性であることを決定する。第２の属性は、任意のデータオブジェクトのカラム属性にあり、且つ同じ属性とは異なるカラム属性である。第２のプレフィックスは、第１のプレフィックスとは異なる定数である。
【００７８】
任意のデータオブジェクトの副索引のフォーマットに従って、任意のデータオブジェクトの副索引を決定する。
【００７９】
ＫｅｙＶａｌｕｅ式分散データベースに任意のデータオブジェクトの副索引を記憶する。具体的には、複雑なクエリのシナリオを満足するために、データオブジェクトに対して副索引情報が構成されてよい。同じデータオブジェクトの主索引及び副索引のデータは同じテーブルに記憶されるが、異なるロー識別子フォーマットを用いて、同じテーブル内でのデータ分離を実現する。加えて、相関クエリは副索引情報を用いて完了されてよい。副索引のロー識別子フォーマットは、第２のプレフィックス、第２の属性及び同じ属性である。データ分離を実現するために、第２のプレフィックスは第１のプレフィックスとは異なる。第２の属性に従うクエリ情報の構成を容易にするために、第２の属性は、同じ属性とは異なる属性である。同じ属性は、主索引との相関に用いられる。
【００８０】
例えば、データオブジェクトテーブル１及びデータオブジェクトテーブル２がＫｅｙＶａｌｕｅ式分散データベースに記憶される場合、テーブル１の主索引ＲｏｗＫｅｙフォーマットはＡ＋ＩＤ＋Ｍであってよく、テーブル２の主索引ＲｏｗＫｅｙフォーマットはＡ＋ＩＤ＋Ｎ＋Ｎｏであってよく、テーブル１の副索引ＲｏｗＫｅｙフォーマットはＢ＋Ｎａｍｅ＋ＩＤであってよい。このように、Ｒｏｗキー値の辞書式順序でＫｅｙＶａｌｕｅ式分散データベースにおいて記憶が実行されると、テーブル５が得られる。
【００８１】
【表５】
2018026158.tif 000007
【００８２】
留意すべきこととして、副索引ＲｏｗＫｅｙに対応するカラムでは、個別の重大なカラム情報等のカラム情報が記憶されてもよく、本発明の本実施形態では限定されない。
【００８３】
学生名（Ｎａｍｅ＝張三）を用いて学生情報及び学生カリキュラム可変情報が取得される場合、クエリ情報：Ｂ張三が構成されてよい。完全な副索引ＲｏｗＫｅｙ情報：Ｂ張三０００１は、範囲クエリによってテーブル５において取得することができる。副索引ＲｏｗＫｅｙが解析されて、ＩＤ＝０００１が取得される。そして、クエリ情報：Ａ０００１が更に構成される。学生情報及び学生カリキュラム可変情報は、更なるクエリを実行することにより、テーブル５において取得することができる。これにより、ユーザーがＮａｍｅしか知らずＩＤが分からない場合に、ユーザーがクエリを実行するのに役立つ。
【００８４】
したがって、本発明の本実施形態におけるデータを記憶する方法では、ＫｅｙＶａｌｕｅ式分散データベースにデータオブジェクトの副索引が記憶され、より多様なクエリシナリオをユーザーに提供することができる。また、ユーザーによるクエリを容易にすることができ、よって、データクエリ効率が改善される。
【００８５】
本発明の本実施形態では、複数のデータオブジェクトのロー識別子フォーマットは別の方式で実現されてもよい。例えば、異なるデータオブジェクトのロー識別子フォーマットは、異なるプレフィックスを含んでよく、或いはプレフィックスを含まなくてもよい。
【００８６】
例えば、プレフィックスが用いられない場合、ＲｏｗＫｅｙは以下のフォーマット、
ＲｏｗＫｅｙ＝同じカラム属性＋データオブジェクト識別子（＋別の属性）
である。
【００８７】
異なるデータオブジェクトのデータ記録は同じカラム属性を用いて隣接して記憶することができ、異なるデータオブジェクトは、各データオブジェクトに対応するデータオブジェクト識別子を用いて区別される。加えて、同じカラム属性がデータオブジェクト（第１のデータオブジェクトと表される）の全てのデータ記録を区別できる場合、第１のデータオブジェクトのＲｏｗＫｅｙフォーマットは別の属性を含まない。同じカラム属性がデータオブジェクト（第２のデータオブジェクトと表される）の全てのデータ記録を区別できない場合、第２のデータオブジェクトのＲｏｗＫｅｙフォーマットは更に、第２のデータオブジェクトの他のカラム属性のうち第２のデータオブジェクトの全てのデータ記録を区別できる属性を含む必要がある。
【００８８】
テーブル１とテーブル２を例として用いると、それらの同じカラム属性はＩＤである。テーブル１について、ＩＤはテーブル１の全てのデータ記録を区別することができる。したがって、テーブル１のＲｏｗＫｅｙフォーマットは、
ＩＤ＋Ｍ
であってよい。
【００８９】
テーブル２について、ＩＤはテーブル２の全てのデータ記録を区別することができず、Ｎｏはテーブル２の全てのデータ記録を区別することができる。したがって、テーブル２のＲｏｗＫｅｙフォーマットは、
ＩＤ＋Ｎ＋Ｎｏ
であってよい。
【００９０】
このように、Ｒｏｗキー値の辞書式順序でＫｅｙＶａｌｕｅ式分散データベースにおいて記憶が実行されると、テーブル６が得られる。
【００９１】
【表６】
2018026158.tif 000008
【００９２】
学生の学生番号（ＩＤ＝０００１）を用いて学生情報及び学生カリキュラム可変情報が取得される場合、クエリ情報：０００１が構成されてよい。学生番号（ＩＤ＝０００１）をもつ学生の学生情報及び学生カリキュラム可変情報は、範囲クエリによって取得することができる。クエリプロセスでは、１つのテーブルだけにクエリが実行されればよく、ユーザーデータの位置決めは１回だけ完了されればよい。学生情報と学生カリキュラム可変情報とが隣接して記憶されるので、高速のリターンを実現することができる。
【００９３】
異なるデータオブジェクトに対して異なるプレフィックスが利用される場合、ＲｏｗＫｅｙは以下のフォーマット、
ＲｏｗＫｅｙ＝データオブジェクトに対応するプレフィックス）＋同じカラム属性（＋別の属性）
である。
【００９４】
異なるデータオブジェクトに対して異なるプレフィックスが用いられる場合、異なるデータオブジェクトが異なるパーティションに記憶されることが実現する。加えて、同じカラム属性がデータオブジェクト（第１のデータオブジェクトと表される）の全てのデータ記録を区別できる場合、第１のデータオブジェクトのＲｏｗＫｅｙフォーマットは別の属性を含まない。同じカラム属性がデータオブジェクト（第２のデータオブジェクトと表される）の全てのデータ記録を区別できない場合、第２のデータオブジェクトのＲｏｗＫｅｙフォーマットは更に、第２のデータオブジェクトの他のカラム属性のうち第２のデータオブジェクトの全てのデータ記録を区別できる属性を含む必要がある。
【００９５】
テーブル１とテーブル２を例として用いると、それらの同じカラム属性はＩＤである。テーブル１について、ＩＤはテーブル１の全てのデータ記録を区別することができる。したがって、テーブル１のＲｏｗＫｅｙフォーマットは、
Ａ＋ＩＤ
であってよい。
【００９６】
テーブル２について、ＩＤはテーブル２の全てのデータ記録を区別することができず、Ｎｏはテーブル２の全てのデータ記録を識別することができる。したがって、テーブル２のＲｏｗＫｅｙフォーマットは、
Ｂ＋ＩＤ＋Ｎｏ
であってよい。
【００９７】
このように、Ｒｏｗキー値の辞書式順序でＫｅｙＶａｌｕｅ式分散データベースにおいて記憶が実行されると、テーブル７が得られる。
【００９８】
【表７】
2018026158.tif 000009
【００９９】
異なるデータオブジェクトのＲｏｗＫｅｙフォーマットは異なるプレフィックスを含み、よって、異なるデータオブジェクトをＫｅｙＶａｌｕｅ式分散データベースの異なるパーティションに記憶することができる。
【０１００】
留意すべきこととして、本発明の様々な実施形態において、上述のプロセスの番号は実行順序を意味しない。プロセスの実行順序は、プロセスの機能及び内部論理に従って決定され、本発明の実施形態の実施プロセスに対する限定と解釈されるべきではない。
【０１０１】
本発明の本実施形態におけるデータを記憶する方法では、統一されたロー識別子フォーマットに従って、ＫｅｙＶａｌｕｅ式分散データベースの１つのデータテーブルに複数のデータオブジェクトが記憶される。よって、データベース上の管理が容易になり、データクエリ効率を改善することができる。
【０１０２】
以上、本発明の実施形態に係るデータを記憶する方法を詳細に説明した。以下、本発明の実施形態に係るデータ記憶装置を説明する。
【０１０３】
図５は、本発明の実施形態に係るデータ記憶装置５００の概略ブロック図を示す。図５に示されるように、装置５００は以下の要素を備える。
【０１０４】
決定モジュール５１０は、キー値（ＫｅｙＶａｌｕｅ）式分散データベースに記憶されるべき少なくとも２つのデータオブジェクトの同じカラム属性を決定し、少なくとも２つのデータオブジェクトの各データオブジェクトのＫｅｙＶａｌｕｅ式分散データベースにおけるロー識別子のフォーマットを決定するように構成される。ロー識別子フォーマットは、同じカラム属性及びデータオブジェクト識別子を含む。少なくとも２つのデータオブジェクトのうち異なるデータオブジェクトのデータオブジェクト識別子は、ロー識別子フォーマット内の同じ位置にあり、且つ同じカラム属性の後に位置する。また、決定モジュール５１０は、各データオブジェクトの決定されたロー識別子フォーマットに従って、各データオブジェクトの各データ記録のロー識別子値を決定するように構成される。
【０１０５】
記憶モジュール５２０は、ＫｅｙＶａｌｕｅ式分散データベースに、各データ記録のロー識別子値と各データ記録とを記憶するように構成される。各データ記録のロー識別子値は、各データ記録のＫｅｙＶａｌｕｅ式分散データベースにおける主索引として利用される。
【０１０６】
複数の（すなわち少なくとも２つの）データオブジェクトが相関するとき、すなわち複数のデータオブジェクトが同じカラム属性を有するとき、複数のデータオブジェクトに対する相関クエリを容易にするために、データ記憶装置５００は、ＫｅｙＶａｌｕｅ式分散データベースの１つのテーブルに複数のデータオブジェクトを記憶する。決定モジュール５１０は、同じカラム属性に基づいて、各データオブジェクトのＫｅｙＶａｌｕｅ式分散データベースにおけるロー識別子（例えばＲｏｗＫｅｙ）のフォーマットを決定する。ロー識別子フォーマットは、同じカラム属性及びデータオブジェクト識別子を含む。少なくとも２つのデータオブジェクトのうち異なるデータオブジェクトのデータオブジェクト識別子は、ロー識別子フォーマット内の同じ位置にあり、且つ同じカラム属性の後に位置する。すなわち、全てのデータオブジェクトのロー識別子フォーマットは、クエリを容易にするために同じカラム属性を有し、更に、異なるデータオブジェクトを区別するために、データオブジェクトに対応するデータオブジェクト識別子を有する。異なるデータオブジェクトのロー識別子フォーマットが一貫した構成になるように、異なるデータオブジェクトのデータオブジェクト識別子は、ロー識別子フォーマットの同じ位置にあり、同じカラム属性の後に位置する。そして、決定モジュール５１０は、決定されたロー識別子フォーマットに従って、各データオブジェクトの各データ記録のロー識別子値を決定する。記憶モジュール５２０は、各データ記録のロー識別子値と各データ記録とをＫｅｙＶａｌｕｅ式分散データベースに記憶する。各データ記録のロー識別子値は、各データ記録のＫｅｙＶａｌｕｅ式分散データベースにおける主索引として利用される。複数の相関するデータオブジェクトについて一貫したロー識別子フォーマットが利用されるので、このように、データクエリの間、１つのデータテーブルにおいて複数のデータオブジェクトに対して相関クエリを実施できるように、ロー識別子フォーマットに従ってクエリ情報が構成される。よって、データクエリ効率が改善される。
【０１０７】
したがって、本発明の本実施形態におけるデータ記憶装置では、複数のデータオブジェクトに対して相関クエリを実施できるように、同じカラム属性を含む複数のデータオブジェクトフォーマットを利用して、相関するデータオブジェクトがＫｅｙＶａｌｕｅ式分散データベースに記憶される。よって、データクエリ効率が改善される。
【０１０８】
本発明の本実施形態では、任意に、記憶モジュール５２０は更に、少なくとも２つのデータオブジェクトの全てのデータ記録がクラスターテーブルを形成するように、全てのデータ記録のロー識別子値に対して、全てのデータ記録を第１の順序にソートするように構成される。
【０１０９】
本発明の本実施形態では、任意に、第１の順序は辞書式順序である。
【０１１０】
本発明の本実施形態では、任意に、決定モジュール５１０は、具体的には、少なくとも２つのデータオブジェクトに対して、ＫｅｙＶａｌｕｅ式分散データベース中のロー識別子の第１のプレフィックスを指定するように構成され、第１のプレフィックスは定数であり、且つ、少なくとも２つのデータオブジェクト中の第１のデータオブジェクトのロー識別子フォーマットが、第１のプレフィックスと、同じカラム属性と、第１のデータオブジェクトのデータオブジェクト識別子とを含むことを決定するか、又は、少なくとも２つのデータオブジェクト中の第２のデータオブジェクトのロー識別子フォーマットが、第１のプレフィックスと、同じカラム属性と、第２のデータオブジェクトのデータオブジェクト識別子と、第２のデータオブジェクトのカラム属性のうち第２のデータオブジェクトの全てのデータ記録を区別できるカラム属性とを含むことを決定するように構成される。
【０１１１】
本発明の本実施形態では、任意に、図６に示されるように、装置５００は更に以下の要素を備える。
【０１１２】
受信モジュール５３０は、データリクエストを受信するように構成される。データリクエストは、少なくとも２つのデータオブジェクトのデータ記録をクエリ又は取得することを命令する。
【０１１３】
クエリモジュール５４０は、ロー識別子フォーマットに従って、ＫｅｙＶａｌｕｅ式分散データベースにおいてクエリを行うためのクエリ情報を構成するように構成され、クエリ情報は同じカラム属性を含み、且つ、クエリ情報に従って、その主索引がクエリ情報を含むデータ記録をＫｅｙＶａｌｕｅ式分散データベースからエクスポートするように構成される。
【０１１４】
任意に、ロー識別子フォーマットが第１のプレフィックスを含む場合、クエリ情報は第１のプレフィックス及び同じカラム属性を含む。
【０１１５】
本発明の本実施形態では、任意に、決定モジュール５１０は更に、少なくとも２つのデータオブジェクトのうち任意のデータオブジェクトのＫｅｙＶａｌｕｅ式分散データベースにおける副索引のフォーマットが、第２のプレフィックス、第２の属性及び同じカラム属性であることを決定するように構成され、第２の属性は、任意のデータオブジェクトのカラム属性にあり、且つ同じ属性とは異なるカラム属性であり、第２のプレフィックスは第１のプレフィックスとは異なる定数であり、且つ、任意のデータオブジェクトの副索引のフォーマットに従って、任意のデータオブジェクトの副索引を決定するように構成される。
【０１１６】
記憶モジュール５２０は更に、任意のデータオブジェクトの副索引をＫｅｙＶａｌｕｅ式分散データベースに記憶するように構成される。
【０１１７】
本発明の本実施形態におけるデータ記憶装置では、ＫｅｙＶａｌｕｅ式分散データベースにデータオブジェクトの副索引が記憶され、より多様なクエリシナリオをユーザーに提供することができる。また、ユーザーによるクエリを容易にすることができ、よって、データクエリ効率が改善される。
【０１１８】
本発明の本実施形態では、任意に、ロー識別子フォーマットのフィールド間、又は固定長を有するフィールド間に、セパレータが設定される。
【０１１９】
本発明の本実施形態に係るデータ記憶装置５００は、本発明の上述の実施形態に係る方法におけるデータ記憶装置に対応してよい。データ記憶装置５００のモジュールの上述及び他の動作及び／又は機能は、図１〜図４の方法の対応する手続きを実現するために、別々に実行される。簡単にするために、ここでは詳細の繰り返しを省略する。
【０１２０】
本発明の本実施形態におけるデータ記憶装置では、複数のデータオブジェクトが統一されたロー識別子フォーマットに従って、ＫｅｙＶａｌｕｅ式分散データベースの１つのデータテーブルに記憶される。よって、データベース上の管理が容易になり、データクエリ効率が改善される。
【０１２１】
図７は、本発明の別の実施形態に係るデータ記憶装置の構造を示す。データ記憶装置は、少なくとも１つのプロセッサ７０２（例えばＣＰＵ）と、少なくとも１つのネットワークインターフェース７０５又は別の通信インターフェースと、メモリ７０６と、これらの装置の接続及び通信を実現するように構成される少なくとも１つの通信バス７０３とを備える。プロセッサ７０２は、メモリ７０６に記憶されるコンピュータープログラム等の実行可能モジュールを実行するように構成される。メモリ７０６は、高速ランダムアクセスメモリ（ＲＡＭ：Random  Access  Memory）を含んでよく、更に、例えば少なくとも１つの磁気ディスク記憶装置等の不揮発性メモリ（non- volatile  memory）を含んでよい。少なくとも別のネットワーク要素との通信及び接続は、少なくとも１つのネットワークインターフェース７０５（有線であっても無線であってもよい）を用いて実現される。
【０１２２】
一部の実施方式では、メモリ７０６はプログラム７０６１を記憶する。プログラム７０６１はプロセッサ７０２によって実行されてよい。プログラムは、
ＫｅｙＶａｌｕｅ式分散データベースに記憶されるべき少なくとも２つのデータオブジェクトの同じカラム属性を決定するステップと、
少なくとも２つのデータオブジェクトの各データオブジェクトのＫｅｙＶａｌｕｅ式分散データベースにおけるロー識別子のフォーマットを決定するステップであって、ロー識別子フォーマットは同じカラム属性及びデータオブジェクト識別子を含み、少なくとも２つのデータオブジェクトのうち異なるデータオブジェクトのデータオブジェクト識別子は、ロー識別子フォーマット内の同じ位置にあり、且つ同じカラム属性の後に位置する、ステップと、
各データオブジェクトの決定されたロー識別子フォーマットに従って、各データオブジェクトの各データ記録のロー識別子値を決定するステップと、
ＫｅｙＶａｌｕｅ式分散データベースに、各データ記録のロー識別子値と各データ記録とを記憶するステップであって、各データ記録のロー識別子値は、各データ記録のＫｅｙＶａｌｕｅ式分散データベースにおける主索引として利用される、ステップと、
を有する。
【０１２３】
任意に、プログラムは更に、
少なくとも２つのデータオブジェクトの全てのデータ記録がクラスターテーブルを形成するように、全てのデータ記録のロー識別子値に対して、全てのデータ記録を第１の順序にソートするステップ、
を有する。
【０１２４】
任意に、第１の順序は辞書式順序である。
【０１２５】
任意に、プログラムは更に、
データリクエストを受信するステップであって、データリクエストは、少なくとも２つのデータオブジェクトのデータ記録をクエリ又は取得することを命令する、ステップと、
ロー識別子フォーマットに従って、ＫｅｙＶａｌｕｅ式分散データベースにおいてクエリを行うためのクエリ情報を構成するステップであって、クエリ情報は同じカラム属性を含む、ステップと、
クエリ情報に従って、その主索引がクエリ情報を含むデータ記録をＫｅｙＶａｌｕｅ式分散データベースからエクスポートするステップと、
を有する。
【０１２６】
任意に、少なくとも２つのデータオブジェクトの各データオブジェクトのＫｅｙＶａｌｕｅ式分散データベースにおけるロー識別子のフォーマットを決定するステップは、
少なくとも２つのデータオブジェクトに対して、ＫｅｙＶａｌｕｅ式分散データベース中のロー識別子の第１のプレフィックスを指定するステップであって、第１のプレフィックスは定数である、ステップと、
少なくとも２つのデータオブジェクト中の第１のデータオブジェクトのロー識別子フォーマットが、第１のプレフィックスと、同じカラム属性と、第１のデータオブジェクトのデータオブジェクト識別子とを含むことを決定するステップ、又は、
少なくとも２つのデータオブジェクト中の第２のデータオブジェクトのロー識別子フォーマットが、第１のプレフィックスと、同じカラム属性と、第２のデータオブジェクトのデータオブジェクト識別子と、第２のデータオブジェクトのカラム属性のうち第２のデータオブジェクトの全てのデータ記録を区別できるカラム属性とを含むことを決定するステップと、
を含む。
【０１２７】
任意に、クエリ情報は第１のプレフィックス及び同じカラム属性を含む。
【０１２８】
任意に、プログラムは更に、
少なくとも２つのデータオブジェクトのうち任意のデータオブジェクトのＫｅｙＶａｌｕｅ式分散データベースにおける副索引のフォーマットが、第２のプレフィックス、第２の属性及び同じカラム属性であることを決定するステップであって、第２の属性は、任意のデータオブジェクトのカラム属性にあり、且つ同じ属性とは異なるカラム属性であり、第２のプレフィックスは第１のプレフィックスとは異なる定数である、ステップと、
任意のデータオブジェクトの副索引のフォーマットに従って、任意のデータオブジェクトの副索引を決定するステップと、
任意のデータオブジェクトの副索引をＫｅｙＶａｌｕｅ式分散データベースに記憶するステップと、
を有する。
【０１２９】
任意に、ロー識別子フォーマットのフィールド間、又は固定長を有するフィールド間に、セパレータが設定される。
【０１３０】
本発明の実施形態で提供される上述の技術的解決策から分かるように、本発明の実施形態では、複数のデータオブジェクトに対して相関クエリを実行できるように、同じカラム属性を有する複数のデータオブジェクトフォーマットを用いて、ＫｅｙＶａｌｕｅ式分散データベースに相関するデータオブジェクトが記憶される。よって、データクエリ効率が改善される。
【０１３１】
留意すべきこととして、本発明の本実施形態において、用語「及び／又は」は、相関する対象を説明するための相関を説明するものに過ぎず、３つの関係が存在し得ることを示す。例えば、Ａ及び／又はＢは、Ａのみが存在するケースと、ＡとＢの両方が存在するケースと、Ｂのみが存在するケースとの３つのケースを示し得る。加えて、本明細書において、記号「／」は一般に、相関する対象間の「又は」の関係を示す。
【０１３２】
当業者であれば、本明細書に開示される実施形態に説明される例と組み合わせて、ユニット及びアルゴリズムステップが電子機器、コンピューターソフトウェア、又はそれらの組合わせによって実施されてよいことに気付くであろう。ハードウェアとソフトウェアとの互換性を明確に説明するために、上記では一般に、各例の要素及びステップを機能に従って説明した。機能がハードウェアによって実行されるかソフトウェアによって実行されるかは、技術的解決策の特定の応用と設計制約条件によって決まる。当業者であれば、特定の応用の各々について記載の機能を実施するために異なる方法を利用できるであろうが、実施は本発明の範囲を超えることを考慮されたい。
【０１３３】
当業者であれば、説明を簡便にするために、上述のシステム、装置及びユニットの動作プロセスの詳細については、上述の方法実施形態における対応するプロセスを参照できることが明らかに理解できるであろう。よって、詳細の説明は省略する。
【０１３４】
本願で提供されるいくつかの実施形態において、開示のシステム、装置及び方法は他の方式で実施されてよいことを理解されたい。例えば、記載の装置実施形態は例示に過ぎない。例えば、ユニットの分割は論理的な機能分割に過ぎず、実際の実施では他の分割であってよい。例えば、複数のユニット又はコンポーネントは別のシステムに組み合わせ又は統合されてよく、或いは、一部の特徴は省略されてよく、或いは実行されなくてよい。加えて、提示又は議論される相互結合又は直接結合又は通信接続は、いくつかのインターフェースによって実施されてよい。装置若しくはユニット間の間接的な結合又は通信接続は、電子的形式、機械的形式その他の形式で実施されてよい。
【０１３５】
別々の要素として記載されたユニットは物理的に別々であってもなくてもよい。ユニットとして示された要素は物理的なユニットであってもなくてもよく、且つ、１ヶ所に位置しても複数のネットワークユニット上に分散されてもよい。ユニットの一部又は全部は、本発明の実施形態の解決策の目的を達成するために、実際の要件に従って選択されてよい。
【０１３６】
加えて、本発明の実施形態における機能ユニットは１つの処理ユニットに統合されてよい。或いは、ユニットの各々は物理的に単独で存在してよく、或いは、２以上のユニットは１つのユニットに統合されてよい。統合されたユニットは、ハードウェア形式で実施されてよく、或いは、ソフトウェア機能ユニットの形式で実施されてよい。
【０１３７】
統合されたユニットがソフトウェア機能ユニットの形式で実施され、且つ、独立した製品として販売又は使用される場合、統合されたユニットはコンピューター可読記憶媒体に記憶されてよい。そのような理解に基づき、本発明の技術的解決策は本質的にソフトウェア製品の形式で実施されてよく、或いは、従来技術に寄与する部分又は技術的解決策の全部若しくは一部は、ソフトウェア製品の形式で実施されてよい。ソフトウェア製品は、記憶媒体に記憶され、且つ、コンピューター装置（パーソナルコンピューター、サーバー又はネットワーク装置であってよい）が本発明の実施形態に記載の方法のステップの全部又は一部を実行することを命令するためのいくつかの命令を含む。上述の記憶媒体はプログラムコードを記憶できる任意の媒体を含んでよく、例えば、ＵＳＢフラッシュドライブ、リムーバブルハードディスク、リードオンリーメモリ（ＲＯＭ、Read-Only  Memory）、ランダムアクセスメモリ（ＲＡＭ、Random  Access  Memory）、磁気ディスク、光ディスク等を含んでよい。
【０１３８】
上述の説明は本発明の具体的な実施方式に過ぎず、本発明の保護範囲を限定する意図はない。本発明に開示された技術的範囲内で当業者により容易に想到され得る変形又は置換は、いかなるものでも本発明の保護範囲に包含されるものとする。したがって、本発明の保護範囲は特許請求の範囲の保護範囲に従うものとする。
【図１】
2018026158.tif 000010
【図２】
2018026158.tif 000011
【図３】
2018026158.tif 000012
【図４】
2018026158.tif 000013
【図５】
2018026158.tif 000014
【図６】
2018026158.tif 000015
【図７】
2018026158.tif 000016
【外国語明細書】
2018026158000001.pdf