JP2018026158A - データを記憶する方法及び装置 - Google Patents

データを記憶する方法及び装置 Download PDF

Info

Publication number
JP2018026158A
JP2018026158A JP2017195364A JP2017195364A JP2018026158A JP 2018026158 A JP2018026158 A JP 2018026158A JP 2017195364 A JP2017195364 A JP 2017195364A JP 2017195364 A JP2017195364 A JP 2017195364A JP 2018026158 A JP2018026158 A JP 2018026158A
Authority
JP
Japan
Prior art keywords
data
data object
format
attribute
prefix
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2017195364A
Other languages
English (en)
Other versions
JP6397105B2 (ja
Inventor
杰山 ▲畢▼
杰山 ▲畢▼
Jieshan Bi
▲偉▼ 智
Wei Zhi
▲偉▼ 智
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to JP2017195364A priority Critical patent/JP6397105B2/ja
Publication of JP2018026158A publication Critical patent/JP2018026158A/ja
Application granted granted Critical
Publication of JP6397105B2 publication Critical patent/JP6397105B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】データクエリ効率を改善することができるデータ記憶方法を提供する。【解決手段】KeyValue式分散データベースに記憶されるべき少なくとも2つのデータオブジェクトの同じカラム属性を決定するステップと、少なくとも2つのデータオブジェクトの各データオブジェクトのKeyValue式分散データベースにおけるロー識別子のフォーマットを決定するステップと、各データオブジェクトの決定されたロー識別子フォーマットに従って、各データオブジェクトの各データ記録のロー識別子値を決定するステップと、KeyValue式分散データベースに、各データ記録のロー識別子値と各データ記録とを記憶するステップと、を有する。【選択図】図1

Description

本発明は情報技術分野に関し、特に、データを記憶する方法及び装置に関する。
分散カラム記憶データベースとして、キー値(KeyValue)式分散データベースは高いスケーラビリティとロバストネスをもち、ますます多くのシステムに幅広く適用されている。KeyValue式分散データベースのユーザーテーブルは、一般に、比較的単純なデータフォーマットで単純な相関をもつが量が膨大であるデータを記憶するように設計され、例えば、ウェブページアドレス情報の記憶、通話記録情報の記憶又はネットワークアクセス記録情報の記憶等のために設計される。KeyValue式分散データベースにより、データ記録のローキー(RowKey)による高速クエリが可能であり、高速クエリはデータ量に関係がない。現在の記憶スペース使用率が閾値に達した場合、KeyValue式分散データベースに対して動的に物理ノードを追加することができる。
企業が既存のデータベースを適用する場合、一般に、多くのユーザーデータテーブルが相関し、これらのデータテーブルは異なるサイズを有し、テーブルのデータ間に内部相関が存在する場合がある。しかしながら、スパースマトリックスに基づくKeyValue式分散データベースは、データ量の大きいテーブルを記憶するのに適している。これらの元のテーブルが直接的にKeyValue式分散データベースにインポートされると、非常に小さなテーブルが存在する。したがって、クロステーブル相関クエリを実施することが困難であり、管理の複雑性も増大してしまう。すなわち、1つのユーザーテーブルと別のユーザーテーブルとの間で相関クエリを完了するために、従来の適用においてデータがKeyValue式分散データベースに移行されると、異なるテーブルをクエリする必要があり、持続的にデータの位置決めを実行する必要があり、効率が低くなってしまう。
本発明の実施形態は、データクエリ効率を改善することのできる、データを記憶する方法及び装置を提供する。
第1の態様はデータを記憶する方法を提供する。本方法は、KeyValue式分散データベースに記憶されるべき少なくとも2つのデータオブジェクトの同じカラム属性を決定するステップと、少なくとも2つのデータオブジェクトの各データオブジェクトのKeyValue式分散データベースにおけるロー識別子のフォーマットを決定するステップであって、ロー識別子フォーマットは同じカラム属性及びデータオブジェクト識別子を含み、少なくとも2つのデータオブジェクトのうち異なるデータオブジェクトのデータオブジェクト識別子は、ロー識別子フォーマット内の同じ位置にあり、且つ同じカラム属性の後に位置する、ステップと、各データオブジェクトの決定されたロー識別子フォーマットに従って、各データオブジェクトの各データ記録のロー識別子値を決定するステップと、KeyValue式分散データベースに、各データ記録のロー識別子値と各データ記録とを記憶するステップであって、各データ記録のロー識別子値は、各データ記録のKeyValue式分散データベースにおける主索引として利用される、ステップと、を有する。
第1の可能な実施方式では、本方法は更に、全てのデータ記録のロー識別子値に対して、少なくとも2つのデータオブジェクトの全てのデータ記録がクラスターテーブルを形成するように、全てのデータ記録を第1の順序にソートするステップ、を有する。
第1の態様の第1の可能な実施形式に関して、第2の可能な実施形式では、第1の順序は辞書式順序である。
第1の態様又は第1の態様の第1若しくは第2の可能な実施形式に関して、第3の可能な実施形式では、本方法は更に、データリクエストを受信するステップであって、データリクエストは、少なくとも2つのデータオブジェクトのデータ記録をクエリ又は取得することを命令する、ステップと、ロー識別子フォーマットに従って、KeyValue式分散データベースにおいてクエリを行うためのクエリ情報を構成するステップであって、クエリ情報は同じカラム属性を含む、ステップと、クエリ情報に従って、その主索引がクエリ情報を含むデータ記録をKeyValue式分散データベースからエクスポートするステップと、を有する。
第1の態様又は第1の態様の第1〜第3の可能な実施形式のうちいずれかの可能な実施形式に関して、第4の可能な実施形式では、少なくとも2つのデータオブジェクトの各データオブジェクトのKeyValue式分散データベースにおけるロー識別子のフォーマットを決定するステップは、少なくとも2つのデータオブジェクトに対して、KeyValue式分散データベース中のロー識別子の第1のプレフィックスを指定するステップであって、第1のプレフィックスは定数である、ステップと、少なくとも2つのデータオブジェクト中の第1のデータオブジェクトのロー識別子フォーマットが、第1のプレフィックスと、同じカラム属性と、第1のデータオブジェクトのデータオブジェクト識別子とを含むことを決定するステップか、又は、少なくとも2つのデータオブジェクト中の第2のデータオブジェクトのロー識別子フォーマットが、第1のプレフィックスと、同じカラム属性と、第2のデータオブジェクトのデータオブジェクト識別子と、第2のデータオブジェクトのカラム属性のうち第2のデータオブジェクトの全てのデータ記録を区別できるカラム属性とを含むことを決定するステップと、を含む。
第1の態様の第4の可能な実施形式に関して、第5の可能な実施形式では、クエリ情報は第1のプレフィックス及び同じカラム属性を含む。
第1の態様の第4又は第5の可能な実施形式に関して、第6の可能な実施形式では、本方法は更に、少なくとも2つのデータオブジェクトのうち任意のデータオブジェクトのKeyValue式分散データベースにおける副索引のフォーマットが第2のプレフィックス、第2の属性及び同じカラム属性であることを決定するステップであって、第2の属性は、任意のデータオブジェクトのカラム属性にあり、且つ同じ属性とは異なるカラム属性であり、第2のプレフィックスは第1のプレフィックスとは異なる定数である、ステップと、任意のデータオブジェクトの副索引のフォーマットに従って、任意のデータオブジェクトの副索引を決定するステップと、任意のデータオブジェクトの副索引を、KeyValue式分散データベースに記憶するステップと、を有する。
第1の態様又は第1の態様の第1〜第6の可能な実施形式のうちいずれかの可能な実施形式に関して、第7の可能な実施形式では、ロー識別子フォーマットのフィールド間、又は固定長を有するフィールド間に、セパレータが設定される。
第2の態様はデータ記憶装置を提供する。本データ記憶装置は、キー値(KeyValue)式分散データベースに記憶されるべき少なくとも2つのデータオブジェクトの同じカラム属性を決定するように構成され、少なくとも2つのデータオブジェクトの各データオブジェクトのKeyValue式分散データベースにおけるロー識別子のフォーマットを決定するように構成され、ロー識別子フォーマットは同じカラム属性及びデータオブジェクト識別子を含み、少なくとも2つのデータオブジェクトのうち異なるデータオブジェクトのデータオブジェクト識別子は、ロー識別子フォーマット内の同じ位置にあり、且つ同じカラム属性の後にあり、各データオブジェクトの決定されたロー識別子フォーマットに従って、各データオブジェクトの各データ記録のロー識別子値を決定するように構成される決定モジュールと、KeyValue式分散データベースに、各データ記録のロー識別子値と各データ記録とを記憶するように構成される記憶モジュールであって、各データ記録のロー識別子値は、各データ記録のKeyValue式分散データベースにおける主索引として利用される、記憶モジュールと、を備える。
第1の可能な実施方式では、記憶モジュールは更に、全てのデータ記録のロー識別子値に対して、少なくとも2つのデータオブジェクトの全てのデータ記録がクラスターテーブルを形成するように、全てのデータ記録を第1の順序にソートするように構成される。
第2の態様の第1の可能な実施形式に関して、第2の可能な実施形式では、第1の順序は辞書式順序である。
第2の態様又は第2の態様の第1若しくは第2の可能な実施形式に関して、第3の可能な実施形式では、本装置は更に、データリクエストを受信するように構成される受信モジュールであって、データリクエストは、少なくとも2つのデータオブジェクトのデータ記録をクエリ又は取得することを命令する、受信モジュールと、ロー識別子フォーマットに従って、KeyValue式分散データベースにおいてクエリを行うためのクエリ情報を構成するように構成され、クエリ情報は同じカラム属性を含み、且つ、クエリ情報に従って、その主索引がクエリ情報を含むデータ記録をKeyValue式分散データベースからエクスポートするように構成されるクエリモジュールと、を備える。
第2の態様又は第2の態様の第1〜第3の可能な実施形式のうちいずれかの可能な実施形式に関して、第4の可能な実施形式では、決定モジュールは、特に、少なくとも2つのデータオブジェクトに対して、KeyValue式分散データベース中のロー識別子の第1のプレフィックスを指定するように構成され、第1のプレフィックスは定数であり、且つ、少なくとも2つのデータオブジェクト中の第1のデータオブジェクトのロー識別子フォーマットが、第1のプレフィックスと、同じカラム属性と、第1のデータオブジェクトのデータオブジェクト識別子とを含むことを決定するか、又は、少なくとも2つのデータオブジェクト中の第2のデータオブジェクトのロー識別子フォーマットが、第1のプレフィックスと、同じカラム属性と、第2のデータオブジェクトのデータオブジェクト識別子と、第2のデータオブジェクトのカラム属性のうち第2のデータオブジェクトの全てのデータ記録を区別できるカラム属性とを含むことを決定するように構成される。
第2の態様の第4の可能な実施形式に関して、第5の可能な実施形式では、クエリ情報は第1のプレフィックス及び同じカラム属性を含む。
第2の態様の第4又は第5の可能な実施形式に関して、第6の可能な実施形式では、決定モジュールは更に、少なくとも2つのデータオブジェクトのうち任意のデータオブジェクトのKeyValue式分散データベースにおける副索引のフォーマットが、第2のプレフィックス、第2の属性及び同じカラム属性であることを決定するように構成され、第2の属性は、任意のデータオブジェクトのカラム属性にあり、且つ同じ属性とは異なるカラム属性であり、第2のプレフィックスは第1のプレフィックスとは異なる定数であり、且つ、任意のデータオブジェクトの副索引のフォーマットに従って、任意のデータオブジェクトの副索引を決定するように構成される。記憶モジュールは更に、任意のデータオブジェクトの副索引をKeyValue式分散データベースに記憶するように構成される。
第2の態様又は第2の態様の第1〜第6の可能な実施形式のうちいずれかの可能な実施形式に関して、第7の可能な実施形式では、ロー識別子フォーマットのフィールド間、又は固定長を有するフィールド間に、セパレータが設定される。
上述の技術的解決策に基づき、本発明の実施形態におけるデータを記憶する方法及び装置では、複数のデータオブジェクトに対して相関クエリを実行できるように、同じカラム属性を含むロー識別子フォーマットを利用することにより、相関するデータオブジェクトがKeyValue式分散データベースに記憶される。よって、データクエリ効率が改善される。
本発明の実施形態における技術的解決策をより明確に説明するために、以下、本発明の実施形態の説明に要する添付の図面を簡単に紹介する。当然ながら、以下の説明において、添付の図面は本発明の一部の実施形態を示すに過ぎない。当業者であれば、これらの添付の図面から創意工夫なく他の図面を更に導出できるであろう。
本発明の実施形態に係るデータを記憶する方法の概略フローチャートである。 本発明の実施形態に係るロー識別子フォーマットを決定する方法の概略フローチャートである。 本発明の別の実施形態に係るデータを記憶する方法の概略フローチャートである。 本発明の更に別の実施形態に係るデータを記憶する方法の概略フローチャートである。 本発明の実施形態に係るデータ記憶装置の概略ブロック図である。 本発明の別の実施形態に係るデータ記憶装置の概略ブロック図である。 本発明の実施形態に係るデータ記憶装置の概略構造図である。
以下、本発明の実施形態において添付の図面を参照して、本発明の実施形態における技術的解決策を明確且つ完全に説明する。当然ながら、説明される実施形態は本発明の実施形態の一部であり、全部ではない。当業者が本発明の実施形態に基づいて創意工夫なく得る他の実施形態は、全て本発明の保護範囲に包含されるものとする。
本発明の実施形態における技術的解決策は、KeyValue式分散データベースに適用されてよい。
本発明の実施形態では、データオブジェクトはデータテーブル(簡単にテーブルとも呼ばれる)又はデータテーブルフォーマットのデータである。例えば、データは、記録データ、ネットワークアクセス記録データ等と呼ばれてよい。説明を簡単にするために、以下の実施形態では、データテーブルを例に用いて説明する。
図1は、本発明の実施形態に係るデータを記憶する方法100の概略フローチャートを示す。図1の方法はデータ記憶装置によって実行される。図1に示されるように、方法100は以下のステップを有する。
S110:KeyValue式分散データベースに記憶されるべき少なくとも2つのデータオブジェクトの同じカラム属性を決定する。
S120:少なくとも2つのデータオブジェクトの各データオブジェクトのKeyValue式分散データベースにおけるロー識別子のフォーマットを決定する。ロー識別子フォーマットは、同じカラム属性及びデータオブジェクト識別子を含む。少なくとも2つのデータオブジェクトのうち異なるデータオブジェクトのデータオブジェクト識別子は、ロー識別子フォーマット内の同じ位置にあり、且つ同じカラム属性の後に位置する。
S130:各データオブジェクトの決定されたロー識別子フォーマットに従って、各データオブジェクトの各データ記録のロー識別子値を決定する。
S140:KeyValue式分散データベースに、各データ記録のロー識別子値と各データ記録とを記憶する。各データ記録のロー識別子値は、各データ記録のKeyValue式分散データベースにおける主索引として利用される。
本発明の本実施形態では、複数の(すなわち少なくとも2つ)のデータオブジェクトが相関するとき、すなわち複数のデータオブジェクトが同じカラム属性を有するとき、複数のデータオブジェクトに対する相関クエリを容易にするために、データ記憶装置は、KeyValue式分散データベースの1つのテーブルに複数のデータオブジェクトを記憶する。データ記憶装置は、同じカラム属性に基づいて、各データオブジェクトのKeyValue式分散データベースにおけるロー識別子(例えばRowKey)のフォーマットを決定する。ロー識別子フォーマットは、同じカラム属性及びデータオブジェクト識別子を含む。少なくとも2つのデータオブジェクトのうち異なるデータオブジェクトのデータオブジェクト識別子は、ロー識別子フォーマット内の同じ位置にあり、且つ同じカラム属性の後に位置する。すなわち、全てのデータオブジェクトのロー識別子フォーマットは、クエリを容易にするために同じカラム属性を有し、更に、異なるデータオブジェクトを区別すために、データオブジェクトに対応するデータオブジェクト識別子を有する。異なるデータオブジェクトのロー識別子フォーマットが一貫した構成になるように、異なるデータオブジェクトのデータオブジェクト識別子は、ロー識別子フォーマットの同じ位置にあり、且つ、同じカラム属性の後に位置する。そして、データ記憶装置は、決定されたロー識別子フォーマットに従って各データオブジェクトの各データ記録のロー識別子値を決定し、各データ記録のロー識別子値と各データ記録とをKeyValue式分散データベースに記憶する。各データ記録のロー識別子値は、各データ記録のKeyValue式分散データベースにおける主索引として利用される。複数の相関するデータオブジェクトについて一貫したロー識別子フォーマットが利用されるので、このように、データクエリの間、1つのデータテーブルにおいて複数のデータオブジェクトに対して相関クエリを実施できるように、ロー識別子フォーマットに従ってクエリ情報が構成される。よって、データクエリ効率が改善される。
したがって、本発明の本実施形態におけるデータを記憶する方法では、複数のデータオブジェクトに対して相関クエリを実施できるように、同じカラム属性を含むロー識別子フォーマットを利用して、相関するデータオブジェクトをKeyValue式分散データベースに記憶する。よって、データクエリ効率が改善される。
留意すべきこととして、本発明の本実施形態では、ロー識別子は、データの各ローの識別子である。ロー識別子はRowKey又はKeyと表されてよく、本発明では限定されない。説明を簡単にするために、以下の実施形態では、RowKeyを例に用いて説明する。
以下、具体的な例を用いて本発明の本実施形態を詳述する。留意すべきこととして、この例は当業者が本発明の本実施形態をよりよく理解できるようにすることを目的とするに過ぎず、本発明の本実施形態の範囲を限定する目的はない。
S110では、データ記憶装置が、KeyValue式分散データベースに記憶されるべき少なくとも2つのデータオブジェクトの同じカラム属性を決定する。
複数のデータオブジェクトが同じカラム属性を有することは、複数のデータオブジェクトが相関することを意味する。
例えば、データオブジェクトAについて、学生情報を記録するテーブル1を例に用いると、その属性情報は、名称(Name)、学生番号(ID)、性別(Sex)、学部(Dept)等のカラム(Column)属性を含む。
Figure 2018026158
データオブジェクトBについて、学生カリキュラム可変情報を記録するテーブル2を例に用いると、その属性情報は、連番(No)、学生番号(ID)、課程(course)等のカラム属性を含む。
Figure 2018026158
テーブル1とテーブル2は両方ともIDカラムを有し、すなわち、テーブル1とテーブル2は同じカラム属性IDを有する。したがって、テーブル1及びテーブル2は相関するデータオブジェクトである。
S120では、データ記憶装置は、少なくとも2つのデータオブジェクトの各データオブジェクトのKeyValue式分散データベースにおけるロー識別子のフォーマットを決定する。
ロー識別子フォーマットは、同じカラム属性及びデータオブジェクト識別子を含む。少なくとも2つのデータオブジェクトのうち異なるデータオブジェクトのデータオブジェクト識別子は、ロー識別子フォーマット内の同じ位置にあり、且つ同じカラム属性の後に位置する。
具体的には、本発明の本実施形態では、データクエリ効率を改善するために、各データオブジェクトは独立したテーブルには記憶されず、代わりに、複数のデータオブジェクトが統一されたフォーマットに従って1つのテーブルに記憶され、それによって相関クエリが実施される。複数のデータオブジェクトを1つのテーブルに記憶するために、ロー識別子フォーマットが予め構成される必要がある。RowKeyフォーマットが予め設計される場合を例に用いると、すなわちRowKeyがどの構成要素を含むかと、構成要素がどのように組み合わされるかが、予め指定される。本実施形態では、ロー識別子の構成要素は、少なくとも2つのデータオブジェクトの同じカラム属性とデータオブジェクト識別子とを含む。同じカラム属性は、少なくとも2つのデータオブジェクトを相関する方式で記憶するために用いられ、データオブジェクト識別子は、各ローのデータがどのデータオブジェクトに由来するかを示すのに用いられる。データオブジェクト識別子は同じカラム属性の後に位置し、全てのデータオブジェクトのデータオブジェクト識別子は、ロー識別子フォーマットの同じ位置に存在する。具体的には、異なるデータオブジェクトのデータオブジェクト識別子は、異なるデータオブジェクトを区別するために、異なる定数であってよい。
本発明の本実施形態では、任意に、図2に示されるように、S120は以下のステップを含む。
S121:少なくとも2つのデータオブジェクトに対して、KeyValue式分散データベース中のロー識別子の第1のプレフィックスを指定する。第1のプレフィックスは定数である。
S122:少なくとも2つのデータオブジェクト中の第1のデータオブジェクトのロー識別子フォーマットが、第1のプレフィックスと、同じカラム属性と、第1のデータオブジェクトのデータオブジェクト識別子とを含むことを決定する。或いは、
S123:少なくとも2つのデータオブジェクト中の第2のデータオブジェクトのロー識別子フォーマットが、第1のプレフィックスと、同じカラム属性と、第2のデータオブジェクトのデータオブジェクト識別子と、第2のデータオブジェクトのカラム属性のうち第2のデータオブジェクトの全てのデータ記録を区別できるカラム属性とを含むことを決定する。
具体的には、本実施形態では、ロー識別子は同じプレフィックス(第1のプレフィックスと表される)を含む。RowKeyを例にして用いると、RowKeyは以下のフォーマット、すなわち、
RowKey=第1のプレフィックス+同じカラム属性+データオブジェクト識別子(+別の属性)
である。
本実施形態では、異なるデータオブジェクトについて、RowKeyフォーマットは同じ第1のプレフィックスと同じ属性とを含む。このように、データ記録がRowキー値の順序で記憶される場合、異なるデータオブジェクトのデータ記録を隣接して記憶することができる(クラスター記憶と呼ばれる)。そして、異なるデータオブジェクトは、各データオブジェクトのデータオブジェクト識別子を用いて区別される。加えて、同じカラム属性がデータオブジェクト(第1のデータオブジェクトと表される)の全てのデータ記録を区別できる場合、例えば、テーブル1のID属性がテーブル1の全てのデータ記録を区別できる場合、第1のデータオブジェクトのRowKeyフォーマットは別の属性を含まない。同じ属性がデータオブジェクト(第2のデータオブジェクトと表される)の全てのデータ記録を区別できない場合、例えば、テーブル2のID属性がテーブル2の全てのデータ記録を区別できない場合、第2のデータオブジェクトのRowKeyフォーマットは更に、第2のデータオブジェクトの他のカラム属性のうち第2のデータオブジェクトの全てのデータ記録を区別できる属性、例えば、テーブル2のNo属性を含む必要がある。
テーブル1とテーブル2を例として用いると、それらの同じカラム属性はIDである。テーブル1について、IDはテーブル1の全てのデータ記録を区別することができる。したがって、テーブル1のRowKeyフォーマットは、
A(第1のプレフィックス)+ID+M(Mはテーブル1に対応するデータオブジェクト識別子である)
であってよい。
テーブル2について、IDはテーブル2の全てのデータ記録を区別することができず、Noはテーブル2の全てのデータ記録を区別することができる。したがって、テーブル2のRowKeyフォーマットは、
A(第1のプレフィックス)+ID+N(Nはテーブル2に対応するデータオブジェクト識別子である)+No
であってよい。
本発明の本実施形態では、任意に、ロー識別子フォーマットのフィールド間、又は固定長を有するフィールド間に、セパレータが設定される。
すなわち、上述のRowKeyフォーマットの「+」はセパレータであってよい。或いは、RowKeyフォーマットのフィールドは、固定長を有するように設定されてよい。この場合、「+」は実際には存在しない。
S130では、データ記憶装置は、各データオブジェクトの決定されたロー識別子フォーマットに従って、各データオブジェクトの各データ記録のロー識別子値を決定する。
具体的には、RowKeyを例として用いると、データ記憶装置は、決定されたRowKeyフォーマットに従って、各データオブジェクトの各データ記録のRowキー値を決定する。
例えば、データオブジェクトAの第1のデータ記録について、Rowキー値はA0001Mであり、データオブジェクトBの第1のデータ記録について、Rowキー値はA0001N1等である。
S140では、データ記憶装置は、各データ記録のロー識別子値と各データ記録とをKeyValue式分散データベースに記憶する。
各データ記録のロー識別子値は、各データ記録のKeyValue式分散データベースにおける主索引として利用される。
本発明の本実施形態では、任意に、図3に示されるように、方法100は更に以下のステップを有する。
S150:少なくとも2つのデータオブジェクトの全てのデータ記録がクラスターテーブルを形成するように、全てのデータ記録のロー識別子値に対して、全てのデータ記録を第1の順序にソートする。
本発明の本実施形態では、複数のデータオブジェクトのデータ記録がクラスターテーブルを形成できるように、データ記録はロー識別子値の順序でKeyValue式分散データベースに記憶される。このクラスターテーブル記憶方式では、ロー識別子値の範囲はパーティションに対応することができる。すなわち、データ記録のロー識別子値が範囲に属するとき、データ記録はこの範囲に対応するパーティション内にある。したがって、範囲に従うクエリをサポートすることができる。
第1の順序は辞書式順序であってよい。例えば、全てのデータ記録は、Rowキー値の辞書式順序でKeyValue式分散データベースに記憶されてよい。第1の順序は別の順序であってもよい。例えば大きさ順であってよく、すなわち、データ記録はRowキー値の大きさ順に連続して記憶されてよい。小さなRowキー値が大きなRowキー値の前に記憶されるか、又は、大きなRowキー値が小さなRowキー値の前に記憶される。本発明の本実施形態において、第1の順序は限定されない。説明を簡単にするために、以下の実施形態では、Rowキー値の辞書式順序を例に用いて説明する。
テーブル1とテーブル2を例に用いて、Rowキー値の辞書式順序でKeyValue式分散データベースにおいて記憶が実行されると、テーブル3が得られる。
Figure 2018026158
(斜線付きカラムは、現在のローのデータがカラムをもたず、記憶上のどの空間も占用しないことを示す。以下同様である。)
本発明の本実施形態におけるデータを記憶する方法を用いることにより、クラスターテーブルを形成するために、異なる相関するデータオブジェクトのデータ記録を隣接して記憶することができる。例えば、テーブル3の第1のデータ記録は元のテーブル1の第1の記録であり、テーブル3の第2〜第4の記録は元のテーブル2の第1〜第3の記録であり、これらのデータ記録は同じIDを有するので、隣接してKeyValue式分散データベースに記憶される。隣接記憶により、データアクセス速度を向上することができ、クエリ効率を更に改善することができる。
以下、上述の記憶方法に従って得られたデータテーブルのクエリを行う実施方式を説明する。
本発明の本実施形態では、任意に、図4に示されるように、方法100は更に以下のステップを有する。
S160:データリクエストを受信する。データリクエストは、少なくとも2つのデータオブジェクトのデータ記録をクエリ又は取得することを命令する。
S170:ロー識別子フォーマットに従って、KeyValue式分散データベースにおいてクエリを行うためのクエリ情報を構成する。クエリ情報は同じカラム属性を含む。
S180:クエリ情報に従って、その主索引がクエリ情報を含むデータ記録をKeyValue式分散データベースからエクスポートする。
具体的には、データ記録をクエリ又は取得するためのデータリクエストが受信されるとき、データ記憶装置は、ロー識別子フォーマットに従ってクエリ情報を構成する。クエリ情報は同じカラム属性を含む必要がある。そして、データ記憶装置は、構成されたクエリ情報を用いてクエリを実行して、KeyValue式分散データベース中の、その主索引がクエリ情報を含むデータ記録を取得する。
任意に、ロー識別子フォーマットが第1のプレフィックスを含む場合、クエリ情報は第1のプレフィックス及び同じカラム属性を含む。
例えば、学生の学生番号(ID=0001)を用いて学生情報及び学生カリキュラム可変情報が取得される場合、クエリ情報:A0001が構成されてよい。学生番号(ID=0001)をもつ学生の学生情報及び学生カリキュラム可変情報は、範囲クエリによってテーブル3において取得することができる。取得されるクエリ結果はテーブル4に示される。クエリプロセスでは、1つのテーブルだけにクエリが実行されればよく、ユーザーデータの位置決めは1回だけ完了されればよい。学生情報と学生カリキュラム可変情報とが隣接して記憶されるので、高速のリターンを実現することができる。
Figure 2018026158
したがって、本発明の本実施形態におけるデータを記憶する方法では、相関するデータオブジェクトを1つのデータテーブルにクラスターとして記憶できるように、同じカラム属性を含むロー識別子フォーマットを利用することにより、相関するデータオブジェクトがKeyValue式分散データベースに記憶される。1つのデータテーブルにおいて相関クエリを実施することができ、よって、データクエリ効率が改善される。
本発明の本実施形態では、任意に、方法100は更に以下のステップを有する。
少なくとも2つのデータオブジェクトのうち任意のデータオブジェクトのKeyValue式分散データベースにおける副索引のフォーマットが、第2のプレフィックス、第2の属性及び同じカラム属性であることを決定する。第2の属性は、任意のデータオブジェクトのカラム属性にあり、且つ同じ属性とは異なるカラム属性である。第2のプレフィックスは、第1のプレフィックスとは異なる定数である。
任意のデータオブジェクトの副索引のフォーマットに従って、任意のデータオブジェクトの副索引を決定する。
KeyValue式分散データベースに任意のデータオブジェクトの副索引を記憶する。具体的には、複雑なクエリのシナリオを満足するために、データオブジェクトに対して副索引情報が構成されてよい。同じデータオブジェクトの主索引及び副索引のデータは同じテーブルに記憶されるが、異なるロー識別子フォーマットを用いて、同じテーブル内でのデータ分離を実現する。加えて、相関クエリは副索引情報を用いて完了されてよい。副索引のロー識別子フォーマットは、第2のプレフィックス、第2の属性及び同じ属性である。データ分離を実現するために、第2のプレフィックスは第1のプレフィックスとは異なる。第2の属性に従うクエリ情報の構成を容易にするために、第2の属性は、同じ属性とは異なる属性である。同じ属性は、主索引との相関に用いられる。
例えば、データオブジェクトテーブル1及びデータオブジェクトテーブル2がKeyValue式分散データベースに記憶される場合、テーブル1の主索引RowKeyフォーマットはA+ID+Mであってよく、テーブル2の主索引RowKeyフォーマットはA+ID+N+Noであってよく、テーブル1の副索引RowKeyフォーマットはB+Name+IDであってよい。このように、Rowキー値の辞書式順序でKeyValue式分散データベースにおいて記憶が実行されると、テーブル5が得られる。
Figure 2018026158
留意すべきこととして、副索引RowKeyに対応するカラムでは、個別の重大なカラム情報等のカラム情報が記憶されてもよく、本発明の本実施形態では限定されない。
学生名(Name=張三)を用いて学生情報及び学生カリキュラム可変情報が取得される場合、クエリ情報:B張三が構成されてよい。完全な副索引RowKey情報:B張三0001は、範囲クエリによってテーブル5において取得することができる。副索引RowKeyが解析されて、ID=0001が取得される。そして、クエリ情報:A0001が更に構成される。学生情報及び学生カリキュラム可変情報は、更なるクエリを実行することにより、テーブル5において取得することができる。これにより、ユーザーがNameしか知らずIDが分からない場合に、ユーザーがクエリを実行するのに役立つ。
したがって、本発明の本実施形態におけるデータを記憶する方法では、KeyValue式分散データベースにデータオブジェクトの副索引が記憶され、より多様なクエリシナリオをユーザーに提供することができる。また、ユーザーによるクエリを容易にすることができ、よって、データクエリ効率が改善される。
本発明の本実施形態では、複数のデータオブジェクトのロー識別子フォーマットは別の方式で実現されてもよい。例えば、異なるデータオブジェクトのロー識別子フォーマットは、異なるプレフィックスを含んでよく、或いはプレフィックスを含まなくてもよい。
例えば、プレフィックスが用いられない場合、RowKeyは以下のフォーマット、
RowKey=同じカラム属性+データオブジェクト識別子(+別の属性)
である。
異なるデータオブジェクトのデータ記録は同じカラム属性を用いて隣接して記憶することができ、異なるデータオブジェクトは、各データオブジェクトに対応するデータオブジェクト識別子を用いて区別される。加えて、同じカラム属性がデータオブジェクト(第1のデータオブジェクトと表される)の全てのデータ記録を区別できる場合、第1のデータオブジェクトのRowKeyフォーマットは別の属性を含まない。同じカラム属性がデータオブジェクト(第2のデータオブジェクトと表される)の全てのデータ記録を区別できない場合、第2のデータオブジェクトのRowKeyフォーマットは更に、第2のデータオブジェクトの他のカラム属性のうち第2のデータオブジェクトの全てのデータ記録を区別できる属性を含む必要がある。
テーブル1とテーブル2を例として用いると、それらの同じカラム属性はIDである。テーブル1について、IDはテーブル1の全てのデータ記録を区別することができる。したがって、テーブル1のRowKeyフォーマットは、
ID+M
であってよい。
テーブル2について、IDはテーブル2の全てのデータ記録を区別することができず、Noはテーブル2の全てのデータ記録を区別することができる。したがって、テーブル2のRowKeyフォーマットは、
ID+N+No
であってよい。
このように、Rowキー値の辞書式順序でKeyValue式分散データベースにおいて記憶が実行されると、テーブル6が得られる。
Figure 2018026158
学生の学生番号(ID=0001)を用いて学生情報及び学生カリキュラム可変情報が取得される場合、クエリ情報:0001が構成されてよい。学生番号(ID=0001)をもつ学生の学生情報及び学生カリキュラム可変情報は、範囲クエリによって取得することができる。クエリプロセスでは、1つのテーブルだけにクエリが実行されればよく、ユーザーデータの位置決めは1回だけ完了されればよい。学生情報と学生カリキュラム可変情報とが隣接して記憶されるので、高速のリターンを実現することができる。
異なるデータオブジェクトに対して異なるプレフィックスが利用される場合、RowKeyは以下のフォーマット、
RowKey=データオブジェクトに対応するプレフィックス)+同じカラム属性(+別の属性)
である。
異なるデータオブジェクトに対して異なるプレフィックスが用いられる場合、異なるデータオブジェクトが異なるパーティションに記憶されることが実現する。加えて、同じカラム属性がデータオブジェクト(第1のデータオブジェクトと表される)の全てのデータ記録を区別できる場合、第1のデータオブジェクトのRowKeyフォーマットは別の属性を含まない。同じカラム属性がデータオブジェクト(第2のデータオブジェクトと表される)の全てのデータ記録を区別できない場合、第2のデータオブジェクトのRowKeyフォーマットは更に、第2のデータオブジェクトの他のカラム属性のうち第2のデータオブジェクトの全てのデータ記録を区別できる属性を含む必要がある。
テーブル1とテーブル2を例として用いると、それらの同じカラム属性はIDである。テーブル1について、IDはテーブル1の全てのデータ記録を区別することができる。したがって、テーブル1のRowKeyフォーマットは、
A+ID
であってよい。
テーブル2について、IDはテーブル2の全てのデータ記録を区別することができず、Noはテーブル2の全てのデータ記録を識別することができる。したがって、テーブル2のRowKeyフォーマットは、
B+ID+No
であってよい。
このように、Rowキー値の辞書式順序でKeyValue式分散データベースにおいて記憶が実行されると、テーブル7が得られる。
Figure 2018026158
異なるデータオブジェクトのRowKeyフォーマットは異なるプレフィックスを含み、よって、異なるデータオブジェクトをKeyValue式分散データベースの異なるパーティションに記憶することができる。
留意すべきこととして、本発明の様々な実施形態において、上述のプロセスの番号は実行順序を意味しない。プロセスの実行順序は、プロセスの機能及び内部論理に従って決定され、本発明の実施形態の実施プロセスに対する限定と解釈されるべきではない。
本発明の本実施形態におけるデータを記憶する方法では、統一されたロー識別子フォーマットに従って、KeyValue式分散データベースの1つのデータテーブルに複数のデータオブジェクトが記憶される。よって、データベース上の管理が容易になり、データクエリ効率を改善することができる。
以上、本発明の実施形態に係るデータを記憶する方法を詳細に説明した。以下、本発明の実施形態に係るデータ記憶装置を説明する。
図5は、本発明の実施形態に係るデータ記憶装置500の概略ブロック図を示す。図5に示されるように、装置500は以下の要素を備える。
決定モジュール510は、キー値(KeyValue)式分散データベースに記憶されるべき少なくとも2つのデータオブジェクトの同じカラム属性を決定し、少なくとも2つのデータオブジェクトの各データオブジェクトのKeyValue式分散データベースにおけるロー識別子のフォーマットを決定するように構成される。ロー識別子フォーマットは、同じカラム属性及びデータオブジェクト識別子を含む。少なくとも2つのデータオブジェクトのうち異なるデータオブジェクトのデータオブジェクト識別子は、ロー識別子フォーマット内の同じ位置にあり、且つ同じカラム属性の後に位置する。また、決定モジュール510は、各データオブジェクトの決定されたロー識別子フォーマットに従って、各データオブジェクトの各データ記録のロー識別子値を決定するように構成される。
記憶モジュール520は、KeyValue式分散データベースに、各データ記録のロー識別子値と各データ記録とを記憶するように構成される。各データ記録のロー識別子値は、各データ記録のKeyValue式分散データベースにおける主索引として利用される。
複数の(すなわち少なくとも2つの)データオブジェクトが相関するとき、すなわち複数のデータオブジェクトが同じカラム属性を有するとき、複数のデータオブジェクトに対する相関クエリを容易にするために、データ記憶装置500は、KeyValue式分散データベースの1つのテーブルに複数のデータオブジェクトを記憶する。決定モジュール510は、同じカラム属性に基づいて、各データオブジェクトのKeyValue式分散データベースにおけるロー識別子(例えばRowKey)のフォーマットを決定する。ロー識別子フォーマットは、同じカラム属性及びデータオブジェクト識別子を含む。少なくとも2つのデータオブジェクトのうち異なるデータオブジェクトのデータオブジェクト識別子は、ロー識別子フォーマット内の同じ位置にあり、且つ同じカラム属性の後に位置する。すなわち、全てのデータオブジェクトのロー識別子フォーマットは、クエリを容易にするために同じカラム属性を有し、更に、異なるデータオブジェクトを区別するために、データオブジェクトに対応するデータオブジェクト識別子を有する。異なるデータオブジェクトのロー識別子フォーマットが一貫した構成になるように、異なるデータオブジェクトのデータオブジェクト識別子は、ロー識別子フォーマットの同じ位置にあり、同じカラム属性の後に位置する。そして、決定モジュール510は、決定されたロー識別子フォーマットに従って、各データオブジェクトの各データ記録のロー識別子値を決定する。記憶モジュール520は、各データ記録のロー識別子値と各データ記録とをKeyValue式分散データベースに記憶する。各データ記録のロー識別子値は、各データ記録のKeyValue式分散データベースにおける主索引として利用される。複数の相関するデータオブジェクトについて一貫したロー識別子フォーマットが利用されるので、このように、データクエリの間、1つのデータテーブルにおいて複数のデータオブジェクトに対して相関クエリを実施できるように、ロー識別子フォーマットに従ってクエリ情報が構成される。よって、データクエリ効率が改善される。
したがって、本発明の本実施形態におけるデータ記憶装置では、複数のデータオブジェクトに対して相関クエリを実施できるように、同じカラム属性を含む複数のデータオブジェクトフォーマットを利用して、相関するデータオブジェクトがKeyValue式分散データベースに記憶される。よって、データクエリ効率が改善される。
本発明の本実施形態では、任意に、記憶モジュール520は更に、少なくとも2つのデータオブジェクトの全てのデータ記録がクラスターテーブルを形成するように、全てのデータ記録のロー識別子値に対して、全てのデータ記録を第1の順序にソートするように構成される。
本発明の本実施形態では、任意に、第1の順序は辞書式順序である。
本発明の本実施形態では、任意に、決定モジュール510は、具体的には、少なくとも2つのデータオブジェクトに対して、KeyValue式分散データベース中のロー識別子の第1のプレフィックスを指定するように構成され、第1のプレフィックスは定数であり、且つ、少なくとも2つのデータオブジェクト中の第1のデータオブジェクトのロー識別子フォーマットが、第1のプレフィックスと、同じカラム属性と、第1のデータオブジェクトのデータオブジェクト識別子とを含むことを決定するか、又は、少なくとも2つのデータオブジェクト中の第2のデータオブジェクトのロー識別子フォーマットが、第1のプレフィックスと、同じカラム属性と、第2のデータオブジェクトのデータオブジェクト識別子と、第2のデータオブジェクトのカラム属性のうち第2のデータオブジェクトの全てのデータ記録を区別できるカラム属性とを含むことを決定するように構成される。
本発明の本実施形態では、任意に、図6に示されるように、装置500は更に以下の要素を備える。
受信モジュール530は、データリクエストを受信するように構成される。データリクエストは、少なくとも2つのデータオブジェクトのデータ記録をクエリ又は取得することを命令する。
クエリモジュール540は、ロー識別子フォーマットに従って、KeyValue式分散データベースにおいてクエリを行うためのクエリ情報を構成するように構成され、クエリ情報は同じカラム属性を含み、且つ、クエリ情報に従って、その主索引がクエリ情報を含むデータ記録をKeyValue式分散データベースからエクスポートするように構成される。
任意に、ロー識別子フォーマットが第1のプレフィックスを含む場合、クエリ情報は第1のプレフィックス及び同じカラム属性を含む。
本発明の本実施形態では、任意に、決定モジュール510は更に、少なくとも2つのデータオブジェクトのうち任意のデータオブジェクトのKeyValue式分散データベースにおける副索引のフォーマットが、第2のプレフィックス、第2の属性及び同じカラム属性であることを決定するように構成され、第2の属性は、任意のデータオブジェクトのカラム属性にあり、且つ同じ属性とは異なるカラム属性であり、第2のプレフィックスは第1のプレフィックスとは異なる定数であり、且つ、任意のデータオブジェクトの副索引のフォーマットに従って、任意のデータオブジェクトの副索引を決定するように構成される。
記憶モジュール520は更に、任意のデータオブジェクトの副索引をKeyValue式分散データベースに記憶するように構成される。
本発明の本実施形態におけるデータ記憶装置では、KeyValue式分散データベースにデータオブジェクトの副索引が記憶され、より多様なクエリシナリオをユーザーに提供することができる。また、ユーザーによるクエリを容易にすることができ、よって、データクエリ効率が改善される。
本発明の本実施形態では、任意に、ロー識別子フォーマットのフィールド間、又は固定長を有するフィールド間に、セパレータが設定される。
本発明の本実施形態に係るデータ記憶装置500は、本発明の上述の実施形態に係る方法におけるデータ記憶装置に対応してよい。データ記憶装置500のモジュールの上述及び他の動作及び/又は機能は、図1〜図4の方法の対応する手続きを実現するために、別々に実行される。簡単にするために、ここでは詳細の繰り返しを省略する。
本発明の本実施形態におけるデータ記憶装置では、複数のデータオブジェクトが統一されたロー識別子フォーマットに従って、KeyValue式分散データベースの1つのデータテーブルに記憶される。よって、データベース上の管理が容易になり、データクエリ効率が改善される。
図7は、本発明の別の実施形態に係るデータ記憶装置の構造を示す。データ記憶装置は、少なくとも1つのプロセッサ702(例えばCPU)と、少なくとも1つのネットワークインターフェース705又は別の通信インターフェースと、メモリ706と、これらの装置の接続及び通信を実現するように構成される少なくとも1つの通信バス703とを備える。プロセッサ702は、メモリ706に記憶されるコンピュータープログラム等の実行可能モジュールを実行するように構成される。メモリ706は、高速ランダムアクセスメモリ(RAM:Random Access Memory)を含んでよく、更に、例えば少なくとも1つの磁気ディスク記憶装置等の不揮発性メモリ(non- volatile memory)を含んでよい。少なくとも別のネットワーク要素との通信及び接続は、少なくとも1つのネットワークインターフェース705(有線であっても無線であってもよい)を用いて実現される。
一部の実施方式では、メモリ706はプログラム7061を記憶する。プログラム7061はプロセッサ702によって実行されてよい。プログラムは、
KeyValue式分散データベースに記憶されるべき少なくとも2つのデータオブジェクトの同じカラム属性を決定するステップと、
少なくとも2つのデータオブジェクトの各データオブジェクトのKeyValue式分散データベースにおけるロー識別子のフォーマットを決定するステップであって、ロー識別子フォーマットは同じカラム属性及びデータオブジェクト識別子を含み、少なくとも2つのデータオブジェクトのうち異なるデータオブジェクトのデータオブジェクト識別子は、ロー識別子フォーマット内の同じ位置にあり、且つ同じカラム属性の後に位置する、ステップと、
各データオブジェクトの決定されたロー識別子フォーマットに従って、各データオブジェクトの各データ記録のロー識別子値を決定するステップと、
KeyValue式分散データベースに、各データ記録のロー識別子値と各データ記録とを記憶するステップであって、各データ記録のロー識別子値は、各データ記録のKeyValue式分散データベースにおける主索引として利用される、ステップと、
を有する。
任意に、プログラムは更に、
少なくとも2つのデータオブジェクトの全てのデータ記録がクラスターテーブルを形成するように、全てのデータ記録のロー識別子値に対して、全てのデータ記録を第1の順序にソートするステップ、
を有する。
任意に、第1の順序は辞書式順序である。
任意に、プログラムは更に、
データリクエストを受信するステップであって、データリクエストは、少なくとも2つのデータオブジェクトのデータ記録をクエリ又は取得することを命令する、ステップと、
ロー識別子フォーマットに従って、KeyValue式分散データベースにおいてクエリを行うためのクエリ情報を構成するステップであって、クエリ情報は同じカラム属性を含む、ステップと、
クエリ情報に従って、その主索引がクエリ情報を含むデータ記録をKeyValue式分散データベースからエクスポートするステップと、
を有する。
任意に、少なくとも2つのデータオブジェクトの各データオブジェクトのKeyValue式分散データベースにおけるロー識別子のフォーマットを決定するステップは、
少なくとも2つのデータオブジェクトに対して、KeyValue式分散データベース中のロー識別子の第1のプレフィックスを指定するステップであって、第1のプレフィックスは定数である、ステップと、
少なくとも2つのデータオブジェクト中の第1のデータオブジェクトのロー識別子フォーマットが、第1のプレフィックスと、同じカラム属性と、第1のデータオブジェクトのデータオブジェクト識別子とを含むことを決定するステップ、又は、
少なくとも2つのデータオブジェクト中の第2のデータオブジェクトのロー識別子フォーマットが、第1のプレフィックスと、同じカラム属性と、第2のデータオブジェクトのデータオブジェクト識別子と、第2のデータオブジェクトのカラム属性のうち第2のデータオブジェクトの全てのデータ記録を区別できるカラム属性とを含むことを決定するステップと、
を含む。
任意に、クエリ情報は第1のプレフィックス及び同じカラム属性を含む。
任意に、プログラムは更に、
少なくとも2つのデータオブジェクトのうち任意のデータオブジェクトのKeyValue式分散データベースにおける副索引のフォーマットが、第2のプレフィックス、第2の属性及び同じカラム属性であることを決定するステップであって、第2の属性は、任意のデータオブジェクトのカラム属性にあり、且つ同じ属性とは異なるカラム属性であり、第2のプレフィックスは第1のプレフィックスとは異なる定数である、ステップと、
任意のデータオブジェクトの副索引のフォーマットに従って、任意のデータオブジェクトの副索引を決定するステップと、
任意のデータオブジェクトの副索引をKeyValue式分散データベースに記憶するステップと、
を有する。
任意に、ロー識別子フォーマットのフィールド間、又は固定長を有するフィールド間に、セパレータが設定される。
本発明の実施形態で提供される上述の技術的解決策から分かるように、本発明の実施形態では、複数のデータオブジェクトに対して相関クエリを実行できるように、同じカラム属性を有する複数のデータオブジェクトフォーマットを用いて、KeyValue式分散データベースに相関するデータオブジェクトが記憶される。よって、データクエリ効率が改善される。
留意すべきこととして、本発明の本実施形態において、用語「及び/又は」は、相関する対象を説明するための相関を説明するものに過ぎず、3つの関係が存在し得ることを示す。例えば、A及び/又はBは、Aのみが存在するケースと、AとBの両方が存在するケースと、Bのみが存在するケースとの3つのケースを示し得る。加えて、本明細書において、記号「/」は一般に、相関する対象間の「又は」の関係を示す。
当業者であれば、本明細書に開示される実施形態に説明される例と組み合わせて、ユニット及びアルゴリズムステップが電子機器、コンピューターソフトウェア、又はそれらの組合わせによって実施されてよいことに気付くであろう。ハードウェアとソフトウェアとの互換性を明確に説明するために、上記では一般に、各例の要素及びステップを機能に従って説明した。機能がハードウェアによって実行されるかソフトウェアによって実行されるかは、技術的解決策の特定の応用と設計制約条件によって決まる。当業者であれば、特定の応用の各々について記載の機能を実施するために異なる方法を利用できるであろうが、実施は本発明の範囲を超えることを考慮されたい。
当業者であれば、説明を簡便にするために、上述のシステム、装置及びユニットの動作プロセスの詳細については、上述の方法実施形態における対応するプロセスを参照できることが明らかに理解できるであろう。よって、詳細の説明は省略する。
本願で提供されるいくつかの実施形態において、開示のシステム、装置及び方法は他の方式で実施されてよいことを理解されたい。例えば、記載の装置実施形態は例示に過ぎない。例えば、ユニットの分割は論理的な機能分割に過ぎず、実際の実施では他の分割であってよい。例えば、複数のユニット又はコンポーネントは別のシステムに組み合わせ又は統合されてよく、或いは、一部の特徴は省略されてよく、或いは実行されなくてよい。加えて、提示又は議論される相互結合又は直接結合又は通信接続は、いくつかのインターフェースによって実施されてよい。装置若しくはユニット間の間接的な結合又は通信接続は、電子的形式、機械的形式その他の形式で実施されてよい。
別々の要素として記載されたユニットは物理的に別々であってもなくてもよい。ユニットとして示された要素は物理的なユニットであってもなくてもよく、且つ、1ヶ所に位置しても複数のネットワークユニット上に分散されてもよい。ユニットの一部又は全部は、本発明の実施形態の解決策の目的を達成するために、実際の要件に従って選択されてよい。
加えて、本発明の実施形態における機能ユニットは1つの処理ユニットに統合されてよい。或いは、ユニットの各々は物理的に単独で存在してよく、或いは、2以上のユニットは1つのユニットに統合されてよい。統合されたユニットは、ハードウェア形式で実施されてよく、或いは、ソフトウェア機能ユニットの形式で実施されてよい。
統合されたユニットがソフトウェア機能ユニットの形式で実施され、且つ、独立した製品として販売又は使用される場合、統合されたユニットはコンピューター可読記憶媒体に記憶されてよい。そのような理解に基づき、本発明の技術的解決策は本質的にソフトウェア製品の形式で実施されてよく、或いは、従来技術に寄与する部分又は技術的解決策の全部若しくは一部は、ソフトウェア製品の形式で実施されてよい。ソフトウェア製品は、記憶媒体に記憶され、且つ、コンピューター装置(パーソナルコンピューター、サーバー又はネットワーク装置であってよい)が本発明の実施形態に記載の方法のステップの全部又は一部を実行することを命令するためのいくつかの命令を含む。上述の記憶媒体はプログラムコードを記憶できる任意の媒体を含んでよく、例えば、USBフラッシュドライブ、リムーバブルハードディスク、リードオンリーメモリ(ROM、Read-Only Memory)、ランダムアクセスメモリ(RAM、Random Access Memory)、磁気ディスク、光ディスク等を含んでよい。
上述の説明は本発明の具体的な実施方式に過ぎず、本発明の保護範囲を限定する意図はない。本発明に開示された技術的範囲内で当業者により容易に想到され得る変形又は置換は、いかなるものでも本発明の保護範囲に包含されるものとする。したがって、本発明の保護範囲は特許請求の範囲の保護範囲に従うものとする。

