JP2014509008A - データウェアハウスから統計を提供する方法およびシステム - Google Patents

データウェアハウスから統計を提供する方法およびシステム Download PDF

Info

Publication number
JP2014509008A
JP2014509008A JP2013553965A JP2013553965A JP2014509008A JP 2014509008 A JP2014509008 A JP 2014509008A JP 2013553965 A JP2013553965 A JP 2013553965A JP 2013553965 A JP2013553965 A JP 2013553965A JP 2014509008 A JP2014509008 A JP 2014509008A
Authority
JP
Japan
Prior art keywords
index
data
departure
input file
index field
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
JP2013553965A
Other languages
English (en)
Other versions
JP5963780B2 (ja
Inventor
ゴーラブ・ナート
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.)
Amadeus SAS
Original Assignee
Amadeus SAS
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 Amadeus SAS filed Critical Amadeus SAS
Publication of JP2014509008A publication Critical patent/JP2014509008A/ja
Application granted granted Critical
Publication of JP5963780B2 publication Critical patent/JP5963780B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/283Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24539Query rewriting; Transformation using cached or materialised query results

Landscapes

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

Abstract

本発明は、1つまたは複数のデータ記憶手段と、データ記憶手段に結合された1つまたは複数の処理装置とを含むデータウェアハウス(410)から、統計データを提供する方法に関し、この方法は、複数の索引フィールド(114)を定義するステップであって、各索引フィールドが複数の索引フィールド値を受け入れる、定義するステップと、複数の索引ファイル(432)を作成し、これらのファイルを索引の木(300)として階層的に索引付けるステップと、統計データを記憶するように構成されたデータコンテナ(325、335)を各索引に提供するステップであって、各データコンテナが索引付けられ、階層的に索引付けられたファイル内から直接アドレス指定可能である、提供するステップと、生データから構成された1つまたは複数の入力ファイル(434)を受け取り(436)、それらの入力ファイル(434)でデータコンテナを更新するステップであって、各入力ファイルに対して1つまたは複数の処理装置を使用するステップとを含むことを特徴とする。

Description