Claims (17)

  1. データを記憶する方法であって、
    キー値(KeyValue)式分散データベースに記憶されるべき少なくとも2つのデータオブジェクトの同じカラム属性を決定するステップであって、各データオブジェクトはデータ記録を有する、ステップと、
    前記少なくとも2つのデータオブジェクトの各データオブジェクトの前記KeyValue式分散データベースにおけるロー識別子のフォーマットを決定するステップであって、前記ロー識別子の前記フォーマットは前記同じカラム属性及びデータオブジェクト識別子を含み、前記少なくとも2つのデータオブジェクトのうち異なるデータオブジェクトのデータオブジェクト識別子は、前記ロー識別子の前記フォーマット内の同じ位置にあり、且つ前記同じカラム属性の後にある、ステップと、
    各データオブジェクトの決定された前記ロー識別子の前記フォーマットに従って、各データオブジェクトの各データ記録のロー識別子値を決定するステップと、
    全ての前記データ記録のロー識別子値に従って、前記少なくとも2つのデータオブジェクトの全ての前記データ記録を第1の順序にソートするステップであって、前記少なくとも2つのデータオブジェクトの全てのデータ記録がクラスターテーブルを形成する、ステップと、
    前記KeyValue式分散データベースに、前記クラスターテーブルの各データ記録と各データ記録の前記ロー識別子値とを記憶するステップであって、各データ記録の前記ロー識別子値は、各データ記録の前記KeyValue式分散データベースにおける主索引として利用される、ステップと、
    を有する方法。
  2. 前記第1の順序は辞書式順序である、請求項1に記載の方法。
  3. 前記少なくとも2つのデータオブジェクトの各データオブジェクトの前記KeyValue式分散データベースにおけるロー識別子のフォーマットを決定する前記ステップは、
    前記少なくとも2つのデータオブジェクトに対して、前記KeyValue式分散データベース中の前記ロー識別子の第1のプレフィックスを指定するステップであって、前記第1のプレフィックスは定数である、ステップと、
    前記少なくとも2つのデータオブジェクト中の第1のデータオブジェクトのロー識別子フォーマットが、前記第1のプレフィックスと、前記同じカラム属性と、前記第1のデータオブジェクトのデータオブジェクト識別子とを含むことを決定するステップと、
    を含む、請求項1又は2に記載の方法。
  4. 前記少なくとも2つのデータオブジェクトのうち任意のデータオブジェクトの前記KeyValue式分散データベースにおける副索引のフォーマットが、第2のプレフィックス、第2の属性及び前記同じカラム属性であることを決定するステップであって、前記第2の属性は、前記任意のデータオブジェクトのカラム属性のうち前記同じ属性とは異なるカラム属性であり、且つ、前記第2のプレフィックスは、前記第1のプレフィックスとは異なる定数である、ステップと、
    前記任意のデータオブジェクトの前記副索引の前記フォーマットに従って、前記任意のデータオブジェクトの前記副索引を決定するステップと、
    前記任意のデータオブジェクトの前記副索引を、前記KeyValue式分散データベースに記憶するステップと、
    を更に有する、請求項3に記載の方法。
  5. 前記少なくとも2つのデータオブジェクトの各データオブジェクトの前記KeyValue式分散データベースにおけるロー識別子のフォーマットを決定する前記ステップは、
    前記少なくとも2つのデータオブジェクトに対して、前記KeyValue式分散データベース中の前記ロー識別子の第1のプレフィックスを指定するステップであって、前記第1のプレフィックスは定数である、ステップと、
    前記少なくとも2つのデータオブジェクト中の第2のデータオブジェクトのロー識別子フォーマットが、前記第1のプレフィックスと、前記同じカラム属性と、前記第2のデータオブジェクトのデータオブジェクト識別子と、前記第2のデータオブジェクトのカラム属性のうち前記第2のデータオブジェクトの全てのデータ記録を区別できるカラム属性とを含むことを決定するステップと、
    を含む、請求項1又は2に記載の方法。
  6. 前記少なくとも2つのデータオブジェクトのうち任意のデータオブジェクトの前記KeyValue式分散データベースにおける副索引のフォーマットが、第2のプレフィックス、第2の属性及び前記同じカラム属性であることを決定するステップであって、前記第2の属性は、前記任意のデータオブジェクトのカラム属性のうち前記同じ属性とは異なるカラム属性であり、且つ、前記第2のプレフィックスは、前記第1のプレフィックスとは異なる定数である、ステップと、
    前記任意のデータオブジェクトの前記副索引の前記フォーマットに従って、前記任意のデータオブジェクトの前記副索引を決定するステップと、
    前記任意のデータオブジェクトの前記副索引を、前記KeyValue式分散データベースに記憶するステップと、
    を更に有する、請求項5に記載の方法。
  7. 前記クエリ情報は前記第1のプレフィックス及び前記同じカラム属性を含む、
    請求項3乃至6のいずれか一項に記載の方法。
  8. 前記ロー識別子の前記フォーマットのフィールド間、又は固定長を有する前記フィールド間に、セパレータが設定される、
    請求項1乃至7のいずれか一項に記載の方法。
  9. データ記憶装置であって、
    前記装置は、プロセッサ及びメモリを備え、前記メモリには複数の命令が記憶され、前記複数の命令は、前記プロセッサによって実行されると、
    キー値(KeyValue)式分散データベースに記憶されるべき少なくとも2つのデータオブジェクトの同じカラム属性を決定するステップと、
    前記少なくとも2つのデータオブジェクトの各データオブジェクトの前記KeyValue式分散データベースにおけるロー識別子のフォーマットを決定するステップであって、前記ロー識別子の前記フォーマットは前記同じカラム属性及びデータオブジェクト識別子を含み、前記少なくとも2つのデータオブジェクトのうち異なるデータオブジェクトのデータオブジェクト識別子は、前記ロー識別子の前記フォーマット内の同じ位置にあり、且つ前記同じカラム属性の後にある、ステップと、
    各データオブジェクトの決定された前記ロー識別子の前記フォーマットに従って、各データオブジェクトの各データ記録のロー識別子値を決定するステップと、
    全ての前記データ記録のロー識別子値に従って、前記少なくとも2つのデータオブジェクトの全ての前記データ記録を第1の順序にソートするステップであって、前記少なくとも2つのデータオブジェクトの全てのデータ記録がクラスターテーブルを形成する、ステップと、
    前記KeyValue式分散データベースに、前記クラスターテーブルの各データ記録と各データ記録の前記ロー識別子値とを記憶するステップであって、各データ記録の前記ロー識別子値は、各データ記録の前記KeyValue式分散データベースにおける主索引として利用される、ステップと、
    を前記プロセッサに実行させる、装置。
  10. 前記第1の順序は辞書式順序である、
    請求項9に記載の装置。
  11. 前記複数の命令は、前記プロセッサに、
    前記少なくとも2つのデータオブジェクトに対して、前記KeyValue式分散データベース中の前記ロー識別子の第1のプレフィックスを指定するステップであって、前記第1のプレフィックスは定数である、ステップと、
    前記少なくとも2つのデータオブジェクト中の第1のデータオブジェクトのロー識別子フォーマットが、前記第1のプレフィックスと、前記同じカラム属性と、前記第1のデータオブジェクトのデータオブジェクト識別子とを含むことを決定するステップと、
    を更に実行させる、請求項9又は10に記載の装置。
  12. 前記複数の命令は、前記プロセッサに、
    前記少なくとも2つのデータオブジェクトのうち任意のデータオブジェクトの前記KeyValue式分散データベースにおける副索引のフォーマットが、第2のプレフィックス、第2の属性及び前記同じカラム属性であることを決定するステップであって、前記第2の属性は、前記任意のデータオブジェクトのカラム属性のうち前記同じ属性とは異なるカラム属性であり、前記第2のプレフィックスは、前記第1のプレフィックスとは異なる定数である、ステップと、
    前記任意のデータオブジェクトの前記副索引の前記フォーマットに従って、前記任意のデータオブジェクトの前記副索引を決定するステップと、
    前記任意のデータオブジェクトの前記副索引を、前記KeyValue式分散データベースに記憶するステップと、
    を更に実行させる、請求項11に記載の装置。
  13. 前記複数の命令は、前記プロセッサに、
    前記少なくとも2つのデータオブジェクトに対して、前記KeyValue式分散データベース中の前記ロー識別子の第1のプレフィックスを指定するステップであって、前記第1のプレフィックスは定数である、ステップと、
    前記少なくとも2つのデータオブジェクト中の第2のデータオブジェクトのロー識別子フォーマットが、前記第1のプレフィックスと、前記同じカラム属性と、前記第2のデータオブジェクトのデータオブジェクト識別子と、前記第2のデータオブジェクトのカラム属性のうち前記第2のデータオブジェクトの全てのデータ記録を区別できるカラム属性とを含むことを決定するステップと、
    を更に実行させる、請求項9又は10に記載の装置。
  14. 前記複数の命令は、前記プロセッサに、
    前記少なくとも2つのデータオブジェクトのうち任意のデータオブジェクトの前記KeyValue式分散データベースにおける副索引のフォーマットが、第2のプレフィックス、第2の属性及び前記同じカラム属性であることを決定するステップであって、前記第2の属性は、前記任意のデータオブジェクトのカラム属性のうち前記同じ属性とは異なるカラム属性であり、前記第2のプレフィックスは、前記第1のプレフィックスとは異なる定数である、ステップと、
    前記任意のデータオブジェクトの前記副索引の前記フォーマットに従って、前記任意のデータオブジェクトの前記副索引を決定するステップと、
    前記任意のデータオブジェクトの前記副索引を、前記KeyValue式分散データベースに記憶するステップと、
    を更に実行させる、請求項13に記載の装置。
  15. 前記クエリ情報は前記第1のプレフィックス及び前記同じカラム属性を含む、
    請求項11乃至14のいずれか一項に記載の装置。
  16. 前記ロー識別子の前記フォーマットのフィールド間、又は固定長を有する前記フィールド間に、セパレータが設定される、
    請求項9乃至15のいずれか一項に記載の装置。
  17. コンピューター命令を記憶するためのコンピューター可読記憶媒体であって、
    コンピューターのプロセッサが前記コンピューター命令を実行して、記憶されたデータへの高速アクセスを提供するとき、前記コンピューターは請求項1乃至8のいずれか一項に記載の方法を実行する、
    コンピューター可読記憶媒体。
JP2017195364A 2017-10-05 2017-10-05 データを記憶する方法及び装置 Active JP6397105B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017195364A JP6397105B2 (ja) 2017-10-05 2017-10-05 データを記憶する方法及び装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017195364A JP6397105B2 (ja) 2017-10-05 2017-10-05 データを記憶する方法及び装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2016537067A Division JP6225261B2 (ja) 2013-08-29 2013-08-29 データを記憶する方法及び装置

Publications (2)

Publication Number Publication Date
JP2018026158A true JP2018026158A (ja) 2018-02-15
JP6397105B2 JP6397105B2 (ja) 2018-09-26

Family

ID=61193921

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017195364A Active JP6397105B2 (ja) 2017-10-05 2017-10-05 データを記憶する方法及び装置

Country Status (1)

Country Link
JP (1) JP6397105B2 (ja)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0567159A (ja) * 1991-09-10 1993-03-19 Nec Software Kansai Ltd 表形式データ処理装置
JPH0736756A (ja) * 1993-07-21 1995-02-07 Hitachi Ltd オブジェクト管理方式
JP2005234612A (ja) * 2001-05-07 2005-09-02 I-Ze Communications Inc データベースの統合
JP2006065467A (ja) * 2004-08-25 2006-03-09 Hitachi Ltd データ抽出定義情報生成装置およびデータ抽出定義情報生成方法
JP2008269643A (ja) * 2000-11-29 2008-11-06 Virtual Key Graph データベース・システムでデータを編成し、問合せを処理する方法、およびそのような方法を実施するためのデータベース・システムおよびソフトウェア製品
WO2012115194A1 (ja) * 2011-02-25 2012-08-30 ディジタル・ワークス株式会社 分散型データベースシステムおよび分散型データベースのデータ構造

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0567159A (ja) * 1991-09-10 1993-03-19 Nec Software Kansai Ltd 表形式データ処理装置
JPH0736756A (ja) * 1993-07-21 1995-02-07 Hitachi Ltd オブジェクト管理方式
JP2008269643A (ja) * 2000-11-29 2008-11-06 Virtual Key Graph データベース・システムでデータを編成し、問合せを処理する方法、およびそのような方法を実施するためのデータベース・システムおよびソフトウェア製品
JP2005234612A (ja) * 2001-05-07 2005-09-02 I-Ze Communications Inc データベースの統合
JP2006065467A (ja) * 2004-08-25 2006-03-09 Hitachi Ltd データ抽出定義情報生成装置およびデータ抽出定義情報生成方法
WO2012115194A1 (ja) * 2011-02-25 2012-08-30 ディジタル・ワークス株式会社 分散型データベースシステムおよび分散型データベースのデータ構造

Also Published As

Publication number Publication date
JP6397105B2 (ja) 2018-09-26

Similar Documents

Publication Publication Date Title
JP6225261B2 (ja) データを記憶する方法及び装置
US11132346B2 (en) Information processing method and apparatus
JP6626211B2 (ja) ショートリンクを処理する方法及び装置並びにショートリンクサーバ
US20180239800A1 (en) Data query method and apparatus
JP5635691B2 (ja) 複数のシステムを用いたデータ解析
JP5466257B2 (ja) 表検索方法
US20150193491A1 (en) Data indexing method and apparatus
CN110502546A (zh) 一种数据处理方法及装置
US9294390B2 (en) Hash table storage and search methods and devices
CN105677904B (zh) 基于分布式文件系统的小文件存储方法及装置
JP2019531563A (ja) データ処理方法、記憶システムおよび切り換え装置
KR20160056944A (ko) 캐싱된 플로우들에 기초한 가속
JPWO2015145762A1 (ja) データベース管理システム、計算機、データベース管理方法
US20150278543A1 (en) System and Method for Optimizing Storage of File System Access Control Lists
CN107451154B (zh) 一种数据表的处理方法、装置及系统
JP6397105B2 (ja) データを記憶する方法及び装置
CN109101595B (zh) 一种信息查询方法、装置、设备及计算机可读存储介质
WO2018210178A1 (zh) 文件存储方法和存储装置
CN107203550B (zh) 一种数据处理方法和数据库服务器
WO2018077138A1 (zh) 数据配置方法、索引管理方法、相关装置以及计算设备
CN108667644A (zh) 配置acl业务的方法及转发设备
CN112800067A (zh) 范围查询方法、装置、计算机可读存储介质及电子设备
CN112434189A (zh) 数据查询方法、装置及设备
CN117493652A (zh) 分布式引擎的索引创建方法、装置以及电子设备
CN114691685A (zh) 一种基于数据湖的数据关联方法及装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180629

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180731

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180830

R150 Certificate of patent or registration of utility model

Ref document number: 6397105

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250