本発明は、一般に、データウェアハウスおよびビジネスインテリジェンスに関し、より詳細には、統計データを提供することを考慮して大きなデータのリポジトリからの照会をリアルタイムで処理するためにデータ検索を促進するという問題に対処する。
本発明は、ビジネスインテリジェンスで一般に使用される大量のデータに対して統計的なオンライン分析処理(OLAP)の照会の応答時間において相当な高速化を可能にする特殊なメモリ内データ構造に関する。
すべての大会社および大企業は、営業活動を行う過程で、大量の情報を毎日収集して蓄積する必要がある。広く採用されている1つの解決策は、データベースの形式、最も一般的にはリレーショナルデータベースと呼ばれるデータベースのモデルで、この情報を記憶することである。すべての実際的な目的のため、リレーショナルデータベースは表の集まりであり、表と表の関係が定義されており、特有のリレーショナルデータベース管理システム(RDBMS)の制御下にあり、情報を効率的に記憶、更新、および検索できる構造化照会言語(SQL)を備える。階層モデルのような他のモデルも存在する。どのモデルが使用される場合でも、記憶および組織化すべき全体的なデータ量が著しく増えたときは、データベースの集まりをさらに組織化する必要がある。実際、現在では一般に、それらの大会社の毎日の業務を可能にするためだけに、数テラバイト(すなわち、1012バイト)の情報データを記憶し、コンテンツを永久的かつ容易にアクセス可能にする必要があり、したがってこれが、80年代から開発されてきたデータウェアハウスの概念である。データウェアハウスおよびデータマートは、戦略的な業務データおよびビジネスデータを保持するために任意の大規模な組織によって設定されたリポジトリである。ウェアハウスが組織化される方法は、ビジネスインテリジェンスに大いに関係する。検索した情報を提示および報告しながらリポジトリへ/からデータを抽出、変換、およびロードするように考案されたウェアハウス構造およびツールは、膨大な量のデータが含まれる可能性があるにもかかわらず、すべてのウェアハウスユーザが十分に情報を得た上で決定を下すことができるように、そのコンテンツのあらゆる徹底的な分析を可能にするための鍵である。
旅行業界では、大量のデータを記憶および組織化する必要があるそのような大規模な組織は、一般に航空会社、またはGDS、すなわち「グローバルディストリビューションシステム」である。GDSとは、航空会社、ホテルチェーン、レンタカー会社、従来の旅行代理店、他のオンライン旅行サービス提供業者などを含む旅行業界のすべての行為者に世界規模で対応する少数の大規模旅行サービス提供業者のいずれかである。そのようなGDSには、たとえばスペインのマドリードに本社を置くAMADEUSという欧州の旅行サービス提供業者がある。したがってGDSは、場合によっては数百万人の旅行者、数千の旅行代理店およびオンラインサービス提供業者、ならびに数十の航空会社および輸送会社に関するデータの状況を、独自の大規模な記憶、演算、およびネットワーク化資源から、常に把握していなければならない。このため、いずれのGDSも、対応する輸送会社のすべての予定、それらの輸送会社が提供する毎日更新される無数の運賃、および数百万の旅行者のすべての発券データなどを保持する多数の大規模なデータベースを設定する必要がある。
航空会社またはGDSなどの組織は、その方策を定めるために統計に依拠する必要があることが多い。統計はまた、購入を容易にするサービスとしてエンドユーザに提供することができる。統計では、多数のデータベース内に拡散した膨大な量のデータを分析して航空会社またはGDSなどの組織のデータウェアハウスを形成する必要があることが多い。
さらに、膨大な量の拡散データのそのような分析は、容易なタスクではない。データの検索を容易にするようにデータベースが具体的に考案されているにもかかわらず、ウェアハウスのコンテンツの分析はやはり、そのような照会に応答して意味のある情報を抽出してエンドユーザに提示できるようにするためには、場合によっては多くの大きな表を含む異なるデータベースからのデータを相互比較する必要があることを暗黙的に意味する。通常、リレーショナルデータベースでは、これは、表のエントリで結合動作が実行されることを示唆する。これらの動作は、資源の処理および実行時間の点でコストがかかることが知られている。また、場合によっては別個のコンピュータ化されたプラットフォームから複数のデータベースにアクセスすることで、単一のコンピュータ化された内部ユニットに処理を制限できる場合より、本質的にはるかに遅い多数のI/O(入出力)動作を引き起こす。そして、これはすべて、常に動作して多くのユーザを同時に取り扱える必要があるウェアハウスデータベースの通常の生産作業に干渉する。これにより、毎日の統計データの収集および演算のような大量の情報のフェッチを含む高度な照会をリアルタイムで、すなわち数ミリ秒から10分の数ミリ秒の期待時間枠内で処理することが、不可能ではない場合でも困難になる。
したがって、本発明の目的は、場合によっては大量のデータが含まれるにもかかわらず、さらに高度な照会を処理してリアルタイムで応答できるように、統計データの検索を促進することを目的として、データベースのウェアハウスから更新され続けるデータ構造を開示することである。
本発明のさらなる目的、特徴、および利点は、添付の図面を参照して以下の説明を考査すれば当業者には明らかになるであろう。本明細書には、任意の追加の利点が組み込まれるものとする。
上記の目的を実現するために、本発明は、1つまたは複数のデータ記憶手段と、データ記憶手段に結合された1つまたは複数の処理装置とを含むデータウェアハウスから、統計データを提供する方法について説明する。
本発明について説明するために使用される用語集および参考文献については、図面の簡単な説明の前に示す。
この方法は、
・ 複数の索引フィールドを定義するステップであって、各索引フィールドが複数の索引フィールド値を受け入れる、定義するステップと、
・ 複数の索引ファイルを作成し、これらのファイルを索引の木として階層的に索引付けるステップであって、各木に対して、
- 索引フィールドを階層的に順序付けるステップ、
- それぞれ索引フィールドに関連付けられ、その索引フィールドに対する1つまたは複数の索引フィールド値を収集するビンを定義するステップ、
- 階層的に順序付けられた索引フィールドの階層に従って1つまたは複数のビンを連結してビンのシーケンスを形成することによって、索引フィールドごとに1つのビンのみを含む索引を作成するステップ、ならびに
- ファイルを索引の木として階層的に索引付けるステップを含み、各索引が、0以上の子索引および/または最大で1つの親索引を有し、各子索引が、その親索引の索引と同じビンのシーケンスと、追加の索引フィールドに関連付けられた少なくとも1つの追加のビンとを含む、索引付けるステップと、
・ 統計データを記憶するように構成されたデータコンテナを各索引に提供するステップであって、各データコンテナが索引付けられ、階層的に索引付けられたファイル内から直接アドレス指定可能である、提供するステップと、
・ 生データから構成された1つまたは複数の入力ファイルを受け取り、それらの入力ファイルでデータコンテナを更新するステップであって、各入力ファイルに対して1つまたは複数の処理装置を使用することを含み、これらの処理装置が、
- 統計によって分析すべき少なくとも1つの属性、およびその属性を特徴付ける1つまたは複数の入力ファイルパラメータを、生データから識別および抽出するステップ、
- それぞれ少なくとも1つの属性、および前記属性を特徴付ける1つまたは複数の入力ファイルパラメータを含む少なくとも1つの個別記録(individual record)を、入力ファイルから作成するステップ、
- 各入力ファイルパラメータを少なくとも1つの索引フィールドに関連付けるステップ、
- 各入力ファイルパラメータと、その入力ファイルパラメータに関連付けられた少なくとも1つの索引フィールドのビンとの間で対応関係を確立するステップ、
- すべて前記個別記録の入力ファイルパラメータに対応する1つまたは複数のビンで索引付けられたデータコンテナを識別するステップ、ならびに
- 識別されたデータコンテナを、前記個別記録の少なくとも1つの属性でインクリメンタルに更新して、属性を記述する統計データを得るステップを、実行するように構成される、更新するステップと
を含むことを特徴とする。
好ましくは、この方法は、照会を受け取り、各照会に対して1つまたは複数の処理装置を使用する追加の任意選択のステップを含み、これらの処理装置は、
- 照会内で、1つまたは複数の照会フィールド、およびその照会フィールドに関連付けられた少なくとも1つの照会フィールド値を識別し、
- 各照会フィールドと索引フィールドとの間で対応関係を確立し、
- 各照会フィールド値と、前記1つまたは複数の識別された照会フィールドに対応する各索引フィールドのビンとの間で対応関係を確立し、それによって照会に対応する1組のビンを定義し、
- 照会に対応する1組のビンを含む索引で索引付けられた関連するデータコンテナを探索および識別し、
- 識別された関連するコンテナの統計データを検索してユーザへ送るようにプログラムされる。
統計データは、頻度分布、または分布の代表値(measures of central tendency)、または分布の分散の測定に関することが有利である。有利な例によれば、統計データは、輸送サービスに対して旅行者によって実際に支払われた価格に関する統計データに基づく。
輸送、より具体的には乗客輸送に関する特定の実施形態では、本発明は、任意選択の以下の特徴のいずれか1つを含むことができる。
- 索引フィールドは、最初の出発都市(city of origin)、最初の出発国(country of origin)、最初の出発地域(geographical area of origin)、目的都市(city of destination)、目的国(country of origin)、目的地域(geographical area of destination)、文化的目的地(cultural destination)、スポーツ活動(sport activity)、美食(gastronomy)、野生生物の観察(wildlife observation)、娯楽(entertainment)、正確な出発日別の出発日(departure date by exact departure date)、月別の出発期間(departure period by month)、週別の出発期間(departure week by month)、正確な日付別の帰着日(return date by exact date)、月別の帰着期間(return period by month)、週別の帰着期間(return period by week)、到着後の旅行期間(duration of the trip after arrival)、事前購入カテゴリ(advance purchase category)のうちの少なくとも1つである。
- 一実施形態によれば、少なくとも2つのビンを連結することによって、親索引をもたない少なくとも1つの索引が作成される。たとえば、親索引をもたない索引は、最初の出発都市に関する索引フィールドに関連付けられたビンと、出発前の旅行期間に関する索引フィールドに関連付けられたビンと、航空便の出発週に関する索引フィールドに関連付けられたビンとを含む。特有のユースケースによれば、ビンは、最初の出発都市、出発都市、出発日、出発週、帰着日、帰着週、旅行期間の日数、事前購入の日数のうちの1つに関するいくつかの索引フィールド値を収集する。
- 別の実施形態によれば、親索引をもたない少なくとも1つの索引は、1つのビンのみを含む。
- 入力ファイルは、輸送サービスの電子チケットであり、輸送の一区分に対するすべての情報を組み入れる少なくとも1つのクーポンを含む。
- 属性は、各チケットまたはクーポンに対して実際に支払われた価格である。入力ファイルパラメータは、最初の出発都市、出発都市、出発日、帰着日、出発日、帰着日、旅行期間、予約から出発までの日数というフィールドのうちの少なくとも1つを記述する。
- 照会フィールドは、最初の出発都市、最初の出発国、最初の出発地域、目的都市、目的国、目的地域、文化的目的地、スポーツの目的地、美食、野生生物の観察、娯楽、正確な出発日別の出発日、月別の出発期間、週別の出発期間、正確な日付別の帰着日、月別の帰着期間、週別の帰着期間、到着後の旅行期間、予約から出発までの日数というフィールドのうちの少なくとも1つに関する。
- 単一の索引フィールド値を、複数の索引フィールドに関連付けることができる。たとえば、目的都市を記述する索引フィールド値は、最初の出発都市、最初の出発国、最初の出発地域、文化的目的地、スポーツ活動、美食、野生生物の観察、娯楽という索引フィールドのうちの少なくとも2つに関連付けられる。
任意選択で、本発明による方法は、次の特徴およびステップのいずれか1つを含むことができる。
- 個別記録を作成するステップは、日付または週または月または学期または年を各個別記録に割り当てるステップであって、この日付が入力ファイルの受け取りに対応する、割り当てるステップと、この個別記録をデータ記憶手段内に記憶するステップとを含む。
- 個別記録でデータコンテナを更新するステップは、同じ日付を有するまたは同じ日付期間を有する個別記録のバッチを作成するステップと、個別記録のバッチごとにデータコンテナを更新するステップとを含む。
- 更新するステップは、すべての以前の記録の演算を必要とするわけではない。したがって、最小の演算が必要とされる。通常、統計は、すべての入力ファイルを受け取った後の毎日の終わりの更新である。これにより、前日までに行われた演算を取り消すことなく、翌日に、毎日のトランザクションデータを、使用可能なはずのデータ範囲内へシームレスに組み込むことを可能にする。
- 好ましくは、索引フィールド値および属性は、整数、10進数、または区間であり、適当なカウントまたは新しい値で更新される。
コンテナへの新しい個別記録の追加は、最小の変更しか伴わず、それぞれの頻度のビン内のカウント値のみが変更される。したがって、個別記録の総数の大幅な増大にもかかわらず、コンテナのサイズおよびファイルのサイズは、使用される頻度分布表現およびインクリメンタル機構のため、それほど増大しない。他のデータは追加されない。
- 正確な統計データを維持するために、本発明は、記憶された個別記録の日付を読み取るステップと、所与の日付より古い日付に割り当てられた以前の個別記録を識別するステップと、これらの識別された以前の個別記録の入力ファイルパラメータを通じて、これらの識別された以前の個別記録で更新されたデータコンテナを位置決めするステップと、これらの識別された以前の個別記録を削除することによって、位置決めされたデータコンテナを更新するステップとを含むことができる。より正確には、データコンテナは、識別された以前の個別記録の属性を有する位置決めされたデータコンテナをインクリメンタルに削除することによって更新される。記録を削除することは、すべての以前の記録の演算を必要とするわけではない。したがって、過去の演算を破棄することなく過去のデータを破棄して関連する統計データを維持するには、最小の演算しか必要とされない。
- 識別されたデータコンテナをインクリメンタルに更新するステップは、以前に演算された統計データおよび前記個別記録の少なくとも1つの属性から、更新された統計データをインクリメンタルに演算するステップを含む。
- データコンテナが入力ファイルパラメータの数以下の複数のビンで索引付けられた場合、これらの1つまたは複数のビンのそれぞれが前記入力ファイルの入力ファイルパラメータに対応するという条件で、データコンテナが入力ファイルによって更新のために識別される。
- 個別記録の入力ファイルパラメータが既存の索引フィールドに関連付けられているが、この関連付けられた既存の索引フィールドのいずれのビンにも対応しない場合、この関連付けられた既存の索引フィールドに対して追加のビンを作成し、この追加のビンで索引付けられた追加のデータコンテナを作成し、追加のデータコンテナを前記個別記録で更新する。
たとえば、索引NBOおよびNBO05で索引付けられたデータコンテナが存在する場合で、かつ個別記録の入力ファイルパラメータがビンNBO、05、および40に対応する場合、データコンテナNBO0540が作成される。その個別記録の属性は、索引NBO、NBO05、および新しく作成されたNBO0540で索引付けられたデータコンテナを更新する。NBO0532およびNBO0540で索引付けられたデータコンテナは、この索引の木の同じレベルに位置する。
- 個別記録の各入力ファイルパラメータがビンに対応するが、索引に対応しない前記入力ファイルパラメータに対応する1つまたは複数のビンの組合せが存在する場合、1つまたは複数の対応するビンのこの組合せで索引付けられた追加のデータコンテナを作成し、追加のデータコンテナを前記個別記録で更新する。
たとえば、索引NBOおよびNBO05で索引付けられたデータコンテナが存在する場合で、かつ個別記録の入力ファイルパラメータがビンNBO、05、および32に対応する場合、ビンのNBO 05 32の組合せは既存の索引に対応しない。次いで、データコンテナNBO0532が作成される。その個別記録の属性は、索引NBO、NBO05、および新しく作成されたNBO0532で索引付けられたデータコンテナを更新する。
- GDS、航空会社、旅行代理店などの異なる実体(Entity)が、同じまたは部分的に重複するデータに対して異なる索引を必要とする場合、各企業実体に対する索引が作成され、別個の事前演算により異なるファイルが作成され、これらのファイル全体で照会を行うことができる。
- データコンテナ内に記憶されているすべてのデータは、フラットファイルの形式で記憶される。
- 照会は、1つまたは複数の照会フィールドに対する照会フィールド値としてワイルドカードを認める。本発明では、ワイルドカードを「*」で示す。ワイルドカードは、その照会フィールドに対応する索引フィールドの*またはワイルドカードビンのみが探索されることを意味する。したがって、照会フィールド値NBO、*、32による照会の場合、本発明は、第1および第3の索引フィールドに対してビンNBOおよび32の索引ならびに第2の索引が*またはワイルドカードビンを有するすべてのコンテナを位置決めする。これは、照会が高速化される理由の1つである。すべてのビンを探索すると、応答は遅くなったはずである。データ変換時に探索の組合せを集約することによって、参照時間中の莫大な演算時間が節約される。
- 照会は、1つまたは複数の照会フィールドに対するワイルドカード照会フィールド値を認め、ワイルドカード照会フィールド値は、その索引フィールドに対するワイルドカードビンに対応する統計が探索されることを意味する。より正確には、この方法は、1つまたは複数のビンのシーケンスを形成することによって索引を作成するステップを含み、これらのビンの少なくとも1つは、索引フィールドに対するすべての索引フィールド値を受け入れる。そのようなビンは、ワイルドカードビンと呼ばれる。したがって、本発明は、追加の索引を自動的に作成し、データコンテナはそれほど具体的でない索引を有する。
本発明者らのシステムからの1つの索引、たとえばNCE 01 52を検討してみる。これは、NCEから旅行タイプ01でその年の第52週に予約されたすべての旅行のグループ化された詳細に対する索引である。同様に、NCE 06 02は、NCEから旅行タイプ6でその年の第2週に予約されたすべての旅行のグループ化された詳細に対する索引である。本発明は、索引付けプロセス中にワイルドカード索引を作成する。たとえば、以下の索引NCE*52が作成され、NCEからその年の第52週に予約された任意の旅行タイプのすべての旅行のグループ化された詳細に対する索引であり、NCE2**は、NCEからその年の52週のうちの任意の週に予約されたタイプ2のすべての旅行のグループ化された詳細に対する索引であり、NCE***は、NCEからその年の52週のうちの任意の週に予約された任意の旅行タイプのすべての旅行のグループ化された詳細に対する索引である。ワイルドカードとも呼ばれる星印は、すべての索引フィールド値が受け入れられることを示す。ワイルドカードはまた、索引値「all」によって表すこともできる。意味論的に、ワイルドカードは、NCE***が各NCE xx DDに対する記録のすべてを含むことを意味し、ここで、xxは、第2の索引フィールド(たとえば、旅行タイプ)に対する任意の所与の値であり、DDは、第3の索引フィールド(たとえば、その年の週数)に対する任意の所与の値である。この特徴により、一定の時間内で大規模な照会に対する応答を検索することができる。
本発明の別の主題は、前述の方法に従って格納されたデータウェアハウスから、統計データを検索する方法であり、1つまたは複数の処理装置を含み、
- 照会内で、1つまたは複数の照会フィールド、およびその照会フィールドに関連付けられた少なくとも1つの照会フィールド値を識別するステップと、
- 各照会フィールドと索引フィールドとの間で対応関係を確立するステップと、
- 各照会フィールド値と、前記1つまたは複数の識別された照会フィールドに対応する各索引フィールドのビンとの間で対応関係を確立し、それによって照会に対応する1組のビンを定義するステップと、
- 照会に対応する1組のビンを含む索引で索引付けられた関連するデータコンテナを探索および識別するステップと、
- 識別された関連するコンテナの統計データを検索してユーザへ送るステップと
を含むことを特徴とする。
本発明の別の目的は、1つまたは複数のデータベースを含むデータウェアハウスから、統計データを収集する方法およびシステムであり、収集された統計データは、複数の索引付きのフラットファイル内で保持され、この方法は、統計データをカテゴリビン内へ収集するステップと、カテゴリビンをインクリメンタルに更新するステップと、フラットファイルを索引の木として階層的に索引付けるステップと、索引の各木の根で1次索引を定義するステップと、統計データまたは別の索引のコンテナのどちらかを索引から直接アドレス指定するステップとを含むことを特徴とする。
任意選択で、この方法およびシステムは、次の随意の特徴およびステップの少なくともいずれか1つを含む。
- 索引付きのフラットファイルは、コンピュータ化されたサービスプラットフォームの主メモリ内へインポートされ、引き続き常駐する。
- エンドユーザからの照会は、コンピュータ化されたサービスプラットフォームの主メモリ内に引き続き常駐している複数の索引付きのフラットファイルから包括的に供される。
- 統計データは、データウェアハウスから予定の間隔で収集される。
- 統計データは、航空会社の航空便で輸送すべき旅行者によって支払われた実際の運賃価格である。
- カテゴリビンは、航空便の出発地、航空便の目的地、旅行タイプ、開始週、および事前購入カテゴリである。
- 1次索引は、航空便の出発地、旅行タイプ、および開始週を含む。
- フラットファイル索引は、航空便の目的地および事前購入カテゴリを含む。
- 索引は、少なくとも1つのワイルドカード文字を含む。
本発明の別の目的は、前述のステップのいずれか1つによる統計データを提供する方法を少なくとも1つのマイクロプロセッサに実行させるように指示されたコンピュータ可読コード手段を含む、非一時的コンピュータ可読記憶媒体上に記憶されたコンピュータプログラム製品である。
好ましくは、コンピュータプログラム製品は、オンラインウェブサイトを通じて提供される。
本発明の別の目的は、データウェアハウス内に統計データを作成するシステムに関し、このシステムは、処理手段と、処理手段に結合された1つまたは複数のデータ記憶手段とを備える。このシステムは、データ記憶手段および処理手段が、
・ 複数の索引フィールドを定義するステップであって、各索引フィールドが複数の索引フィールド値を受け入れる、定義するステップと、
・ 複数の索引ファイルを作成し、これらのファイルを索引の木として階層的に索引付けるステップであって、各木に対して、索引フィールドを階層的に順序付けるステップ、それぞれ索引フィールドに関連付けられ、その索引フィールドに対する1つまたは複数の索引フィールド値を収集するビンを定義するステップ、階層的に順序付けられた索引フィールドの階層に従って1つまたは複数のビンを連結してビンのシーケンスを形成することによって、索引フィールドごとに1つのビンのみを含む索引を作成するステップ、ならびにファイルを索引の木として階層的に索引付けるステップを含み、各索引が、0以上の子索引および/または最大で1つの親索引を有し、各子索引が、その親索引の索引と同じビンのシーケンスと、追加の索引フィールドに関連付けられた少なくとも1つの追加のビンとを含む、索引付けるステップと、
・ 統計データを記憶するように構成されたデータコンテナを各索引に提供するステップであって、各データコンテナが索引付けられ、階層的に索引付けられたファイル内から直接アドレス指定可能である、提供するステップと、
・ 生データから構成された1つまたは複数の入力ファイルを受け取り、それらの入力ファイルでデータコンテナを更新するステップであって、各入力ファイルに対して1つまたは複数の処理装置を使用することを含み、これらの処理装置が、統計によって分析すべき少なくとも1つの属性、およびその属性を特徴付ける1つまたは複数の入力ファイルパラメータを、生データから識別および抽出するステップ、それぞれ少なくとも1つの属性、および前記属性を特徴付ける1つまたは複数の入力ファイルパラメータを含む少なくとも1つの個別記録を、入力ファイルから作成するステップ、各入力ファイルパラメータを少なくとも1つの索引フィールドに関連付けるステップ、各入力ファイルパラメータと、その入力ファイルパラメータに関連付けられた少なくとも1つの索引フィールドのビンとの間で対応関係を確立するステップ、すべて前記個別記録の入力ファイルパラメータに対応する1つまたは複数のビンで索引付けられたデータコンテナを識別するステップ、ならびに識別されたデータコンテナを、前記個別記録の少なくとも1つの属性でインクリメンタルに更新して、属性を記述する統計データを得るステップを、実行するように構成される、更新するステップと
を実行するように構成されることを特徴とする。
好ましくは、このシステムはまた、照会を受け取る手段を備え、この手段は、1つまたは複数の処理装置を使用することによって各照会に対して以下のステップを実行するように構成され、これらの処理装置は、照会内で、1つまたは複数の照会フィールド、およびその照会フィールドに関連付けられた少なくとも1つの照会フィールド値を識別し、各照会フィールドと索引フィールドとの間で対応関係を確立し、各照会フィールド値と、前記1つまたは複数の識別された照会フィールドに対応する各索引フィールドのビンとの間で対応関係を確立し、それによって照会に対応する1組のビンを定義し、照会に対応する1組のビンを含む索引で索引付けられた関連するデータコンテナを探索および識別し、識別された関連するコンテナの統計データを検索してユーザへ送り、それによって、含まれるデータの量とは独立して、数ミリ秒程度の経過時間内で、エンドユーザ照会に応答して統計データの検索を可能にするようにプログラムされる。
本発明はそれによって、高度な照会、すなわち毎日の統計データの収集および演算のような膨大な量の情報のフェッチを含む照会に、非常に短い時間で応答することを可能にする。
本発明の別の目的は、前述のステップのいずれか1つによる統計データを提供する方法を少なくとも1つのマイクロプロセッサに実行させるように指示されたコンピュータ可読コード手段を含む、非一時的コンピュータ可読記憶媒体上に記憶されたコンピュータプログラム製品である。
本発明の様々な特徴について、説明および定義により以下に詳述する。
統計データ
本発明は、多数の生データから演算された統計データを作成し、記憶し、インクリメンタルに更新し、かつ検索するシステムを提供する。所与の変数に対して、これらの統計データは、たとえば、頻度分布、分布の代表値、たとえば平均値または中央値、分布の分散、たとえば標準偏差の測定、百分位数/四分位数によって識別される分布自体の性質などに関することができる。
そのような統計データは、限定的ではない。統計によって調査されるデータの性質もまた、限定的ではない。
典型的な例は、販売中の、または顧客によって支払われた、任意の所与の製品またはサービスの価格に関する統計に関する。本発明の特に有利な用途は、乗客によって実際に支払われた輸送チケットの価格に関する統計データに関する。
索引、索引フィールド、索引フィールド値、およびビン
索引フィールド(IF)とは、分析すべき別のパラメータの統計を特徴付けることに関するパラメータである。たとえば、旅行の価格に関する統計データの場合、索引フィールドは、旅行の出発地(たとえば、索引フィールド=「都市」、「国」、「地域」など)、旅行の位置的な目的地(たとえば、索引フィールド=「都市」、「国」、「地域」)および/もしくはテーマ別の目的地(たとえば、索引フィールド=「文化的目的地」、「スポーツの目的地」、「美食の目的地」、「野生生物の観察」、「娯楽」など)、出発日(たとえば、索引フィールド=「正確な出発日」)もしくは「出発期間」(たとえば、索引フィールド=「正確な出発日」、「出発月」、「出発週」)、帰着日(たとえば、索引フィールド=「正確な帰着日」)もしくは「帰着期間」(特有の月または週または週末)、あるいは「旅行タイプカテゴリ」(到着後の旅行期間)、「予約日」もしくは「予約期間」、「事前購入カテゴリ」(予約から出発までの期間)に関することができる。記載の例で以下に挙げる索引フィールドは、理解のために選択されたものであり、限定的ではない。
索引フィールドの値(IFV)とは、事前定義された値領域内から索引フィールドを割り当てることができる値である。この値は、特定の実体または実体の集まり(たとえば、空港または都市または目的地のテーマ)を表す数字(日数)または英数字コードとすることができる。索引フィールド値は通常、事前に決定された指定の固定の長さである。たとえば、旅行クーポンの価格に関する統計を分析するとき、
- 索引フィールド「出発地」に対する索引フィールド値は、ナイロビ(最初の出発都市)、ケニア(最初の出発国)、アフリカ(地域)の1つとすることができる。
- 旅行の目的に関する索引フィールド「目的都市」、「地域」、「野生生物の観察」、「鉄道博物館」に対する索引フィールド値は、たとえば「ナイロビ」とすることができる。したがって、1つの単一の索引フィールド値を複数の索引フィールドに関連付けることができることが明らかである。
- 出発日に関する索引フィールド「正確な出発日」、「出発週」、「出発月」に対する索引フィールド値は、「2007年6月14日」とすることができる。
- 索引フィールド「旅行タイプカテゴリ」または「旅行期間」に対する索引フィールド値は、1日間、3日間、2週間、1ヶ月間および3日間などの1つとすることができる。
- 索引フィールド「事前購入カテゴリ」に対する索引フィールド値は、1日間、3日間、2週間、1ヶ月間などの1つとすることができる。
- 索引フィールド値は、適当な固定の長さの*を繰り返すことによって指定されるワイルドカードとすることができる。これは、キャッチオール型の索引値のようなものであり、その意味は、演算で典型的に見られるドントケア(don't-care)記号に対応する。
ビンは、索引フィールドの値がその中で割り当てられることが保証される領域を数学的に表す。ビンに割り当てられるラベルは、索引フィールドに対する索引フィールド値と考えられ、この長さに対応する。これは、索引フィールド値が集まりに対応する場合でも当てはまるが、そのラベルの意味は単一の実体ではなく、数字範囲の両端(extremities)によって示すことができる値の個別の集まりまたは連続する集合を表す。たとえば、索引フィールド「月別の出発期間」の領域は、1〜12の範囲の12個のビン内で整数として個別に定義することができ、これにより、1から12までの間に位置する1つのビンラベルにその年のすべての日付を大まかに分類する。
同様に、索引フィールド「野生生物の観察」または「テーマ別の目的地」は、狩猟旅行にとって良好な開始点である都市に対応するビン「狩猟旅行(safari)」を有することができる。ビン「狩猟旅行」は、索引フィールド値「ナイロビ」、「マラセレナ(Mara Serena)」、「ハボローネ(Gaborone)」、および狩猟旅行で有名な国立公園付近に位置する他の都市などを収集することができる。
入力ファイル、記録、属性、データコンテナ
入力ファイルとは、システムによって分析すべき元のデータセット、生データを含む、システムによって受け取られるファイルである。システムは、入力ファイルを分析し、入力ファイル内の記録の属性を保持し、削除し、または関連する事前定義された索引フィールドの集まりに対応する適当な索引フィールド値に変換し、照会に応答して結果としてシステムによって統計を提供すべきパラメータに関連付ける。入力ファイル内のすべてのデータは、分析される前は生データと呼ばれる。
元のデータセット(生データ)では、記録は属性のタプル(tuple)にすぎず、そこから、統計が求められている1組の索引フィールド値またはパラメータを定義し、次いで演算することができる。たとえば、航空便価格と呼ばれるパラメータに影響を与える唯一の索引フィールドとして出発地および目的地をモデル化することに決めた場合、入力データソースファイルをクーポンまたはチケットのどちらかとすることができる。各クーポンは、ちょうど表またはスプレッドシート内の1つの行のような記録であると考えることができ、表の列ヘッダは、出発地、目的地、出発日、発券日、PNR日、客室クラス、運賃クラスなどのような多くの属性に対応し、これらの属性のいくつかは、統計に関心のある索引フィールド、たとえば出発地、所与のパラメータ、たとえば価格に索引付けるための当該目的地になるように選択される。変換プロセスは、選択された索引フィールドの変換された索引フィールド値に到達するように、元のデータセット上の属性値全体で実行される。たとえば、出発までの日数が索引フィールドとして選択された場合、変換プロセスは、出発日およびPNR日(または発券日)と呼ばれる元のデータセット属性を利用して、出発日-PNR日または出発日-発券日として、「出発までの日数」という索引フィールドの値に到達する。
変換されたデータセットでは、記録の概念が異なることに留意されたい。変換された記録のリポジトリでは、各記録は、索引の木における経路である。元のデータセット内の多くの記録は、変換されたデータセット内の単一の記録にマッピングされる。一例として、主要な調査パラメータとして価格統計に関心があり、価格の主要な決定要因として出発地および目的地をモデル化することに決めた場合を検討してみる。ここで、第1のレベル索引フィールドが出発地空港である場合、クーポンが解析されるたびに遭遇するいくつかの出発地空港の数が膨大であるため、複数の索引値は、各出発地空港の索引フィールド値として分岐する。第2のレベルが目的地空港である場合、所与の出発地空港に対する各目的地空港に対して複数の索引フィールド値が分岐し、その結果、2レベルの木が生じる。最終的に、各出発地-目的地索引の対に対して、複数の価格が存在可能である。したがって、複数の価格は各目的地ノードから分岐し、その結果、その木の第3のレベルが生じる。すべての固有の出発地-目的地-価格のトリプルまたはこの木における経路それぞれに対して、頻度カウントの結果、木において第4のレベルが生じる。しかし、その木のより高いレベル内の1対多の関係とは異なり、第3のレベル内の各木ノードと第4のレベル内の各ノードとの間の関係は1対1であることに注意されたい。その木における索引経路に対する価格-頻度カウントの対は、「データコンテナ」と呼ばれ、実際には、同じ索引フィールド値、たとえばNCE-NYCを有するすべての元の記録の異なる価格の分布を、出発地-目的地都市として記憶する。(出発地、目的地の集まり)の対および(目的地、価格の集まり)の対を、「索引コンテナ」と呼ぶ。通常、根から開始する木における完全(葉まで)または不完全(葉に届かない)な任意の経路が、通常、コンテナと呼ばれる。
照会、照会フィールド、および照会フィールド値
照会は、データに関する統計を入手してそれを統計的に分析するために、ユーザによって充填されて送られる。照会は、本発明で「照会フィールド値」と呼ぶ1つまたは複数の探索基準を含むことができる。照会は、多数の照会フィールド値を含むときは非常に複雑になることがあり、または1つもしくは少数の照会フィールド値を含むときは基本的なものになることがある。
照会フィールドとは、照会を特徴付けるパラメータである。各照会フィールド値は、照会フィールドに関する。各照会フィールドは、索引フィールドに対応する。照会フィールド値に対応する索引フィールドがないとき、任意選択のステップが実行される。これらの任意選択のステップについては、以下に詳述する。
所与の照会フィールド値は、所与の照会フィールド値の照会フィールドに対応する索引フィールドのビンに対応する。「対応する」とは、照会フィールド値が索引フィールド値(本当の値もしくは記述値)に類似している、索引フィールドのビン内に含まれている、または索引フィールドのビンに等しいことがあることを意味する。照会インターフェースがユーザ入力を受け入れることができる形式または形状がどのようなものであっても、第1にそのままの入力を変換して、変換されたデータセット自体を作成するために使用された索引とまったく同じ順序の索引フィールドの適当なビン値にすることによって、その入力を照会フィールド値のストリングに変換しなければならない。
たとえば、変換されたデータリポジトリが2つの索引フィールド値によって索引付けられており、第1の索引フィールド値が出発地、旅行タイプ、および開始週の連結を含む複合タイプであり、第2のレベルの索引が目的都市である場合、「ドバイからナイロビまで、出発日が8月4日であり、旅行期間が25日間である旅行に対して、旅行者によって実際に支払われた価格の頻度分布はどのようなものか?」という照会は、まず第1の索引に対する索引フィールド値としてユーザ入力をDBX532のようなストリングに変換し、次の索引に対応するコンテナを入手し、検索された索引内で第2の索引NBOを累進的に探索して、最終的なデータコンテナを入手することによって答えられる。
したがって、本発明の有利な特徴は次の通りである。
- 個別記録ではなく記録のグループ(すなわち、ビジネス関連コンテナ)について記憶し、索引付けし、理由付けする。従来のデータベースで行われるものとは異なり、本発明は、個々の微小な記録を記憶する必要なく、記録のグループについて記憶し、索引付けし、検索し、かつ理由付ける能力を有する。
- コンテナ索引またはコンテンツの演算は、照会時には実行されない。すべては事前に演算されている。照会時には、関連する記録のみが探索され、発見される場合も、発見されない場合もある。すべての索引、各コンテナに対する再帰的および非再帰的コンテンツは、特定のビジネスの必要に対して個別記録のどのフィールドが重要であるかに基づいて事前に演算されている。照会時には、正しい記録に対応する統計データコンテナのみが検索される。
- 異なるビジネスユーザが、同じデータまたは部分的に重複するデータに対して異なる索引を必要とする場合、別個の事前演算により、異なるファイルを作成し、次いでリポジトリの異なる索引付けが行われ、これらのリポジトリについて照会を行うことができる。
- 索引は、高速検索のための莫大なメモリ内の索引付きの表にアドレス指定するためのキーとして働き、RAM(ランダムアクセスメモリ)常駐グループ記録データにより、高速検索が可能になり、したがってRAM機械に比べて低速の現在のI/O機械に打ち勝つ。これを実現するために、ファイルサイズは、本発明の以下の説明で述べるように、許容できる制限内で維持される。
- 索引は、所与の索引付き変数の値の1つと組み合わせられてワイルドカード文字*になり、その意味は「ドントケア」である。リレーショナルデータベース用語では、これは、関連する表のすべての可能な結合に対する結果を事前に演算することを意味する。
- 過去の演算を破棄することなく新しい個別記録を追加する必要があるとき、または古い個別記録を削除する必要があるときに、コンテナを更新するインクリメンタル機構。新しい個別記録を追加する必要があるとき、その対応する索引が作成され、探索される。そのような索引が発見された場合、パラメータに対応する統計が更新される。順序値または区間値のみが、適当なカウントまたは新しい値で更新される。新しい個別記録が、対応する索引付きのコンテナをもたない場合、その対応する索引が作成され、コンテンツが更新される。
- 上記の機構を使用してビジネスの必要に関連するすべての基準によって統計的な価格分布を作成し、記憶し、かつ漸インクリメンタルに更新する機構。個別記録の総数の大幅な増大にもかかわらず、コンテナサイズおよびファイルサイズは、使用される頻度分布表現のため、それほど増大しない。新しい個別記録をコンテナに追加することで、変更が最小ですみ、それぞれの頻度ビン内のカウント値のみが変更される。他のデータは追加されない。これにより、ファイルサイズを制御下で維持する。
本発明のデータ構造からリアルタイムで処理されることが意図される種類の照会の例示的な結果を示す図である。 記憶情報へのリアルタイムアクセスを可能にするために、ウェアハウスデータベースからプリフェッチしたデータがどのように組織化されるかについて説明する図である。 データ構造の演算された統計データへの高速アクセスを可能にするために、エントリキーがどのように記憶および組織化されるかを示す図である。 データウェアハウスから収集された統計データの高速の索引付け、検索、および表示を可能にする、本発明によるシステムの全体的なアーキテクチャを示す図である。 本発明によるシステムの性能について論じる図である。 入ってくる生データからの索引ファイルのインクリメンタルな更新について論じる図である。
本発明の以下の詳細な説明は、添付の図面に関する。本説明は例示的な実施形態を含むが、他の実施形態も可能であり、本発明の精神および範囲から逸脱することなく、記載の実施形態に変更を加えることができる。
以下の本発明の詳細な説明は、旅行データ、より具体的には航空会社の航空便および運賃を伴うGDSの文脈で示すが、本発明は、あらゆる種類のデータを処理するように容易に適合でき、したがって航空会社の旅行サービスの分野での適用に制限されないことが、情報システムの当業者には明らかになるであろう。
図1は、本発明のデータ構造からリアルタイムで処理されることが意図される種類の照会の例示的な結果を示す。図1はまた、その種類の照会に応答して提供される統計データの表示の一例を示す。
本発明のデータ構造によって可能になる照会は、実際には、通常のリレーショナルデータベースに対して発行される照会(たとえば、SQL照会)とは大きく異なる。これらの照会は主に、図1の例示的な表示を得るには多くのリレーショナルデータベース表の個々の項目を代わりに収集および処理しなければならないために普通なら必要とされるはずのいかなる後処理も示唆しないという点で異なる。
ある大会社を経営するには、担当の管理チームおよび専門家は通常、統計データを収集する必要があり、場合によっては、データウェアハウスの様々なデータベースからデータの断片を組み立てて、毎日更新し続けなければならない。本発明を説明する文脈では、航空業界、予約数、および所与の出発地から所与の目的地までの航空便に対して乗客によって支払われた実際の価格は、専門家が本発明のデータ構造を実施するソフトウェアアプリケーションからリアルタイムで表示したいと考える種類の要求に対応する。
したがって、110に示すように、たとえば、フィンランドのヘルシンキ111とノルウェーのオスロ空港112の都市間で、任意の出発日115(エントリフィールドは空)で、すべての予約された帰着日または旅行期間117に対して支払われたすべての予約を表示したいと考えてもよい。出発地、目的地、出発日、帰着/期間、および事前予約時間というフィールド(114)はそれぞれ、照会可能フィールドを構成する。これらの値は、上記で定義した記述テキストコードまたは数字のいずれかである。旅行業界にとって重要な関心のある関連するパラメータは、図示のように8つのビン内に構成される事前予約または事前購入時間119である。この例示的な表示ではすべてが考慮され、したがって、棒グラフ110は、発生頻度と、指定された出発地と目的地の航空会社の都市間で登録されて支払われた実際の予約の価格との関係を示す。明らかに、平均値、標準偏差、最小値、および最大値などを含むこの分布を特徴付けるすべての標準的な統計数を、同じく演算および表示112することができる。
ユーザは、特定のタイプの旅行期間127のみを考慮し、2週間以下の事前予約時間の場合、特定の日付125の出発のみを示すように表示をさらに精錬したいと考えることがあり、表示される棒グラフは120に示すようになる。
この種類の照会をリアルタイムで表示および更新できるように、以下の図で詳細に説明する本発明のデータ構造は、照会されるとすべての必要な断片を容易に迅速に表示できるように、データウェアハウスからのデータ構造を事前にフェッチし、演算し、かつ組織化しなければならない。本発明を示すために使用される説明の文脈では、航空旅行業界において、110で示す例示的な種類の高度な要求に対して、データ構造は、世界中のすべての航空会社の都市および空港に場合によっては対応するように組織化され、また、データ構造内に直接エントリを提供して、出発日、旅行期間、事前予約時間などのような他の選択されたパラメータの表示を可能にする。さらに、ワイルドカードパラメータが可能であり、したがってユーザは、出発日のような特定のパラメータを指定しないという自由を有する。このデータ構造は、たとえば包括的な出発地および目的地を含む可能性を提供し、したがってユーザは、たとえば厳密な出発地、たとえばヘルシンキから、世界の特定の領域、たとえば北米中のすべての都市および空港へのすべての航空便の予約を確認したいと考えることができる。
本発明のデータ構造は、旅行用途でのエンドユーザによっても同様に使用することができ、これはオンラインで利用可能になり、旅行の予想を可能にするはずである。使用されるデータは、GDSデータベースから抽出された実際の価格であり、したがって航空便を予約するために旅行者によって支払われた価格であるため、図1に示す収集および表示は、非常に有用なツールになる。将来の旅行の価格を推定して旅行者の選択を決定するために使用できるツールは、上記の特徴を利用する。たとえば、厳密な日付を選択する必要のない可能性および/または厳密な出発地もしくは目的地を選択する必要のない可能性は、今日の旅行場所に関して大きな自由度を加える。
実際には、これらの後者は通常、利用可能性にかかわらず、旅行者によって支払われた実際の価格の範囲および分布は単に無視して、公開された運賃のみを考慮し、さらにより多くの場合、公開された最低運賃のみを考慮する。さらに、データ構造は、出発地および目的地が、たとえば地理的にはまったく共通点のないテーマ別の目的地を含むように強化することができる。そのようなテーマは、たとえば、エジプトのピラミッドならびにメキシコおよびラテンアメリカのコロンブス以前の民族のピラミッドを含む古代文明とすることができる。上記で定義したように、古代文明は、専用の索引フィールド値および照会フィールド値に対応することができる。
本発明の以下の説明でさらに述べるように、上記で論じた種類の照会に応答して統計結果を表示する検索プロセスは、関連する大量のデータとはほぼ独立しており、数ミリ秒程度で行われる。類似の応答時間は、分布の特別なパラメトリックサブセットに関する照会に対しても保証され、表示によって、ユーザ選択可能な方法で分布サブセットの容易な視覚的比較が可能になる。
図2は、記憶情報へのリアルタイムアクセスを可能にするために、ウェアハウスデータベースからプリフェッチしたデータがどのように組織化されるかについて説明する。
この目的を実現するために、プリフェッチされたデータ記録を有限数のデータカテゴリ内に再グループ化することによって、これらのデータ記録の圧縮が実行される。これらのデータカテゴリを本説明ではビンと呼び、考慮されているビジネスのタイプ、すなわち本発明について説明するために選択されたこの例では航空業界に最良適合されている。次いで、プリフェッチされたデータは、旅行代理店、オンライン旅行サービス提供業者、および航空会社自体を含む様々な販売チャネルを通じて毎日発行されるすべての発券データ記録またはクーポン(現在は非物質化された印刷済みチケットクーポンに関する)をウェアハウスから検索することからなる。全体で、相当な期間、たとえば1年間にわたって蓄積されると、これは膨大な量の情報になるが、以下のビンを使用してデータ構造内で圧縮されている。
事前購入日は、旅行業界にとって非常に重要なパラメータである。従来、事前購入日は、次のように、わずか8個の標準ビン内に再グループ化される。
別の圧縮ステップは、以下に示すように、旅行タイプを同じく8個の標準ビン内に再グループ化することによって実現される。これにより、その年のすべての日付を出発または到着と見なす365*364の次元から、8次元のデータ空間へ、データ空間を大幅に縮小することができる。
第3の圧縮ステップは、個々の日付ではなく、1年の52週のみを出発日として考慮することによって得られ、したがって各平日は、その年の52個の週ビンの1つに入る。したがって、365次元のデータ空間が、52次元の空間に圧縮される。
この例では出発地と目的地の対に対して特殊な圧縮を試行しないが、これは本発明を限定するものではない。本発明は、複数の目的地空港を包含する「アジア」、「アメリカ」などとラベル付けされたより包括的なビンに拡張することもできる。世界中には数千の空港が存在するが、実際にはすべての対の組合せを考慮する必要があるわけではなく、いずれにしても、実際に航空便がその間を運航する空港の対に対してのみ、クーポンの発券を発行すればよい。これにより、考慮すべき組合せの数を劇的に低減させる。
次のステップは、データ構造に対する1次索引またはエントリキーを定義することである。1次キーを構造化する方法は、本発明を説明する文脈、すなわち航空業界に適合される。他の構成も明らかに可能である。この例では、1次キーは第1のレベルの索引であり、
- 空港および都市コードに対して通常3文字のIATA(国際航空輸送協会コード)を使用する航空便の出発地(第1の索引フィールド)、
- 上記で示したように0〜7の範囲内の対応するビンの1桁の数である旅行タイプの基準(第2の索引フィールド)、
- 1〜52の範囲内の2桁の数である出発週(第3の索引フィールド)
を連結することによって得られる。
データ構造を索引付けるために使用される1次キーの例は、次の通りである。
1次キーは、文字列(text string)、場合によっては非常に長いストリングのフラットファイルの形式をとる参照表をアドレス指定するための主エントリキーであり、各ストリングは、ウェアハウスからプリフェッチされた生データから演算された統計データを圧縮形式で保持し、この1次キーに整合する。その一例を図2に示す。
この点で特筆すべきは、圧縮アルゴリズムを使用して文字列をさらに圧縮し、記憶要件を低減させることができ、したがって、最大のデータ構造でもコンピュータの主メモリ内に完全に保持することができ、エントリキーのいずれに対しても非常に速いアクセスを保証することである。
この例200では、201、202、および203という3つの1次キーが示されている。第1の1次キーは、週索引フィールド内にワイルドカード文字を有する1次キーである。したがってこの1次キーは、その年のいずれかの週にケニアのナイロビ(NBO)から出発するタイプ5のすべての航空便の統計データを再グループ化する。したがって、この文字列はかなり長い。この文字列は、205で示す位置で終了する。
各ストリングは、目的地および事前購入または事前予約ビンごとに演算された統計データの境界を定義する2次キーを含み、したがって、以下に図3で説明するように、ストリング内の対応するキーの索引が検索された後、2次キーを直接アドレス指定することができる。ストリング201のすべての第2のレベルのキーを210で示す。2次キーは、対応する1次キー201に対してデータウェアハウスから航空便の予約が検索されたすべての目的地を表す。出発地の場合と同様に、目的都市および空港も3文字のIATAコードによって表される。3文字のIATAコードはそれぞれ、「最初の出発都市」という索引フィールドの索引フィールド値である。
第3のレベルの索引付けは、事前に定義された事前購入ビンコード、すなわち220で示す0〜7の数によって行われる。演算された統計データは、任意の2つのキーによって境界が示される230のようなコンテナ内で保持される。
図3は、データ構造の演算された統計データへの高速アクセスを可能にするために、エントリキーがどのように記憶および組織化されるかを示す。
各1次キーは、探索木300の根に位置する。木は、簡単な文字列301で例示されている。このとき、1次索引、第1のレベルのキー310はNBO532であり、この参照表エントリが、前述のように出発日に対して旅行タイプ5であり、その年の第32の週に属するNBO(ケニアの
ナイロビ)からのすべての航空便を索引付けていることを意味する。木の1次索引は、この木のすべての索引に対する親索引である。
この参照表エントリ内で、この例では、目的地空港によって、すなわち事前に定義された第2のレベルのキー320、すなわちDXB(アラブ首長国連邦のドバイ)、KGL(ルワンダのキガリ)、およびLHR(英国のロンドン)によって索引付けられた3つのコンテナが存在する。目的地空港を有する索引はそれぞれ、1次索引に対する子索引である。より一般には、この技術分野で通常認められるように、木の所与の索引に対して、親索引とは、その木のうち、所与の索引より木の根に近い索引である。前記の所与の索引の場合、子索引とは、その木のうち、所与の索引より木の根から遠い索引である。場合によっては、所与の索引は、複数の親索引および複数の子索引を有することがある。
すべての事前購入カテゴリに対して統計が演算された場合、それらの統計は、この時点325で本発明のデータ構造内に挿入されたはずである。したがって、対応するデータコンテナのコンテンツを開いて、コンテンツが属する購入カテゴリにかかわらず、ナイロビからドバイへのすべての旅行に関する統計にアクセスすることができる。
そうでない場合、各事前購入カテゴリは、第3のレベルのキー330で別個にアドレス指定される。この例の第1の目的地空港、すなわちDXBの場合、第3のレベルのキーは、この事前購入ビンに対する統計を示すビンコード6である。このコンテナ335に対する統計は、104347-0-104347-104347-3-0というデータブロックであり、このデータに対する頻度分布は104347-3である。これらの数字は、演算された第nの行までの統計パラメータの状態の値であり、後の式で見られるMn、Vn、Sn、ならびにMn+1、Vn+1、Sn+1を演算するために使用されるいくつかの他のインクリメンタルな状態に対応する。
通常、所与の目的地に対して、複数の事前購入ビンが存在する。次いで、事前購入または事前予約ビンのそれぞれに対して同じ形式335が繰り返される。たとえば、図2のデータ構造では、第2のレベルのキーAMS(オランダのアムステルダム)210に対して、5つの第3のレベルのキー220、すなわち0、1、2、3、4、および6が定義されており、それぞれ独自の統計データセットを保持する。
300に示す木のような一連のキーの木(1次キーごとに1つ)は通常、エントリキーの高速検索を可能にするために使用される最も好都合な構造であり、したがって、多次元の参照表内のコンテナを直接アドレス指定することができ、したがってほぼ一定の時間内で検索することができる。しかし、グラフまたはノードのネットワークを含む他の組織構造も同様に考慮することができる。
図2および図3に示す多次元のデータ構造により、業界ユーザのグループにとって重要な効率的な探索指向の索引付きのデータの記憶を可能にすることができる。したがって、以下のような高度な照会を処理することができる。
索引は、RAM(ランダムアクセスメモリ)に常駐する埋め込まれた索引付きの表への1次キーとして使用される。索引付きの表は、索引付きの記憶にランダムにアクセスする周知の高速方法であるために使用される。索引付きの表により、一定の時間もしくはほぼ一定の時間、または悪くても、たとえばC、C++などの従来のプログラミング言語のアレイへのランダムアクセスのような対数時間のアクセスを可能にする。これは、本発明の速度にかなり寄与する。
さらに、本発明はメモリ-CPUバスを実施し、これもまた、統計データの処理および検索の速度に寄与する。
たとえばNBO532のような索引は、本発明による様々な異なる方法を使用して視覚化および実施することができる。
第1の方法によれば、索引は、索引フィールドまたは索引の階層として視覚化および処理することができる。たとえば、NBO532は、NBO→5→32という階層と見なすことができる。こう考えると、全体的には、他の潜在的なノードが第3の索引レベルでNBOから出る可能性がある(たとえば、NBO→5→41またはNBO→5→45)。NBO532、NBO541、およびNBO545は、NBO5の子索引である。同様に、他の潜在的なノードが、第2の索引レベルでNBOから出る可能性がある(たとえば、NBO→4→28またはNBO→4→26)。NBO→4→28およびNBO→4→26は、NBOの子索引である。これは木指向の実装形態であり、全体的には、データ構造全体がそのような木からなる森であり、各木の根は特有の出発地である。根は、親索引をもたない。葉は、子索引をもたない。子索引(children index)は子索引(child index)とも呼ばれる。
より一般には、フィールドを階層的に順序付けることは、フィールドの階層を決定することを意味する。この階層は自由に決定され、好ましくは期待される照会に応じて決定される。索引の木としてファイルを階層的に索引付けることは、その索引の階層的な順序に応じて各ファイルを木に配置できることを意味する。
たとえば、上記の例では、出発地に関するフィールドの階層は、旅行タイプに関するフィールドの階層より大きい。さらに、旅行タイプに関するフィールドの階層は、開始週に関するフィールドの階層より大きい。たとえば、図3に示したように、出発地、旅行タイプ、および開始週に関するフィールドは、目的地空港に関するフィールドより階層的に大きく、目的地空港に関するフィールドは、事前購入カテゴリに関するフィールドより階層的に大きい。
索引の木としてファイルを階層的に索引付けることに関して、これらのファイルは、フィールドと同じ階層的順序で、索引に応じて索引付けられる。NBO532という索引は、たとえば、NBO532+DXB、NBO532+KGL、NBO532+DXB+category0、NBO532+KGL+category0という索引より階層的に大きい。したがって、索引の木において、NBO532という索引で索引付けられたファイルは、NBO532+DXB、NBO532+KGL、NBO532+DXB+category0、NBO532+KGL+category0という索引で索引付けられたファイルより根に近い。したがって、NBO532+DXBという索引は、たとえば、NBO532+DXB+category0という索引より階層的に大きい。したがって、このときNBO532+DXBという索引で索引付けられたファイルは、NBO532+DXB+category0という索引で索引付けられたファイルより根に近い。フィールドの階層的な順序付けおよびファイルの階層的な索引付けに関するこれらの説明はすべて、本説明および図にはっきりと示されている。
別の実装方法によれば、索引は平坦化されており、索引は、NBO532がいかなる階層もなく単一の索引として処理されるという意味で複合物である。これは、たとえばNBO428またはNBO426が、NBOの階層的な子ではなくなり、独立して他の木の根になることを意味する。
これらの2つの極端な方法間では、本発明はまた、索引構造が表す次元のチェーン全体の一部(たとえば、出発地→旅行タイプ→開始週→目的地→事前購入→価格→価格の頻度)が階層的な、かつ平坦化された索引の混合物であるという索引の可能性を提供する。この索引を、ハイブリッド索引と呼ぶ。たとえば、平坦化された索引(たとえば、NBO532)として、すなわち階層なしで、出発地→旅行タイプ→開始週と、次元の残り部分(たとえば、目的地および事前購入)を階層的として表すことを選択することができる。またはたとえば、(出発地-旅行タイプ)を平坦化として、残り部分(開始週→目的地→事前購入)を階層的として選択することができる。
通常、階層的表現は、平坦化された表現より多くのメモリを消費するが、より多様な統計的照会を満たすことができる。平坦化された索引にはその逆が当てはまり、通常、それほど柔軟性を提供しないが、それほどメモリを必要としない。いずれにせよ、どの方法が使用される場合でも、すなわち1つの次元または1つの平坦化された複合次元の場合、索引は結局、木における経路または縮退経路になる。
上記から、次元のシーケンスと、これらの要素が階層的モードであるか、それとも平坦化モードであるかとの両方に関して、索引木の階層的な順序付けを選択する様々な順列または組合せの可能性が存在することが明らかである。どのハイブリッド索引を選択すべきかは、業務用アプリケーションが必要とする照会の範囲を知り、それに対して妥当なメモリ要件内でそのような要件を収容することに依存する。階層の一部であるすべての索引が、次の次元の可能な索引フィールド値またはビンを索引付けるため、メモリを低減させるための鍵は、無限または有限、個別または連続の1次元における可能な入力ファイルパラメータの範囲を事前に知ることからなる。これは、索引フィールドおよびビンの作成に影響を与え、それによって階層的索引内の木の分岐要因に影響を与え、高い分岐要因はメモリ要件を増大させる。また、1次元のすべての可能な入力ファイルパラメータ/索引フィールド値を保持すること、またはより容易に理解するためにそれらの値をビンにグループ化することは、ビジネスにとって意味があるかという質問をする必要がある。旅行タイプおよび事前購入に対する詳細な例に関して上記で論じたように、ビンに入れることで、現在の次元(たとえば、旅行タイプ)の分岐要因を低減させ、索引付け方式(たとえば、開始週→目的地→事前購入)に従う次元の分岐要因に対する組合せの爆発効果を低減させることによって、メモリ要件を低減させる。
1つの当然の疑問は、索引、たとえばNBO532に対応する照会を送った場合にどの値が出力されるかである。出力されるものは、旅行タイプ5および開始週32のNBOから発生したすべての旅程に対する属性、通常は価格の頻度分布を含む統計コンテナである。
したがって、本発明の重要な態様は、この細密な輸送サービス提供業者領域依存データ索引付け方式とそれぞれの統計コンテナをリンクさせる関連付けデータ構造をメモリ内に作成することであり、これらの索引が作成され、それぞれの統計データコンテナは、バッチ前処理時に格納される。これらの索引には、選択された索引付けのレベルでデータコンテナを取り付けることができ、したがって、索引のそれらの値の組合せに対する正確な統計を得ることができ、結果的に、ユーザ指定の照会を得ることができる。このようにして、「ニースからどこへ行くことができるか」または「その年の第32の週のNCEから目的地への価格はどのようなものであるか」のような様々な照会に、極めて急速に答えることができる。
特にデータ量がメモリ内に収まらない場合、複数の機械のRAMを利用して速度を増大させることができる。2人の異なるユーザが同じデータに対して速い応答時間のアクセスを必要とする場合、それらのユーザに対する異なる索引を異なる索引表内に作成することができ、分散させたRAM上へロードすることができる。
図4は、データウェアハウスから収集された統計データの高速の索引付け、検索、および表示を可能にする、本発明によるシステムの全体的なアーキテクチャを示す。
本発明を実施するアプリケーションソフトウェアは、コンピュータ化されたプラットフォーム410から実行されるものとする。たとえば、GDSによってその系列の旅行代理店、航空会社、および旅行サービス提供業者に対応するために設定された大きな記憶、演算、およびネットワーク化資源から実行される。本明細書では、このソフトウェアアプリケーションを、標準価格アグリゲータまたはTPA420と呼ぶ。TPA420は、統計コンテナの高速検索を可能にするために、ファイル432、通常は以前の図で説明したように索引付けられた統計データのフラットファイルを作る。索引付けられたファイルは、索引ファイルとも呼ばれる。
本発明のこの例示的な実装形態では、アグリゲータが機能する、入ってくる生データは、たとえばGDSによってその顧客のネットワークに対応するために実行される様々なデータベース内へ毎日蓄積されるクーポンファイル434である。通常、クーポンは、系列の旅行代理店、町の航空会社の旅行オフィス、または空港から、遠隔接続された旅行業者440によって予約され、またGDSが対応するオンライン旅行サイトを使用する旅行者から直接予約される。
索引付きのフラットファイルは、予定の間隔で、たとえば1日に1回更新され、その結果、すべての毎日のトランザクションが登録されているGDSデータウェアハウス410を実施する記憶および演算設備から、索引付きのフラットファイルを生成するのに必要なクーポンファイルおよび任意のデータがそれに応じてダウンロード436される。これらのデータは、リポジトリ430、通常はFTPリポジトリ内に記憶される。
通常、たとえば単一の処理装置上で、1ギガバイトのデータファイルを索引付けるには8分を費やす。
索引付きのフラットファイルは、伝達された最新のクーポンファイルからアグリゲータアプリケーション420によって生成および/または更新された後、リポジトリ内に記憶され、インポート452されて、サーバ450の演算資源によって記憶および処理される。サーバは、アグリゲータアプリケーションが、従来の旅行オンラインサイトおよび従来の旅行代理店によって提供されるサービスを向上させるための貴重なツールとして利用可能になったとき、アグリゲータアプリケーションの様々なエンドユーザ、たとえばデータウェアハウス会社ならびにすべての通常の旅行代理店および顧客から統計データを収集する必要のある会社を担当する管理チームおよび専門家の照会に応答することを目的とする。
エンドユーザが誰であっても、照会の処理は、インターネットの従来のクライアント/サーバモデルを実施するために開発された標準的なソフトウェア手段のいずれかを実施することによって行われる。エンドユーザ460は通常、サーバの適当なフロントエンドアプリケーション458と通信できるように、端末およびパーソナルコンピュータ上で利用可能なクライアントブラウザの1つを実行している。本発明は、サーバの主メモリ内に完全に収まるように十分に小さい前述のデータ構造のサイズを維持することができる。したがって、索引付きフラットファイルのセットは、ウェブサービス層456を通じてエンドユーザ照会の処理を促進するために、RAM(ランダムアクセスメモリ)から作られた高速主メモリ454内に永久的に留まることができる。
図5は、標準価格アグリゲータの性能について論じる。
第1の図510は、アグリゲータによる1ヶ月の動作で処理される典型的な量のデータを示す。第1の図510は、処理される生データの量、すなわち1ヶ月間で蓄積する毎日受け取られるクーポンファイルの合計サイズ512と、その結果演算された索引付きフラットファイルサイズ514とを比較する。ハッシュ木の記憶は、10Gb/月の供給(クーポンファイル)に対して118Mb/月のペースで増える。しかし、このグラフは、月の終わりには処理済みデータが2ギガバイトに到達することを示す。
日付ごとに、入ってくるクーポンファイル、生データの処理時間は通常、図520で示す通りである。フラットファイルを索引付けるためにアグリゲータアプリケーションによって必要とされる全体的な処理時間は、毎月1時間を超過しない。日付ごとに、必要な総時間を上部の曲線522によって表す。中間の曲線524は、属性の生の値を索引フィールドビン値に変換する際に費やされる総時間の比率を示す。下部の曲線526は、既存の索引の木における経路を演算および挿入するために使用される総時間の比率を示す。
図530は、頻度分布表現およびその利益の証明として提出される。図530は、処理の第1の日に空の木から開始し、ますます多くのデータを処理するにつれて、変換されたデータセット内のコンテナ(木における索引経路)の数の勾配が低下することを示す。これは、処理の初めに、空の木を有するとき、存在しない多数の新しい出発地-目的地-価格の経路が活発に追加されるためである。次元の数が少ない場合、旅行タイプおよび開始週のみに対して注意深く選択されたビジネスにとって有意のビンの数も少ないため、すぐにこれらの経路は、出発地都市の数×目的地都市の数×可能な開始週の数×可能な旅行タイプの数のクロス積に対して全適用範囲付近に到達する。したがって、ますます多くのデータに遭遇したとき、少数の新しいコンテナしか木に追加されず、より多くのデータが頻度カウントとして追加され、勾配が0度になったときに全適用範囲の時間になる。グラフ530は、通常はコンテナの数にほとんどまたはまったく成長が見られない毎日の処理における第1の時間の処理に対するコンテナの増加の傾向を示すが、高いレベルのコンテナから開始し、ほぼ同じレベルのコンテナ、完全に平坦な増加曲線で終了する。これは、頻度カウントのみが増分された場合、ファイルサイズは、元のデータセット記録の数の増加に比べて極めて小さい量しか増加しないことを意味する。これは、ファイルサイズが、元のデータセット記録の数とはほぼ独立しており、したがって、記録の数が驚異的に増加した場合でも、やはりRAM内にロードすることができることを意味し、これは、次元の数が少ない限り当てはまる。
前述のように、変更に含まれる統計コンテナは、生データの新しい断片が受け取られるたびに、すなわち毎日のクーポンファイルから受け取られるたびに、完全に再演算されるわけではない。フラットファイルの合計サイズを低く維持し、処理時間を図520に示すものに制限するために、統計データはインクリメンタルに更新される。これを実行するために知られている数学的な技法が存在する。主な統計パラメータに対して、いくつかを以下に簡単に再び示す。
これにより、前日までに行われた演算を取り消すことなく、翌日に、毎日のトランザクションを、使用可能なはずのデータの範囲内へシームレスに統合することができる。
図6は、入ってくる生データ、すなわちクーポンファイルからの索引ファイルのインクリメンタルな更新について論じる。
営業日の終わりに、すべての発券トランザクションが既存の索引付きの表に一括して追加される。このケースを例示するために、記録の追加をはるかに小さい規模で示し、本日が2007年5月29日であると仮定する。クーポンファイルに関する現在の日付に対するトランザクションを、610として示す。
生のクーポンファイル記録610が処理によってチケット内へ再構築され、その結果、個々のチケット記録が得られる。2つの個別記録620を620に示す。それぞれの生の入力ファイル610および個別記録620は、属性(8000 KES、25 USD)および入力ファイルパラメータ(NBO、KIS、BLM、2007-Jul-01、2007-Jul-02、04など)を含む。各入力ファイルパラメータは、索引フィールド(最初の出発都市、目的都市、出発日、到着日、旅行のタイプ、事前購入グループなど)に対応する。個別記録620は、図6ではまだグループ化されていない。各個別記録に対して、第1のフィールド621はチケット数であり、第5のフィールド625は、大部分の入力ファイルパラメータを収集し、出発地、旅行タイプビン、開始週、目的地、および事前購入ビンというすべての階層的な索引フィールドをすべてこの順序で連結した表現である。
毎日のチケット記録は、日付で名付けられた別個のファイル内に保存される。
このチケット記録が作成されるときはいつでも、1次索引NBO027、NBO0**、NBO*27、およびNBO***が存在する場合、これらを更新する。マスタ索引付きの表は、メモリ内にすでにロードされているため、これはO(1)または一定の時間を費やす。索引のいずれかが存在しない場合は作成され、これは単にマスタ索引付きの表内の追加の記録である。内部の実装形態に応じて、これはO(1)時間またはO(log n)時間を費やす可能性があり、ここでnは、索引付きの表内の記録の数である。O(log n)時間は、索引作成のための時間を増大させ、存在しない場合は探索および検索時間には関係しないことに留意されたい。
新しいまたは古い表記録が識別された後、埋め込まれた目的地表を探索して、元のキーの一部でもあるキーKISを探す。存在しない場合は作成され、存在する場合は識別される。この時間もまた、O(1)またはO(log n)である。KISキーが識別されるとすぐ、すべての事前購入カテゴリに対する統計記録が更新される。この更新もまた、インクリメンタルな更新に使用される数学的な式のような移動平均、移動標準偏差、および移動百分位数のため、O(1)時間を費やす。
同じ階層的な精神で、元のキーのうち、事前購入カテゴリを表す最後の文字0が作成または発見される。この時間もO(1)またはO(log n)であるが、上記のO(log n)またはO((log n)^2)に関する。この中の統計は更新される。
頻度分布を更新するための正しい整数の価格ビンの発見はまた、一定の時間内で可能である。これは、頻度分布も価格によって索引付けられた表であるためである。また、価格は、出発地の通貨に対して記録される。適当な換算が行われる。したがってこの場合、第1の記録は、8000 KES(ケニアの現地通貨、ケニアシリング)の価格を有した。頻度分布内に8000がすでに存在する場合、その頻度は、その値を1だけ増分することによって更新され、そうでない場合、頻度分布表内の新しいエントリがキー8000および1の値で作成される。
頻度分布表のサイズは、支払われた運賃によって自然に制御され、運賃は、航空会社の運賃クラスに依存することに留意されたい。任意の所与の出発地および目的地に対して、これは小さい数である。
典型的な索引作成時間520は、図5にすでに示した。
クーポンファイルから毎日構築されるチケット記録は、日付で名付けられた別個のファイル内に保存されるため、自動化された処理で所与の日付に対する記録を位置決めするのは容易である。
前述のように、記録が1年間だけ維持される場合、これは、2007年5月29日に対してトランザクションが追加されたとき、2006年5月29日に対する記録を削除しなければならないことを意味する。
削除プロセスは、追加プロセスをそのまま逆にしたものである。2006年5月29日に対するチケットファイルが位置決めされ、各チケットがメモリ内へ読み取られる。チケット620が個別記録の索引を記録しているため、これらの埋め込まれた索引を使用して、グループ化コンテナおよびそれらのサブコンテナを位置決めする。この場合、第1の記録に対して、これらの索引はNBO027、次いでKIS、次いで0、次いで8000になるはずである。しかし、追加とは異なり、削除では、最も深いレベルから最も浅いレベルへのボトムアップを進めなければならず、これは、第1にサブコンテナNBO027KIS0内の8000頻度ビンの頻度カウント、次いでNBO027KISの0ビン内の全体的な統計更新、次いでNBO027KISビンに対する全体的な統計更新を減らすことを意味する。すべては、位置決めおよび更新にO(1)時間を費やす。8000ビン内にデータの1つの断片だけが存在する場合、8000頻度ビンは削除されず、そのカウントだけが0に低減される。この最適化により、8000頻度ビンが再び将来発生する場合、追加プロセス中に1つのO(log(n))時間の記録の挿入を節約する。これはまた、0カウントの頻度ビンを有する記録の探索により、前年と本年との間のあらゆる価格変更をビジネスユーザに対して潜在的に示すこともできるという追加の利点を有し、これ自体が、価格に対する毎年の変化を識別する別個のオフラインプロセスである。
最終的に、削除プロセスの一部として、NBO*27、NBO0**、またはNBO***に対する埋め込まれた表も更新しなければならない。
要約すると、本発明は、
- 大量の毎日の顧客データ(たとえば、航空会社のクーポンおよびGDSからの乗客の発券記録)を考慮して、各個別記録が異なるフィールド(たとえば、予約日、出発日、出発地、目的地、支払われた価格など)を有する特徴と、
- 事前に決定された基準のセット(たとえば、事前購入、旅行のタイプなど)およびそれらの組合せによって、長期間(たとえば、1年)にわたって、テラバイト規模へのデータ量の爆発を示唆する単一の次元(たとえば、支払われた価格)に焦点を当てる(個別記録ではなく)蓄積されたデータのグループを探索および検索できるようにするというビジネス上の必要という特徴と、
- そのようなテラバイト規模のデータに及ぶ複数のオンライン統計サービスを異なる業界ユーザ(たとえば、航空会社、旅行者、旅行業者)に提供するためのさらなるビジネス上の必要という特徴とを含み、
本発明は、
- 業界ユーザのグループにとって重要なそのようなデータの効率的な探索指向の索引付きの記憶のための技術的解決策と、
- 前日までに行われた演算を取り消すことなく、翌日に、毎日のトランザクションデータを、使用可能なはずのデータの範囲内へシームレスに組み込むことも可能にする技術的解決策と、
- 照会に対する統計結果の検索プロセスが、データの量とはほぼ独立しており、数ミリ秒程度である、技術的解決策と、
- 分布のアドホックなパラメトリックサブセットに関する照会の場合でも類似の応答時間が保証される技術的解決策と、
- ユーザ選択可能な方法でサブ分布セットを容易に視覚的に比較できる表示を有する技術的解決策とを提供する。
データウェアハウスおよびデータマートに関する従来技術とは対照的に、本発明は、これらのデータリポジトリによって通常使用されるリレーショナルデータベースの1つよりはるかに軽くて簡潔な手法をもたらす。実際には、リレーショナルデータベースは、背景部分で論じたようなビジネス上の問題を解決するのに関係のないあまりに多くの特徴ならびに演算およびI/Oオーバヘッドを備えている。主な違いについて、以下に説明する。
- まず第1に、リレーショナルデータベースにより、それぞれの個々の生の記録を検索することができる。ユーザが、データの特定のグループまたはサブグループの概略的な特性のみに関心をもっている場合、照会時の演算は、応答時間を著しく増大させる。本発明は、ビジネス関連グループおよびサブグループを識別し、それらのグループおよびサブグループに対する所望の特性を大きな規模で事前に演算することを提案する。これは、本発明自体とリレーショナルデータベース手法を区別する本発明の1つの重要な特性である。
- 本発明の手法をリレーショナルデータベースから遠ざける他の理由は、考慮されるビジネス環境において、ユーザは、このデータベースのみをリアルタイムで読み取ることである。これは、リアルタイムで書き込みが生じないためである。このとき、リレーショナルデータベースの場合のようにリアルタイムのコミット-ロールバック設備のオーバヘッドの必要はない。
- リレーショナルデータベースに関して本発明によって考慮される第3の点は、リレーショナルデータベースの最適な正規化-非正規化方式でデータが記憶された場合、照会に応えるには、結合が必要とされることである。リレーショナルデータベースは、数百万、さらには数十億というそのような生の記録を記憶するため、これらの結合は、応答時間に対してあまりにも大きく寄与するはずである。本発明の方式では、すべての可能な結合結果は、ビジネス関連パラメトリック値の範囲内の索引フィールド値で事前に演算される。これを実現するために、上記のように、ワイルドカード索引付け技法が使用される。
- 考慮される第4の点は、標準的なリレーショナルデータベースは、照会されたとき、ディスクから生の記録を検索してから、記録のグループ全体の演算をさらに開始する可能性があることである。現在のI/O動作は、RAM機械に比べて依然として数倍遅い。したがって、本発明のデータ構造を常駐のRAMにして、ファイルサイズをRAM限度より低く維持することによって、かなりの速度上の利益を提供する。これは、生の記録ではなくグループで作業し、新しい記録ごとに最大で数バイトが追加されるように頻度分布を記憶することによって実現され、その結果、ファイルサイズの増大の勾配が非常に小さくなる。
- さらに、本発明は微小な記録ではなくグループで作業するため(リレーショナルデータベースが行うこととは対照的に)、営業日の終わりのバッチプロセス中に記録の各グループを更新するインクリメンタルな方法が存在する。照会可能ファイルサイズは、限度よりはるかに低く維持されるため、そのファイルの別のコピー(照会されているものではない)を容易に作ることができる。このファイルは、別個の物理的機械内に位置することができ、または、第2のプロセスで、ユーザ照会応答時間に一切影響を与えることなく、すべてのリアルタイム顧客データ更新を受け取って、そのグループおよびサブグループを更新することができる。このプロセスでは、周期的な間隔でデータをファイルに保存することができる。必要なリアルタイム分解能に対応する他の特有の周期的な間隔で、または特定のデータサブグループが有効な照会下にない時間で、第2のプロセスは、ユーザ照会が実行されているファイルへ更新済みパケットを送ることができる。
すでに詳述したように、本発明によるオンライン旅行システムは、旅行パラメータとは関係なく旅行を計画する旅行者および旅行業者の能力を大きく向上させることができる。既存のシステムに対する本発明の利点は、以下の質問および応答によってさらに強調される。
質問:「価格に敏感な余暇のための旅行者で、融通のきかない日付で最も安い価格を探している。旅行システムはどのように役に立つか?」
答え:「将来の事前購入日の範囲でより低価格で行われた予約があるかどうか確認するとよい。旅行システムにより、いくつかの航空会社が過去に、本日より出発日(たとえば、2010年7月1日)の近くで低運賃クラスの一部を開放したかどうかがわかる(今日の日付を2009年12月18日とする)。つまり、今すぐ予約したいと考えていない場合、旅行システムにより、いつ(おそらく、出発日の30日前、すなわち、6月1日開始)探索を再開して予約すればこれらの価格を入手できるかがわかる。もちろんこれは、保証されるものではない。しかしこの想定は、乗客によって実際に支払われた価格に対する履歴データに基づく。したがって、非常に高い可能性がある。」
質問:「価格に敏感な余暇のための旅行者で、融通のきく日付で最も安い価格を探している。いつ旅行すべきかを知るために、旅行システムはどのように役に立つか?」
答え:「今すぐ予約したいと考えていて、出発日に融通がきく場合、本日までの最も低い価格が利用可能であった可能な事前予約期間を追加して、それらの日付の航空便を探索するだけである。」
質問:「オーストラリアへの休暇を計画している。日付または旅行期間については未定である。航空旅行の予算はどのくらいになるか?」
答え:「出発地および訪れたいいくつかの主な都市までの価格を使って旅行システムで調べるだけである。異なる事前予約日の中間の価格を予算にされたい。」
質問:「旅行探索中、偽のオンライン広告が魅力的で異常に安いチケット価格でクリックを誘う一方、サイト上ではそのようなチケット価格が見つからず、時間を無駄にしてしまうことに失望している。旅行システムはどのように役に立つか?」
答え:「旅行システムは、出発地から目的地までのチケットの価格範囲全体を、旅行タイプごとに、異なる事前購入期間によって、1年のうちの特有の出発週に対して示すことができる。つまり、その出発地および目的地で稼働しているすべての航空会社のすべての運賃クラスの価格(税込)を入手することができる。つまりまた、リアルタイムで運賃探索を始める前に、本発明による旅行システムを見れば、何を期待すべきかがわかる。不当に誘惑される確率は低くなる。さらに、予約頻度を確認することによって、供給側だけでなく要求側(誰が何を予約するか)の消費者市場の概念を入手することができる。さらに、必ずしも今すぐ予約したいと想定する必要なく、探索および予約するのによい時間はいつであるか(より低い価格)、これに対しよくない時間はいつであるかという概念を得ることができる。」
本発明の好ましい実施形態について図示および説明したが、本発明はこれらの実施形態に限定されるものではなく、以下の特許請求の範囲の範囲内で実行するために様々な形態で実施できることが、明白に理解されるものとする。
111 出発地
113 目的地
114 フィールド
115 出発日
117 旅行期間
119 事前予約または事前購入時間
125 出発日
127 旅行期間
129 事前購入時間
201 1次キー
202 1次キー
203 1次キー
210 第2のレベルのキー
220 事前購入ビンコード、第3のレベルのキー
230 コンテナ
300 探索木
301 文字列
310 1次索引、第1のレベルのキー
320 第2のレベルのキー
325 コンテナ
330 第3のレベルのキー
335 コンテナ
410 プラットフォーム、GDSデータウェアハウス
420 標準価格アグリゲータ、TPA
436 ダウンロード
440 旅行業者
450 サーバ
452 インポート
454 高速主メモリ
456 ウェブサービス層
458 フロントエンドアプリケーション
460 エンドユーザ
512 処理される生データの量、すなわち1ヶ月間で蓄積する毎日受け取られるクーポンファイルの合計サイズ
514 その結果演算された索引付きフラットファイルのサイズ
522 必要な総時間
524 属性の生の値を索引フィールドビン値に変換する際に費やされる総時間の比率
526 既存の索引の木における経路を演算および挿入するために使用される総時間の比率
610 トランザクション、生のクーポンファイル記録、生の入力ファイル
620 個別記録
621 第1のフィールド
625 第5のフィールド

Claims (25)

  1. データウェアハウス(410)から統計データを提供する方法であって、少なくとも1つのデータ処理装置で実行される以下のステップ、すなわち
    複数の索引フィールド(114)を定義するステップであって、各索引フィールドが複数の索引フィールド値を受け入れる、定義するステップと、
    複数のファイル(432)を作成し、前記ファイルを索引の木(300)として階層的に索引付けるステップであって、各木に対して、
    前記索引フィールド(201)を階層的に順序付けるステップ、
    それぞれ索引フィールドに関連付けられ、その索引フィールドに対する1つまたは複数の索引フィールド値を収集するビンを定義するステップ、
    階層的に順序付けられた索引フィールドの階層に従って1つまたは複数のビンを連結してビンのシーケンスを形成することによって、索引フィールドごとに1つのビンのみを含む索引を作成するステップ、ならびに
    前記ファイルを索引の木(300)として階層的に索引付けるステップを含み、各索引が、0以上の子索引および/または最大で1つの親索引を有し、各子索引が、その親索引の索引と同じビンのシーケンスと、追加の索引フィールドに関連付けられた少なくとも1つの追加のビンとを含む、索引付けるステップと、
    統計データを記憶するように構成されたデータコンテナ(325、335)を各索引に提供するステップであって、各データコンテナが索引付けられ、階層的に索引付けられた前記ファイル内から直接アドレス指定可能である、提供するステップと、
    生データから構成された1つまたは複数の入力ファイル(434)を受け取り(436)、前記入力ファイル(434)で前記データコンテナを更新するステップであって、各入力ファイルに対して1つまたは複数の処理装置を使用することを含み、前記処理装置が、
    統計によって分析すべき少なくとも1つの属性、および前記属性を特徴付ける1つまたは複数の入力ファイルパラメータを、前記生データから識別および抽出するステップ、
    それぞれ少なくとも1つの属性、および前記属性を特徴付ける前記1つまたは複数の入力ファイルパラメータを含む少なくとも1つの個別記録(620)を、前記入力ファイル(434)から作成するステップ、
    各入力ファイルパラメータを少なくとも1つの索引フィールドに関連付けるステップ、
    各入力ファイルパラメータと、その入力ファイルパラメータに関連付けられた前記少なくとも1つの索引フィールドのビンとの間で対応関係を確立するステップ、
    すべて前記個別記録(620)の入力ファイルパラメータに対応する前記1つまたは複数のビンで索引付けられたデータコンテナを識別するステップ、ならびに
    前記識別されたデータコンテナ(325、335)を、前記個別記録(620)の前記少なくとも1つの属性でインクリメンタルに更新して、前記属性を記述する統計データを得るステップを、実行するように構成される、更新するステップと
    を含むことを特徴とする、方法。
  2. 照会を受け取り、各照会に対して1つまたは複数の処理装置を使用する追加のステップを含み、前記処理装置が、
    前記照会内で、1つまたは複数の照会フィールド、および前記照会フィールドに関連付けられた少なくとも1つの照会フィールド値を識別し、
    各照会フィールドと索引フィールドとの間で対応関係を確立し、
    各照会フィールド値と、前記1つまたは複数の識別された照会フィールドに対応する各索引フィールドのビンとの間で対応関係を確立し、それによって前記照会に対応するビンを定義し、
    前記照会に対応する前記ビンを含む索引で索引付けられた関連するデータコンテナを探索および識別し、
    前記識別された関連するコンテナの前記統計データを検索してユーザへ送る
    ようにプログラムされる、請求項1に記載の方法。
  3. 統計データが、前記属性の頻度分布、または前記属性の前記分布の代表値(measures of central tendency)、または前記属性の前記分布の分散の測定に関する、請求項1または2に記載の方法。
  4. 統計データが、輸送サービスに対して旅行者によって実際に支払われた価格に関する統計データに基づく、請求項3に記載の方法。
  5. 索引フィールドが、最初の出発都市、最初の出発国、最初の出発地域、目的都市、目的国、目的地域、文化的目的地、スポーツ活動、美食、野生生物の観察、娯楽、正確な出発日別の出発日、月別の出発期間、週別の出発期間、正確な日付別の帰着日、月別の帰着期間、週別の帰着期間、到着後の旅行期間、事前購入カテゴリのうちの少なくとも1つである、請求項1から4のいずれか一項に記載の方法。
  6. 少なくとも2つのビンを連結することによって、親索引をもたない少なくとも1つの索引が作成される、請求項1から5のいずれか一項に記載の方法。
  7. 親索引をもたない索引が、前記最初の出発都市に関する索引フィールドに関連付けられたビンと、出発前の前記旅行期間に関する索引フィールドに関連付けられたビンと、航空便の出発週に関する索引フィールドに関連付けられたビンとを含む、請求項6に記載の方法。
  8. ビンが、最初の出発都市、出発都市、出発日、出発週、帰着日、帰着週、旅行期間の日数、事前購入の日数のうちの1つに関するいくつかの索引フィールド値を収集する、請求項7に記載の方法。
  9. 親索引をもたない少なくとも1つの索引が、1つのビンのみを含む、請求項1から5のいずれか一項に記載の方法。
  10. 入力ファイルが、輸送サービスの電子チケットであり、前記輸送の一区分に対するすべての情報を組み入れる少なくとも1つのクーポン(434)を含む、請求項1から9のいずれか一項に記載の方法。
  11. 前記属性が、前記チケットまたは前記クーポンに対して実際に支払われた価格であり、前記入力ファイルパラメータが、最初の出発都市、出発都市、出発日、帰着日、出発日、帰着日、旅行期間、予約から出発までの日数というフィールドのうちの少なくとも1つを記述する、請求項10に記載の方法。
  12. 照会フィールドが、最初の出発都市、最初の出発国、最初の出発地域、目的都市、目的国、目的地域、文化的目的地、スポーツの目的地、美食、野生生物の観察、娯楽、正確な出発日別の出発日、月別の出発期間、週別の出発期間、正確な日付別の帰着日、月別の帰着期間、週別の帰着期間、到着後の旅行期間、予約から出発までの日数というフィールドのうちの少なくとも1つに関する、請求項11に記載の方法。
  13. 単一の索引フィールド値を、複数の索引フィールドに関連付けることができる、請求項1に記載の方法。
  14. 目的都市を記述する索引フィールド値が、最初の出発都市、最初の出発国、最初の出発地域、文化的目的地、スポーツ活動、美食、野生生物の観察、娯楽という索引フィールドのうちの少なくとも2つに関連付けられる、請求項13に記載の方法。
  15. 個別記録(620)を作成するステップが、日付または週または月または学期または年を各個別記録に割り当てるステップであって、前記日付が前記入力ファイルの受け取りに対応する、割り当てるステップと、前記個別記録(620)をデータ記憶手段内に記憶するステップとを含む、請求項1から14のいずれか一項に記載の方法。
  16. 前記個別記録(620)で前記データコンテナを更新するステップが、同じ日付を有するまたは同じ日付期間を有する個別記録(620)のバッチを作成するステップと、個別記録(620)のバッチごとに前記データコンテナを更新するステップとを含む、請求項15に記載の方法。
  17. 正確な統計データを維持することのために、記憶された個別記録(620)の日付を読み取るステップと、所与の日付より古い日付に割り当てられた以前の個別記録(620)を識別するステップと、これらの識別された以前の個別記録(620)の前記入力ファイルパラメータを通じて、これらの識別された以前の個別記録(620)で更新された前記データコンテナを位置決めするステップと、これらの識別された以前の個別記録(620)を削除することによって、前記位置決めされたデータコンテナを更新するステップとを含む、請求項15または16に記載の方法。
  18. 前記識別されたデータコンテナ(325、335)をインクリメンタルに更新するステップが、以前に演算された統計データおよび前記個別記録(620)の前記少なくとも1つの属性から、更新された統計データをインクリメンタルに演算するステップを含む、請求項1から17のいずれか一項に記載の方法。
  19. データコンテナが前記入力ファイルの入力ファイルパラメータの数以下の複数のビンで索引付けられた場合、これらの1つまたは複数のビンのそれぞれが前記入力ファイルの入力ファイルパラメータに対応するという条件で、前記データコンテナが入力ファイルによって更新のために識別される、請求項1に記載の方法。
  20. 個別記録(620)の入力ファイルパラメータが既存の索引フィールドに関連付けられているが、この関連付けられた既存の索引フィールドのいずれのビンにも対応しない場合、前記関連付けられた既存の索引フィールドに対して追加のビンを作成し、前記追加のビンで索引付けられた追加のデータコンテナを作成し、前記追加のデータコンテナを前記個別記録で更新する、請求項1に記載の方法。
  21. 個別記録(620)の各入力ファイルパラメータがビンに対応するが、索引に対応しない前記入力ファイルパラメータに対応する1つまたは複数のビンの組合せが存在する場合、1つまたは複数の対応するビンのこの組合せで索引付けられた追加のデータコンテナを作成し、前記追加のデータコンテナを前記個別記録で更新する、請求項1に記載の方法。
  22. データコンテナ内に記憶されているすべてのデータが、フラットファイルの形式で記憶される、請求項1から21のいずれか一項に記載の方法。
  23. 1つまたは複数のビンのシーケンスを形成することによって索引を作成するステップを含み、このシーケンスの少なくとも1つのビンが、前記少なくとも1つのビンに関連付けられた前記索引フィールドによって受け入れられるすべての可能な索引フィールド値を収集する、請求項1に記載の方法。
  24. データウェアハウス(410)から統計データを提供するシステムであって、処理手段を備えるシステムにおいて、前記処理手段が、
    複数の索引フィールド(114)を定義するステップであって、各索引フィールドが複数の索引フィールド値を受け入れる、定義するステップと、
    複数のファイル(432)を作成し、前記ファイルを索引の木(300)として階層的に索引付けるステップであって、各木に対して、
    前記索引フィールド(201)を階層的に順序付けるステップ、
    それぞれ索引フィールドに関連付けられ、その索引フィールドに対する1つまたは複数の索引フィールド値を収集するビンを定義するステップ、
    階層的に順序付けられた索引フィールドの階層に従って1つまたは複数のビンを連結してビンのシーケンスを形成することによって、索引フィールドごとに1つのビンのみを含む索引を作成するステップ、ならびに
    前記ファイルを索引の木(300)として階層的に索引付けるステップを含み、各索引が、0以上の子索引および/または最大で1つの親索引を有し、各子索引が、その親索引の索引と同じビンのシーケンスと、追加の索引フィールドに関連付けられた少なくとも1つの追加のビンとを含む、索引付けるステップと、
    統計データを記憶するように構成されたデータコンテナ(325、335)を各索引に提供するステップであって、各データコンテナが索引付けられ、階層的に索引付けられた前記ファイル内から直接アドレス指定可能である、提供するステップと、
    生データから構成された1つまたは複数の入力ファイル(434)を受け取り(436)、前記入力ファイル(434)で前記データコンテナを更新するステップであって、各入力ファイルに対して1つまたは複数の処理装置を使用することを含み、前記処理装置が、
    統計によって分析すべき少なくとも1つの属性、および前記属性を特徴付ける1つまたは複数の入力ファイルパラメータを、前記生データから識別および抽出するステップ、
    それぞれ少なくとも1つの属性、および前記属性を特徴付ける前記1つまたは複数の入力ファイルパラメータを含む少なくとも1つの個別記録(620)を、前記入力ファイル(434)から作成するステップ、
    各入力ファイルパラメータを少なくとも1つの索引フィールドに関連付けるステップ、
    各入力ファイルパラメータと、その入力ファイルパラメータに関連付けられた前記少なくとも1つの索引フィールドのビンとの間で対応関係を確立するステップ、
    すべて前記個別記録(620)の入力ファイルパラメータに対応する前記1つまたは複数のビンで索引付けられたデータコンテナを識別するステップ、ならびに
    前記識別されたデータコンテナ(325、335)を、前記個別記録(620)の前記少なくとも1つの属性でインクリメンタルに更新して、前記属性を記述する統計データを得るステップを、実行するように構成される、更新するステップと
    を実行するように構成されることを特徴とする、システム。
  25. 請求項1から23のいずれか一項に記載の統計データを提供する方法を少なくとも1つのマイクロプロセッサに実行させるように指示されたコンピュータ可読コード手段を含む、非一時的コンピュータ可読記憶媒体上に記憶されたコンピュータプログラム製品。
JP2013553965A 2011-02-21 2012-02-20 データウェアハウスから統計を提供する方法およびシステム Expired - Fee Related JP5963780B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP11305177.5 2011-02-21
EP11305177A EP2490135A1 (en) 2011-02-21 2011-02-21 Method and system for providing statistical data from a data warehouse
PCT/EP2012/052872 WO2012113756A1 (en) 2011-02-21 2012-02-20 Method and system for providing statistical from a data warehouse

Publications (2)

Publication Number Publication Date
JP2014509008A true JP2014509008A (ja) 2014-04-10
JP5963780B2 JP5963780B2 (ja) 2016-08-03

Family

ID=44342862

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013553965A Expired - Fee Related JP5963780B2 (ja) 2011-02-21 2012-02-20 データウェアハウスから統計を提供する方法およびシステム

Country Status (11)

Country Link
US (1) US9710506B2 (ja)
EP (1) EP2490135A1 (ja)
JP (1) JP5963780B2 (ja)
KR (1) KR101673461B1 (ja)
CN (1) CN103548019B (ja)
AU (1) AU2012219687B2 (ja)
BR (1) BR112013018831A2 (ja)
CA (1) CA2824348A1 (ja)
SG (1) SG192164A1 (ja)
WO (1) WO2012113756A1 (ja)
ZA (1) ZA201305948B (ja)

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8914866B2 (en) 2010-01-19 2014-12-16 Envizio, Inc. System and method for user authentication by means of web-enabled personal trusted device
EP2727247B1 (en) * 2011-06-30 2017-04-05 Openwave Mobility, Inc. Database compression system and method
US20130132128A1 (en) 2011-11-17 2013-05-23 Us Airways, Inc. Overbooking, forecasting and optimization methods and systems
US11155772B2 (en) 2012-03-20 2021-10-26 Firmenich Sa Compounds for a controlled release of active perfuming molecules
US20140114717A1 (en) * 2012-09-05 2014-04-24 Moose Loop Holdings, LLC Task Schedule Modification
CN103885983B (zh) * 2012-12-21 2017-09-01 阿里巴巴集团控股有限公司 一种旅游线路的确定方法、优化方法以及装置
US20140257881A1 (en) * 2013-03-08 2014-09-11 Us Airways, Inc. Demand forecasting systems and methods utilizing fare adjustment
US11321721B2 (en) 2013-03-08 2022-05-03 American Airlines, Inc. Demand forecasting systems and methods utilizing prime class remapping
US9727940B2 (en) 2013-03-08 2017-08-08 American Airlines, Inc. Demand forecasting systems and methods utilizing unobscuring and unconstraining
US20140278615A1 (en) 2013-03-15 2014-09-18 Us Airways, Inc. Misconnect management systems and methods
US9372889B1 (en) * 2013-04-04 2016-06-21 Amazon Technologies, Inc. Incremental statistics update
US10748087B2 (en) 2014-01-17 2020-08-18 American Airlines, Inc. Determining even-spaced quantiles for network optimization
US10755207B1 (en) 2014-01-17 2020-08-25 American Airlines, Inc. Demand class remapping for airline seat bookings
CN104133836B (zh) 2014-06-24 2015-09-09 腾讯科技(深圳)有限公司 一种实现变更数据检测的方法及装置
CN105446991B (zh) * 2014-07-07 2018-10-30 阿里巴巴集团控股有限公司 数据存储方法、查询方法及设备
KR101594916B1 (ko) * 2014-08-25 2016-02-17 (주)휴민텍 손상 감시 시스템 및 손상 감시 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
CN104182540B (zh) * 2014-09-03 2017-10-27 北京国双科技有限公司 数据仓库中的索引统计信息处理方法及装置
CN104463420B (zh) * 2014-11-05 2017-11-21 上海携程商务有限公司 Ota网站的订单处理系统及方法
CN105574060A (zh) * 2015-01-13 2016-05-11 北京中体骏彩信息技术有限公司 竞彩统计数据的提取方法
CN105989072B (zh) * 2015-02-10 2019-09-27 阿里巴巴集团控股有限公司 去重计数方法及设备
US10146820B2 (en) * 2015-09-24 2018-12-04 Nxp Usa, Inc. Systems and methods to access memory locations in exact match keyed lookup tables using auxiliary keys
US10146854B2 (en) 2016-02-29 2018-12-04 International Business Machines Corporation Continuous automatic update statistics evaluation using change data capture techniques
CN106022896A (zh) * 2016-06-07 2016-10-12 中国建设银行股份有限公司 用于交易统计的报表生成方法及系统
US20170364932A1 (en) * 2016-06-21 2017-12-21 Amadeus S.A.S. Data warehouse for mining search query logs
CN107704475B (zh) * 2016-08-10 2021-12-14 泰康保险集团股份有限公司 多层分布式非结构化数据存储方法、查询方法及装置
CN106294860A (zh) * 2016-08-23 2017-01-04 浪潮电子信息产业股份有限公司 一种实时索引数据同步的系统及其实现方法
US10657158B2 (en) * 2016-11-23 2020-05-19 Google Llc Template-based structured document classification and extraction
US11270395B2 (en) * 2016-12-15 2022-03-08 Mastercard International Incorporated Systems and methods for building a data table to reduce false declines over a network
EP3571651A1 (en) * 2017-01-23 2019-11-27 Amadeus S.A.S. Record aggregation database
WO2018140659A1 (en) * 2017-01-25 2018-08-02 Systems And Software Enterprises, Llc Systems architecture for interconnection of multiple cabin aircraft elements
US10909074B2 (en) * 2017-04-18 2021-02-02 Microsoft Technology Licensing, Llc File table index aggregate statistics
US11010387B2 (en) * 2017-10-06 2021-05-18 Microsoft Technology Licensing, Llc Join operation and interface for wildcards
KR102507837B1 (ko) * 2017-11-14 2023-03-07 주식회사 케이티 데이터의 품질 관리 방법 및 장치
US10445422B2 (en) * 2018-02-09 2019-10-15 Microsoft Technology Licensing, Llc Identification of sets and manipulation of set data in productivity applications
CN109471852B (zh) * 2018-05-29 2023-08-01 深圳平安医疗健康科技服务有限公司 医疗数据库建立方法、装置、计算机设备和存储介质
CN109299931A (zh) * 2018-09-13 2019-02-01 百富计算机技术(深圳)有限公司 一种数据统计方法、系统及终端设备
CN112236759A (zh) * 2018-09-14 2021-01-15 谷歌有限责任公司 日志结构合并森林中的交错合并
US11080358B2 (en) 2019-05-03 2021-08-03 Microsoft Technology Licensing, Llc Collaboration and sharing of curated web data from an integrated browser experience
US10983975B2 (en) 2019-06-13 2021-04-20 Ant Financial (Hang Zhou) Network Technology Co., Ltd. Data block storage method and apparatus, and electronic device
CN111190952B (zh) * 2019-12-23 2023-10-03 中电海康集团有限公司 一种基于图像金字塔提取城市画像多尺度特征并持久化的方法
CN111782663B (zh) * 2020-05-21 2023-09-01 浙江邦盛科技股份有限公司 一种提升聚合查询效率的聚合索引结构及聚合索引方法
CN112114531B (zh) * 2020-08-10 2024-05-14 广州明珞装备股份有限公司 快速部署气缸逻辑块的方法、系统、设备和存储介质
CN112527828B (zh) * 2020-12-10 2023-03-14 福建新大陆支付技术有限公司 一种税控机税控记录存储方法及检索查询方法
CN112528616B (zh) * 2020-12-18 2023-08-22 平安银行股份有限公司 业务表单生成方法、装置、电子设备及计算机存储介质
KR102449580B1 (ko) * 2021-02-15 2022-09-30 (주)아이브릭스 컴포넌트 네트워크 기반의 분석 시스템을 이용한 비정형 데이터 분석 방법
US20220300869A1 (en) * 2021-03-22 2022-09-22 Sap Se Intelligent airfare pattern prediction
CN114185983A (zh) * 2021-12-14 2022-03-15 中南大学 一种数据抽取管控方法、装置、设备及存储介质
WO2023211815A1 (en) * 2022-04-24 2023-11-02 Morgan Stanley Services Group Inc. Distributed query execution and aggregation
US11520739B1 (en) * 2022-04-24 2022-12-06 Morgan Stanley Services Group Inc. Distributed query execution and aggregation

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08329101A (ja) * 1995-05-30 1996-12-13 Fujitsu Ltd データベースシステム
JPH11232283A (ja) * 1998-02-10 1999-08-27 Hitachi Ltd 情報検索方法
US20030093424A1 (en) * 2001-09-10 2003-05-15 Seok-Ju Chun Dynamic update cube and hybrid query search method for range-sum queries
JP2008130084A (ja) * 2006-11-23 2008-06-05 Samsung Electronics Co Ltd 最適化されたインデックス検索方法及び装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010068047A (ko) * 2000-04-24 2001-07-13 김준수 인터넷 가상 여행 방법 및 장치
KR100473058B1 (ko) * 2001-12-27 2005-03-08 삼성에스디에스 주식회사 관계형 데이타베이스 서버에서의 분석적 처리방법
US7181450B2 (en) * 2002-12-18 2007-02-20 International Business Machines Corporation Method, system, and program for use of metadata to create multidimensional cubes in a relational database
CN100359495C (zh) 2003-09-04 2008-01-02 上海格尔软件股份有限公司 基于数据仓库的信息安全审计方法
US7461089B2 (en) * 2004-01-08 2008-12-02 International Business Machines Corporation Method and system for creating profiling indices
US7647356B2 (en) * 2004-05-07 2010-01-12 Oracle International Corporation Methods and apparatus for facilitating analysis of large data sets
US7415487B2 (en) * 2004-12-17 2008-08-19 Amazon Technologies, Inc. Apparatus and method for data warehousing
CN101763415B (zh) * 2009-12-16 2012-10-17 北京握奇数据系统有限公司 一种数据库的b树索引的生成方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08329101A (ja) * 1995-05-30 1996-12-13 Fujitsu Ltd データベースシステム
JPH11232283A (ja) * 1998-02-10 1999-08-27 Hitachi Ltd 情報検索方法
US20030093424A1 (en) * 2001-09-10 2003-05-15 Seok-Ju Chun Dynamic update cube and hybrid query search method for range-sum queries
JP2008130084A (ja) * 2006-11-23 2008-06-05 Samsung Electronics Co Ltd 最適化されたインデックス検索方法及び装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN5014003979; JOACHIM HAMMER: 'CUBIST++: EVALUATING AD-HOC CUBE QUERIES USING STATISTICS TREES' DISTRIBUTED AND PARALLEL DATABASES V14 N3, 20031101, P221-254, KLUWER ACADEMIC PUBLISHERS *

Also Published As

Publication number Publication date
CA2824348A1 (en) 2012-08-30
KR20140064718A (ko) 2014-05-28
SG192164A1 (en) 2013-08-30
US20140074853A1 (en) 2014-03-13
EP2490135A1 (en) 2012-08-22
CN103548019B (zh) 2017-07-07
JP5963780B2 (ja) 2016-08-03
WO2012113756A1 (en) 2012-08-30
AU2012219687B2 (en) 2015-02-26
AU2012219687A1 (en) 2013-05-02
BR112013018831A2 (pt) 2017-02-21
US9710506B2 (en) 2017-07-18
CN103548019A (zh) 2014-01-29
KR101673461B1 (ko) 2016-11-08
ZA201305948B (en) 2014-04-30

Similar Documents

Publication Publication Date Title
JP5963780B2 (ja) データウェアハウスから統計を提供する方法およびシステム
CA2864042C (en) Database system using batch-oriented computation
US8103534B2 (en) System and method for managing supplier intelligence
US20130073586A1 (en) Database system using batch-oriented computation
KR102280223B1 (ko) 빅데이터 기반의 상품구매 의사결정 지원 서비스 제공 방법 및 이를 위한 시스템
KR102199620B1 (ko) 빅데이터 기반 시계열 분석 및 가격 예측을 이용한 가격비교 서비스 제공 시스템
Irudeen et al. Big data solution for Sri Lankan development: A case study from travel and tourism
TW202137109A (zh) 用於基於ai的產品整合及去冗餘的電腦實行系統及使用ai對產品進行整合及去冗餘的方法
Höpken et al. Tourism knowledge destination
Vinod Big data in the travel marketplace
Adhinugroho et al. Development of online travel Web scraping for tourism statistics in Indonesia
KR20080058569A (ko) 자연어 처리기반의 여행 상품 검색 시스템 및 그 방법
Bakaev et al. Intelligent information system to support decision-making based on unstructured web data
Abd Al-Rahman et al. Design and implementation of the web (extract, transform, load) process in data warehouse application
US20090150355A1 (en) Software method for data storage and retrieval
Prabawa et al. Analysis and Design Data Warehouse For E-Travel Business Optimization
US8504552B2 (en) Query based paging through a collection of values
Saxena et al. Business intelligence
JP2001028005A (ja) データウェアハウスにおける検索・集計高速化を実現するデータ格納、更新、検索、集計方法
Cortez et al. Data Warehouse as a Paradigm of Efficiency in a Company
US8468039B2 (en) Method for handling large amounts of standard data
Rahman A Data Mining Framework for Automatic Online Customer Lead Generation
Zhu Logistics system and process in express delivery service companies
Van Rensburg An alternative to an operational system and data warehouse systems: a conceptual model

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150209

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160125

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160201

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160428

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160628

R150 Certificate of patent or registration of utility model

Ref document number: 5963780

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees