JP5047806B2 - データ・ウェアハウジングのための装置および方法 - Google Patents

データ・ウェアハウジングのための装置および方法 Download PDF

Info

Publication number
JP5047806B2
JP5047806B2 JP2007546883A JP2007546883A JP5047806B2 JP 5047806 B2 JP5047806 B2 JP 5047806B2 JP 2007546883 A JP2007546883 A JP 2007546883A JP 2007546883 A JP2007546883 A JP 2007546883A JP 5047806 B2 JP5047806 B2 JP 5047806B2
Authority
JP
Japan
Prior art keywords
data
warehouses
query
warehouse
data set
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.)
Active
Application number
JP2007546883A
Other languages
English (en)
Other versions
JP2008524715A (ja
JP2008524715A5 (ja
Inventor
ベル,クリストファー・アール
ボイド,ポール・ジェイ
ダンラップ,マーク・イー
Original Assignee
アマゾン・テクノロジーズ・インコーポレーテッド
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 アマゾン・テクノロジーズ・インコーポレーテッド filed Critical アマゾン・テクノロジーズ・インコーポレーテッド
Publication of JP2008524715A publication Critical patent/JP2008524715A/ja
Publication of JP2008524715A5 publication Critical patent/JP2008524715A5/ja
Application granted granted Critical
Publication of JP5047806B2 publication Critical patent/JP5047806B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2471Distributed queries
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users

Landscapes

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

Description

本発明は、コンピュータ・システムに関し、より詳細には、データ・ウェアハウジング・システムの実装に関する。
ある企業内のビジネス機能のますます多くが自動化されるにつれて、その企業によって生み出されるデータの量も、それに応じて増大する。このようなデータは、企業のいたるところに、たとえば、さまざまな部署や地理的な単位によって実現されているデータベース・システムや他のタイプのシステム内に分散されている。場合によっては、システムどうしの間または位置の間に存在する固有の境界を越えて、企業データの有用な分析を行うことができる。このような分析を容易にするために、データ・ウェアハウジング・システムを採用して、複数の異なるシステムまたは位置からのデータを、単一のデータベースなどの単一のシステム内に集約するようにしている。そして分析ツールは、さまざまな分散されたデータ・ソースではなく、単一の集約されたシステムを対象とすることになり、それによって、分析ツールの設計を単純化し、分析パフォーマンスを改善することができる。
データ・ウェアハウジング・システムは、必要とされる分析パフォーマンスを提供するように構成されているハイエンドのコンピュータ・システムを使用して、非常に大量のデータの保存や問合せをサポートする場合が多い。しかし、特定のデータ・ウェアハウジング・アプリケーション向けに高度に調整されたハイエンドのシステムは、入手して維持する上で高くつくことがあり、企業のデータ・ウェアハウジングのニーズの増大に合わせて拡張することはできない。たとえば費用の理由から、単一のデータ・ウェアハウジング・システムしか用意されない場合には、その単一のウェアハウスに障害が発生すると、データの可用性が脅かされるおそれがある。その一方で、複数のデータ・ウェアハウジング・システムが用意される場合には、分析アプリケーションは、単一の集約されたデータ・ソースを前提とするシンプルさを失うおそれがある。たとえば分析アプリケーションは、複数のデータ・ウェアハウス内における所望のデータの位置を追跡把握するように構成する必要がある。
データ・ウェアハウジング・システムを実装するための装置および方法のさまざまな実施態様を開示する。一実施態様によれば、あるシステムは、複数のデータ・ウェアハウスと、それらのデータ・ウェアハウスのうちの1つまたは複数の中に保存するために、1つまたは複数のデータ・ソースからデータ・セットを抽出するように構成されているデータ・ウェアハウス・マネージャーとを含む。複数のデータ・ウェアハウスのそれぞれは、データ・ウェアハウス・マネージャーによって抽出されたデータ・セットのそれぞれのレプリカを保存するように構成されている。さらにデータ・ウェアハウス・マネージャーは、データ・セットのそれぞれの各レプリカがデータ・ウェアハウスのうちの対応するさらなる1つへ保存される前に、そのデータ・セットに依存する問合せがデータ・ウェアハウスのうちの1つによって評価されるように構成させることができる。同様にデータ・ウェアハウス・マネージャーは、データ・セットに対する修正が、対応するさらなるデータ・ウェアハウスへ複製される前に、そのデータ・セットに依存する問合せがデータ・ウェアハウスのうちの1つによって評価されるようにさらに構成されている。
一実施態様によれば、1つまたは複数のデータ・ウェアハウスの中に保存するために1つまたは複数のデータ・ソースからデータ・セットを抽出するステップと、複数のデータ・ウェアハウスを含む第1のサブセットのそれぞれの中に第1のデータ・セットのそれぞれのレプリカを保存するステップと、第1のデータ・セットのそれぞれの各レプリカが第1のサブセットの対応するデータ・ウェアハウスへ保存される前に、その第1のデータ・セットに依存する問合せがデータ・ウェアハウスの第1のサブセットのうちの1つによって評価されるステップとを含む方法がさらに考えられる。
第2の実施態様によれば、あるシステムは、1つまたは複数のデータ・ソースから抽出されたデータ・セットを保存するように構成されているデータ・ウェアハウスと、それらのデータ・ウェアハウスを単一のデータ・ウェアハウスとしてクライアントに提示するように構成されているデータ・ウェアハウス・マネージャーとを含む。それらのデータ・ウェアハウス内におけるデータ・セットの位置は、クライアントにとってトランスペアレントである。また、問合せを行うためにクライアントにとって特定の時点において利用可能な、第1のデータ・ウェアハウスによって保存されている第1のデータ・セットは、問合せを行うためにクライアントにとってその特定の時点において利用可能な、第2のデータ・ウェアハウスによって保存されている第2のデータ・セットとは、その特定の時点において異なるものとすることができる。それらのデータ・ウェアハウスのうちの1つまたは複数によって保存されているデータ・セットを対象とする問合せをクライアントから受信したことに応答して、データ・ウェアハウス・マネージャーは、その問合せを評価することができるデータ・ウェアハウスのうちの特定の1つを識別するように、かつ評価のためにその問合せをその特定のデータ・ウェアハウスへ伝達するようにさらに構成されている。
一実施態様によれば、1つまたは複数のデータ・ウェアハウスの中に保存するために1つまたは複数のデータ・ソースからデータ・セットを抽出するステップと、それらのデータ・ウェアハウスを単一のデータ・ウェアハウスとしてクライアントに提示するステップとを含む方法がさらに考えられる。それらのデータ・ウェアハウス内におけるデータ・セットの位置は、クライアントにとってトランスペアレントである。それらのデータ・ウェアハウスのうちの1つまたは複数によって保存されているデータ・セットを対象とする問合せをクライアントから受信したことに応答して、この方法は、その問合せを評価できるデータ・ウェアハウスのうちの特定の1つを識別し、評価のためにその問合せをその特定のデータ・ウェアハウスへ伝達するステップを含む。問合せを行うためにクライアントにとって特定の時点において利用可能な、第1のデータ・ウェアハウスによって保存されている第1のデータ・セットは、問合せを行うためにクライアントにとってその特定の時点において利用可能な、第2のデータ・ウェアハウスによって保存されている第2のデータ・セットとは、その特定の時点において異なるものとすることができる。
本発明は、さまざまな修正および代替形態を受け入れることができるが、その特定の実施形態を例示として図面に示し、ここで詳細に説明する。しかし、図面やそれに対する詳細な説明は、開示されている特定の形態に本発明を限定することを意図するものではなく、それどころか、添付の特許請求の範囲によって定義される本発明の趣旨と範囲内に収まるすべての修正、均等物、および代替物をカバーすることを意図しているということを理解されたい。
データ・ウェアハウジング・システムの概要
いくつかの複雑な企業コンピューティング環境においては、データのさまざまなソースは、企業のいたるところに分散されている。たとえば企業は、経理、財務、eコマース、人事、購買、製造、販売など、さまざまなビジネス機能ごとに、別々のコンピュータ・システムおよび/またはアプリケーションを実現している。さらに、そのようなシステムおよび/またはアプリケーションは、たとえば、それぞれの販売サイトに販売管理システムを提供することによって、地理的に分散され、複製されている。このようないくつかの企業においては、データベースや他のデータ・ストア、さらには分析ツールや他のアプリケーションを、サイトまたは機能に固有のものとすることができ、また他の機能またはサイトのためのシステムと周辺的に対話することができる。
特定のビジネス機能またはサイトに、その業務の大部分を実行するのにちょうど必要なだけのデータとリソースを提供することによって、企業内で過剰なリソースすなわち余分なリソースを割り当てることを回避することができる。しかし場合によっては、その企業全体からのデータをまとめて分析する必要が生じるかもしれない。たとえば、企業規模の財務トレンドや生産トレンドの分析は、複数の異なるサイトにおいて、あるいはさまざまな部署にわたって生成され保持されるデータに依存する可能性がある。場合によっては、データ分析ツールを、単独のビジネス機能を個別に分析しても直接は認識できない複数のビジネス機能にわたる複雑な相互関係を検知するように構成することができる。たとえば、(人事によって追跡把握される)人事上の経験と研修との間に、また販売面での生産性と財務面でのパフォーマンスとの間に(たとえば、販売面でのエラーに起因する返品数の減少などの)関係が存在するかもしれない。このような関係は、相関関係を探してこれらの機能のそれぞれからのデータをまとめて調べることによって、識別することができる。
いくつかの実施形態においては、企業は、企業規模のデータの処理と分析を容易にするために、集中されたデータ・ウェアハウジング・システムを設けることができる。一般的に言えば、データ・ウェアハウスは、1つまたは複数のデータ・ソースに保存されているデータを集約するように構成されているデータベースや他のデータ・リポジトリを含む。それらのデータ・ソース自体は、データを保存したり生成したりする企業内の他のデータベースや他のアプリケーションであるかもしれない。データ・ウェアハウス内に保存されるデータは、企業内の他の位置に保存されているデータの派生物であることが多い。しかし場合によっては、データ・ウェアハウスは、企業規模の分析データ、あるいは企業の機能またはサイトのデータなど、いくつかのデータのためのプライマリー・ストレージとしての役割を果たすように構成させることもできる。
データ・ウェアハウス・システムの一実施形態が、図1に示されている。図示されている実施形態においては、データ・ウェアハウス・システム100は、データ・ウェアハウス・マネージャー110を含む。このデータ・ウェアハウス・マネージャー110は、図1のデータ・ウェアハウス120a〜dによって表されている複数のデータ・ウェアハウスと対話するように構成されている。図1に示されているデータ・ウェアハウス120a〜dの数は、例示的なものにすぎず、他の実施形態においては、異なる数とすることができる。データ・ウェアハウス・マネージャー110は、オペレーション・データベース130と対話するように構成させることもできる。データ・ウェアハウス・マネージャー110はまた、データ・ウェアハウス・システム100の外部に存在する(たとえば、1つの企業のいたるところに、あるいは複数の企業にわたって、さまざまな論理上のサイトや物理的なサイトに分散されている)可能性のある1つまたは複数のクライアント140やデータ・ソース160と対話するように構成される。いくつかの実施形態においては、いくつかのクライアント140を、ウェブ・サービス・インターフェース150を通じてデータ・ウェアハウス・マネージャー110と対話するように構成することができる。いくつかの実施形態においては、データ・ウェアハウス・マネージャー110は、ウェブ・サービス・インターフェース(図示せず)を通じていくつかのデータ・ソース160と対話するように構成される。
一実施形態においては、データ・ウェアハウス120a〜dは、それぞれのリレーショナル・データベースを含む。たとえば特定のデータ・ウェアハウス120は、Oracle、DB2、Sybase、Informix、Adabas、あるいは他の任意の独自仕様のデータベースやオープンソースのデータベースなどのデータベースを含む。いくつかの実施形態においては、さまざまなデータ・ウェアハウス120は、さまざまなベンダからのさまざまなタイプのデータベース・ソフトウェアを実装することができる。一般的に言えば、リレーショナル・データベースは、データ項目のセットを、行と列とを含むテーブルなど、1つまたは複数の規則正しい構造へ編成する(ただし、多次元のリレーショナル・データベース構造も考えられる)。さらに、多くの実施形態においては、リレーショナル・データベースを、特定の問合せを満たすデータのサブセットを選択するために、データベース内に保存されているデータに照らして問合せを評価するように構成することができる。たとえばデータベースは、顧客注文情報を保存するように構成される。この顧客注文情報を、顧客識別子、注文識別子、発送状況情報、注文コストなどのデータを含む1つまたは複数のテーブルとして編成することができる。未処理の発送を待っているすべての顧客を識別したいと望むユーザは、特定の日付および/または時刻において未発送の注文を有するすべての顧客識別子の選択を指定して、データベースに問合せを送信することができる。これに応答して、データベースは、その中身を調べて、その問合せの制約を満たすデータ・レコードを返すことができる。いくつかの実施形態においては、さまざまなデータ・ウェアハウス120を、さまざまな物理的な位置すなわちサイトに配置することができ、これは、後述のようなデータ・セットの複製とあいまって、単一のサイトにおける障害によってすべてのデータ・ウェアハウス120が脅かされる可能性を減らすことによって、データ・セットの信頼性および可用性を高めることができるという点に留意されたい。
データ・ウェアハウス120は、一般にリレーショナル・データベースを含むが、いくつかの実施形態においては、特定のデータ・ウェアハウス120は、非リレーショナル・データベースを含むという点に留意されたい。通常、リレーショナル・データベースにおいては、特定のデータ項目の意味は、テーブルや他のリレーショナル・データ構造内におけるそのデータ項目の位置によって暗に示される。たとえば、特定の2次元のリレーショナル・データベース・テーブルにおいては、ある列は、顧客識別子を保存し、別の列は、発送状況情報を保存するようにすることができ、第3の列は、注文コストを保存するように決めることができる。そしてテーブルの個々の行は、特定の注文レコードに対応することができ、行の1列目に保存されるいかなるデータ項目も、その位置によって顧客識別子と解釈される。これとは対照的に、一実施形態においては、非リレーショナル・データベースが、決められたデータ構造内におけるデータ項目の位置によってではなく、特定のデータ項目に関連付けられた明示的なメタデータによって解釈が統制されるデータ項目を保存することができる。たとえば一実施形態においては、データ・ウェアハウス120は、データ項目を、あるバージョンのXML(eXtensible Markup Language)によって区切られたレコードとして保存するように構成される。このような一実施形態においては、顧客識別子などの特定のデータ項目は、そのタイプのデータ項目を識別するメタデータのフィールドまたはタグによって区切ることができる。たとえば顧客識別子「smith」は、「<cust_id>smith</cust_id>」として保存することができ、この場合、メタデータのタグcust_idは、このタグによって区切られているデータが顧客識別子として解釈できることを示している。一般に、非リレーショナル・データベース内のレコードのデータ項目は、そのレコード内で任意の順序で保存することができる。というのも、特定のデータ項目の意味は、そのデータ項目の位置を介して暗示的にではなく、そのデータ項目と共に明示的に保存されるためである。
前述のように、いくつかの実施形態においては、データ・ウェアハウス120は、データ・ソース160によってなど、企業内の他の位置に保存されているデータを集約するように構成される。いくつかの実施形態においては、以降でさらに詳しく説明するように、データ・ウェアハウス120によって保存されるデータの量は、たとえば数TB(terabyte)規模など、非常に多くなることがある。図示されている実施形態においては、データ・ウェアハウス・マネージャー110は、データ・ウェアハウス120どうしの間でデータがどのように検索され保存されるかを調整するように、ならびにクライアント140などのクライアントによるデータ・ウェアハウス120へのアクセスを調整するように構成される。具体的には、一実施形態においては、データ・ウェアハウス・マネージャー110(あるいは、単にマネージャー110)は、1つまたは複数のデータ・ソース160からデータを抽出するように、およびデータ・ウェアハウス120のうちの1つまたは複数における抽出されたデータの保存を調整するように構成される。
場合によっては、マネージャー110は、抽出されたデータを、保存前にさらに変換することができる。たとえば一実施形態においては、特定のデータ・ウェアハウス120は、いくつかの異なるデータ・ソース160から得られたデータを含むテーブルを保存する。このような一実施形態においては、マネージャー110は、さまざまなデータ・ソース160から引き出された個々のデータ項目を、特定のデータ・ウェアハウス120によって必要とされるフォーマットへと変換するように構成される。いくつかの実施形態においては、データの変換は、データをアレンジし直したり、フォーマット設定し直したりすることとは対照的に、データそのものの修正を含む。たとえば、いくつかの実施形態においては、マネージャー110を、特定のデータ項目を、データ・ウェアハウス120内に保存する前に増減または四捨五入するように構成させ、あるいは他の任意の適切な変換を施すこともある。いくつかの実施形態においては、マネージャー110を抽出/変換/ロード(ETL)マネージャーと呼ぶこともできる。
図示されている実施形態においては、オペレーション・データベース130を、データ・ウェアハウス・システム100の動作状態に関する情報を保存して追跡把握するように構成し、それらの情報としては、データ・ウェアハウス120内における(たとえば、テーブルや個々のレコードなどの)データ項目やデータのセットの位置、ならびにデータ・ウェアハウス120内のデータを修正するための未処理のオペレーションに関するデータ項目やデータ・セットの状態に関する情報を含む。いくつかの実施形態においては、オペレーション・データベース130は、その中身にアクセスして修正を行うための問合せインターフェースを含む上述のものと同様のリレーショナル・データベースまたは非リレーショナル・データベースを含み、その一方で、他の実施形態においては、オペレーション・データベース130は、たとえばカスタムAPI(application programming interface)内で規定されるプロシージャーの呼び出しを通じてマネージャー110と対話するように構成されているカスタム・ソフトウェア・アプリケーションを含む。データ・ウェアハウス120をロードするための、およびクライアント140へのデータ・ウェアハウス120の提示を仮想化するための、さまざまな実施形態における、オペレーション・データベース130と併せたマネージャー110のオペレーションについて、図3〜図6の説明と併せて、以降でさらに詳しく説明する。
いくつかの実施形態においては、マネージャー110および/またはオペレーション・データベース130は、堅固なフォルト・トレラントなシステムを介して実装される。たとえば、マネージャー110および/またはオペレーション・データベース130の全体的な信頼性と可用性は、予備の(たとえば、ホット・スタンバイの)コンピュータ・システムやクラスタ化されたコンピュータ・システムの使用を通じて高めることができ、それによって、マネージャーやデータベースのオペレーションは、1つまたは複数のシステムの障害の場合でも継続することができる。マネージャー110やオペレーション・データベース130の障害に対するデータ・ウェアハウス・システム100の影響度を少なくするために、任意の適切なタイプのフェイルオーバ・メカニズムを採用することができる。
また、いくつかの実施形態においては、マネージャー110および/またはオペレーション・データベース130の実装をデータ・ウェアハウス120の実装から分離することによって、データ・ウェアハウス・システム100に関連するコストや複雑さを低減させることができる。たとえば、このような分離は、日用的なコンピュータ・システムおよび/またはデータベース・ソフトウェアを使用してマネージャー110とオペレーション・データベース130のコントロール機能を実現させることが容易になる。このような分離は、コントロール・ハードウェアをデータ・ウェアハウス・ハードウェアから切り離してアップグレードできるようにすることによって、データ・ウェアハウス・システム100の拡張を容易にすることもできる。いくつかの実施形態においては、このような分離は、データ・ウェアハウス・システム100の全体的な可用性を高めて、障害修復時間を短縮することもできる。たとえば、あるデータ・ウェアハウス120に障害が発生した場合には、オペレーション・データベース130とマネージャー110は、障害の発生したウェアハウスが修復されている間、他のデータ・ウェアハウス120をロードし続けることができる。同様に、オペレーション・データベース130に障害が発生した場合には、データ・ウェアハウス120のいずれを修復する必要もなく、したがって全体的な障害修復時間を短縮することができる。
クライアント140は一般に、データ・ウェアハウス・システム100にアクセスするように構成されている任意のソフトウェア・アプリケーションや他のエンティティーを含む。たとえば一実施形態においては、クライアント140は、(たとえば問合せを介して)データを検索するように構成されているアプリケーションを含む。このようなアプリケーションは、データ分析アプリケーション、意思決定支援システム、データ表示アプリケーション、あるいは他の任意の適切なアプリケーションを含む。クライアント140は、データ・ウェアハウス・システム100のオペレーションを設定する管理アプリケーションまたはユーティリティーを含むこともできる。たとえばデータ・アナリストや管理者は、特定の一組のデータ・ソース160からのデータ項目の組合せが、その後の分析のためにデータ・ウェアハウス・システム100によって集約されるべきであると判断する可能性がある。アナリストや管理者は、クライアント140を使用して、関連するデータ・セットをデータ・ソース160から、たとえば1回だけ、あるいは繰り返し抽出するようマネージャー110に指示することができる。さまざまな実施形態においては、クライアント140は、たとえば汎用コンピュータ・システム、ハンドヘルド・システム、あるいは埋め込みシステムなど、任意の適切なタイプのシステム上で機能するように構成される。いくつかの実施形態においては、クライアント140は、介在するシステムを介してデータ・ウェアハウス・システム100と対話するように構成される。たとえばクライアント140は、クライアントサーバ・システム(図示せず)を介して実装され、このサーバ・システムは、クライアント140とデータ・ウェアハウス・システム100との間で通信を仲介するように構成される。
マネージャー110によって提供されるAPIと直接通信する代わりに、いくつかの実施形態においては、クライアント140のうちのいくつかまたはすべてを、ウェブ・サービス・インターフェース150を介してマネージャー110と通信するように構成させることができる。一般的に言えば、ウェブ・サービス・インターフェースは、何らかのサービスを実行するよう要求するクライアントとサービス・プロバイダとの間における通信のために標準的なクロスプラットフォームのAPIを提供するように構成される。いくつかの実施形態においては、ウェブ・サービス・インターフェース150は、サービス要求とその要求への応答について記述する情報を含むドキュメントのやり取りをサポートするように構成される。このようなドキュメントは、たとえばHTTP(Hypertext Transfer Protocol)などの標準化されたウェブ・プロトコルを使用してやり取りすることができ、たとえばXMLなど、プラットフォームに依存しないデータ・フォーマットでフォーマット設定することができる。標準的なウェブ・プロトコルやプラットフォームに依存しないドキュメント・フォーマット設定を使用することを含むウェブ・サービス・モデルを採用することによって、マネージャー110がサポートする必要のあるインターフェースのタイプの数を少なくすることができ、クライアント140とマネージャー110とのクロスプラットフォームの相互運用性を改善することができる。
いくつかの実施形態においては、データ・ソース160そのものは、リレーショナル・データベースや非リレーショナル・データベースを含み、企業のいたるところに分散させることができる。このようなデータベースは、データ・ウェアハウス120と同じタイプ(たとえば、ベンダやフォーマット)のものとしてもよいし、しなくてもよい。他の実施形態においては、データ・ソース160は、データをドキュメントの形式で、あるいは別の形式で保存するように構成されているカスタム・アプリケーションや独自仕様のアプリケーションなど、データベース以外のアプリケーションとすることができる。このような実施形態においては、マネージャー110は、データを入手するための必要なプロトコル(たとえば、データ・ソースのAPIによって規定される特定のフォーマットのプロシージャーの呼び出し)を使用してデータ・ソース160と通信するように構成される。データ・ソース160は、トランザクション・ログ、Eメール通信、ワード・プロセッサ/オフィス・アプリケーション・ドキュメント、イメージやマルチメディア・ファイル、ウェブ・ページ・ドキュメント、XMLドキュメント、eコマース・サイトのオペレーション上の指標、あるいは他の任意の適切なタイプのドキュメントやデータの集合やアーカイブなど、ドキュメントのリポジトリを含むこともできる。たとえば一実施形態においては、データ・ソース160は、スタンドアロンのディスク・アレイや、SAN(Storage Area Network)を通じて結合されているストレージ・デバイスなど、ネットワークに接続された大容量のメディア・ストレージ・デバイスを含む。
データ・ソース160の特定の(1つまたは複数の)タイプを問わずに、マネージャー110は、そこから所望の(1つまたは複数の)データ・セットを抽出するための適切なオペレーションを実行し、データを、データ・ウェアハウス120内に保存するのに適したフォーマットへと変換するための必要なすべての変換を施し、抽出されたデータをデータ・ウェアハウス120のうちの1つまたは複数へロードするように構成される。特定のデータ・ソース160のデータ・コンテンツが、フォーマットの点で、データ・ウェアハウス120によって保存されるデータと非常に異なる場合には、マネージャー110は、データ・ソース160を分析して、そのデータ・コンテンツの関連する指標や表示を得るように、あるいは別のアプリケーションを呼び出して、そのような分析を実行するように構成される。
データ・ウェアハウスの複製、大まかな同期化、仮想化
データ・ウェアハウス120によって保存されるデータは、場合によっては、企業の経営にとって決定的に重要となる可能性がある。たとえば、いくつかの実施形態においては、分析ソフトウェアは、ウェアハウスに保存されているデータ上で機能して、レポートを作成するか、および/またはトレンドを識別するように構成され、これは、ひいては、注文/購買に関する意思決定、人材配置に関する意思決定など、経営上の意思決定に影響を与える。たとえば、ある日の生産指標を企業規模で分析することは、企業内のリソースをシフトさせること、翌日の生産のスケジュールを変更すること、原料供給を早めること、あるいは購買品を棚卸しすることなどを行うための意思決定に影響を与えるであう。万一、関連する分析を行う対象となるデータが、データ・ウェアハウス120内で失われたり駄目になったりすると、経営上や戦略上の意思決定プロセスが、著しく損なわれたり、あるいは場合によっては、まったく機能できなくなったりするおそれがある。
ウェアハウスに保存されるいくつかのデータは、上述のように、データ・ソース160によって保存されているデータの派生物であり、原則として、それらのデータ・ソース160からデータ・ウェアハウス120へ関連するデータを再びロードすることによって復元させることができる。しかし、このように再びロードすることは、たとえば、失われたデータや駄目になったデータの量が多い場合や、データ・ソース160が、要求されたデータを検索するために(テープやオフライン・メディアなどの)より低速のアーカイバル・メディアにアクセスしなければならない場合には、完了するのにかなりの時間を要するおそれがある。ウェアハウスに保存されるデータに依存するプロセスに対する混乱を最小限に抑えるタイムフレームで、必要とされているデータを再びロードすることは不可能かもしれない。さらに、場合によっては、データ・ウェアハウス120上に保存されるデータは、データ・ウェアハウス・システム100を利用するアプリケーション(たとえば、分析アプリケーション)の最初の出力となる可能性があり、したがって、単にそれをデータ・ソース160から再びロードすることによって復元することはできない。
データの損失と、その結果としての混乱とが生じる可能性を少なくするために、一実施形態においては、データ・ウェアハウス120のサブセットが特定のデータ・セットを複製するように構成される。すなわち、データ・ウェアハウス120のうちの複数が、レコードのテーブルやセットなど、データ・セットのそれぞれのレプリカを保存するように構成される。このような複製を示す一実施形態が、図2に示されている。図示されている実施形態においては、データ・ウェアハウス120a〜bは、顧客注文データと顧客発送データとを含むテーブルのレプリカを保存するようにそれぞれ構成されている。いくつかの実施形態においては、特定のデータ・セットは、2つから、データ・ウェアハウス・システム100内のデータ・ウェアハウス120の数まで、任意の数のデータ・ウェアハウス120によって複製することができるという点に留意されたい。その一方で、いくつかの実施形態においては、特定のデータ・セットは、まったく複製することができないか、あるいは他のデータ・ウェアハウス上で複製することができる。図示されている実施形態においては、データ・ウェアハウス120a〜bはそれぞれ、他方のデータ・ウェアハウスによって複製されていないテーブル(それぞれ、財務報告データやセッション・トラッキング・データ)を含む。いくつかの実施形態においては、さまざまなデータベース・スキーマを使用して(たとえば、さまざまなデータ・フィールド定義および/または構造を使用して)データ・ウェアハウス120によってさまざまなデータ・セットを保存することができるという点に留意されたい。
いくつかの実施形態においては、データ・ウェアハウス120によって保存されるデータ・セットは、多くの異なるタイプの企業に共通のものとすることができる。たとえば顧客の注文や発送のデータは、電子商取引を行っていない企業、および仮想の顧客インターフェース(たとえば、ウェブベースの電子商取引インターフェース、すなわちeコマース・インターフェース)を提供する企業の双方の中で一般に利用可能なデータ・セットとすることができる。しかし、いくつかの実施形態においては、eコマース・インターフェースをサポートする企業は、販売が行われる前でさえ、顧客とその企業との対話に関するかなりの量の情報を収集して保存するように構成される。一実施形態においては、図2に示されているセッション・トラッキング・データ・セットは、顧客とeコマース・インターフェースとの対話のいかなる側面に関するデータも保存するように構成される。たとえばセッション・トラッキング・データ・セットは、企業のウェブ・サイトへの訪問(たとえばセッション)中に顧客が見た特定のアイテムだけでなく、見ていた時間、セッション中に顧客がナビゲートしたリンク、顧客によって実行されたあらゆる検索などを示すデータを保存するように構成される。分析アプリケーションは、顧客の好みを認識すること、顧客がさまざまなアイテムを注文する可能性を予測すること、顧客に提示されるeコマース・インターフェースをカスタマイズすることなどを行うために、これらおよび他のタイプのトラッキング・データを分析するように構成される。
しかし、データ・ウェアハウジングや後述のさまざまな技術は、多大なeコマース・コンポーネントを伴わずに企業に等しく適用することができるという点に留意されたい。たとえば、いくつかの企業は、多くの機能的な部署や地理的な部署にわたる高度に複雑な内部プロセスを有する可能性があり、外部の顧客のアクティビティーは別にしても、ウェアハウジングに利用できる膨大な量のデータを社内で生成することもある。さらに、いくつかの実施形態においては、企業は、十分に複雑であり、そのために、企業の内部のアクティビティーやトランザクションに関して、上述したeコマース指向のアクティビティーと同様の情報収集戦略を採用することがある。たとえば、企業内のさまざまな事業単位は、外部の顧客と同様の顧客として他の事業単位と対話することができ、同様の方法で顧客データを生成することができる。
いくつかの実施形態においては、データ・ウェアハウス120のサブセットは、さまざまな度合いの複製を用いてさまざまなタイプのデータを保存するように構成される。たとえば図2の実施形態においては、データ・ウェアハウス120a〜bは、図示されているように、複製された様式で顧客の注文や発送のデータを保存するように構成される。同様の実施形態においては、データ・ウェアハウス120c〜dは、複製された様式(図示せず)で時系列のセッション・トラッキング・データ(たとえば、過去15カ月分に相当するトラッキング・データ)を保存するように構成される。データ・ウェアハウス120のこのような構成においては、ウェアハウス120a〜bは、顧客の注文や発送のデータを含む分析に特に適した機能的にクラスタ化またはグループ化された一式のウェアハウスを形成することができ、その一方で、ウェアハウス120c〜dは、セッション・トラッキング・データを含む分析に特に適した同様に機能的にクラスタ化された一式のウェアハウスを形成することができる。それぞれの場合、データの損失を防止する上で役立つように、相対的に重要度の高いデータを複製することができる。ウェアハウス120a〜dのこのような構成においては、顧客データへの分析駆動型の問合せが、最近のセッション・トラッキング・データを頻繁に対象とすることもできる。たとえば顧客の注文や発送のパターンの分析は、このようなパターンを最近のセッション・トラッキング・データ(たとえば、過去90日分に相当するトラッキング・データ)に相関付けるよう試みることができる。したがって図2の実施形態においては、データ・ウェアハウス120bは、セッション・トラッキング・データのセットを保存するように構成される。しかし、データ・ウェアハウス120c〜dが、セッション・トラッキング・データのより大きなセットを余分に保存するように構成されているという点(必要な場合には、データ・ウェアハウス120bによって保存されたセットをそこから再構築することができるという点)を考慮すると、データ・ウェアハウス120bによって保存されたセッション・トラッキング・データは、複製しなくてもよい。
特定のデータ・セットに関してデータ・ウェアハウス120をクラスタ化またはグループ化し、それによって、さまざまなタイプの問合せに関してデータ・ウェアハウス120のさまざまなグループを最適化できるようにすることによって、予想される使用パターンに沿ってデータ・ウェアハウス・システム100をより最適に調整できるようにすることができる。たとえば、図7の説明と併せて以降でさらに詳しく説明するように、データ・ウェアハウス120の特定のクラスタリングが処理されると予想されるアクティビティーの度合いに応じて、データ・ウェアハウス120の基礎をなすハードウェア・システムに、より多くのコンピューティング・リソースを、またはより少ないコンピューティング・リソースを提供することができる。しかし他の実施形態においては、データ・セットは、複数のデータ・ウェアハウス120にわたって、より均一な様式で分散させることができる。たとえば一実施形態においては、それぞれのデータ・ウェアハウス120は、ほぼ同じセットの計算リソースを含むことができ、データ・セットは、複数のほぼ同等のデータ・ウェアハウス120にわたって、さまざまな度合いの複製で分散させることができる。このような実施形態においては、ハードウェア・リソースは、データの保存と検索のアクティビティーに関して、あまり最適に調整されないかもしれないが、データ・ウェアハウス120の相対的に均一な実装は、たとえば、増大するデータ分析の要求を処理する上で必要となるにつれて、同様に構成されたさらなるデータ・ウェアハウス120を追加することによって、より容易に拡張することができる。
上述のように、複数のデータ・ウェアハウス120にわたるデータ・セットの複製は、特定のデータ・ウェアハウス120の障害が結果としてデータの損失につながる可能性を少なくすることによって、データの全体的な信頼性を高めることができる。このような複製は、たとえば問合せに応答して、複製されたデータ・セットをクライアントに提供できるデータ・ウェアハウス120の数を増やすことによって、データ・セットの可用性を高めることもできる。図1に示されているデータ・ウェアハウス・システム100の実施形態においては、マネージャー110は、複数のウェアハウス120の間におけるデータ・セットのあらゆる複製を含めて、データ・ウェアハウス120へのデータの保存を調整するように構成される。したがって、図示されている実施形態においては、特定のデータ・セットが複製されるか否かは、特定のデータ・ウェアハウス120にとって明白かもしれない。しかし、いくつかの実施形態においては、マネージャー110の機能として本明細書に記載されている複数のデータ・ウェアハウス120にわたるデータ・セットの管理と複製は、代わりに、複数のデータ・ウェアハウス120の間で協調的に分担することもでき、あるいはデータ・ウェアハウスとマネージャーの双方として機能するように構成されている特定のデータ・ウェアハウス120によって実行することもできるということが考えられる。
データ・ウェアハウス120によって保存される個々のデータ・セットは、場合によっては、たとえば約数百MB(megabyte)あるいはGB(gigabyte)など、非常に大きくなる可能性がある。さらに、マネージャー110による特定のデータ・セットに対する部分的な更新でさえ、たとえば新たな経営関連のデータをデータ・ソース160から定期的に抽出することに応じて、特定のデータ・ウェアハウス120に伝達すべきかなりの量のデータを含む可能性がある。1つのデータ・セットが、複数のデータ・ウェアハウス120にわたって複製される場合には、最終的に、そのデータ・セットを含むデータ、ならびにそのデータに対する継続的な更新は、それらの複数のデータ・ウェアハウス120の間で保存される。しかし、このような保存を瞬時に行うことはできない。たとえばマネージャー110が、データ・ウェアハウス120a〜bへの同一のデータの保存を同時に開始した場合でさえ、そのデータの保存をデータ・ウェアハウス120a〜bの双方において同時に完了することはできない。異なる計算負荷(たとえば問合せのサービス)、ならびに基礎をなすリソースの構成などの要因によって、一方のデータ・ウェアハウス120が、別のデータ・ウェアハウス120よりも速く保存オペレーションを完了する可能性がある。したがって、保存オペレーションがデータ・ウェアハウス120a〜bの双方において完了する前の任意の特定の時点で、保存されている最中のデータ・セットの状態は、データ・ウェアハウス120a〜bごとに異なる可能性がある。データ・セットは、この状態にある間は、非同期である、または同期化されていないと言うこともできる。
同期化されていないデータは、それらのデータを検索しようと試みるクライアント140にとって問題を提示する可能性がある。たとえば、特定の複製されたデータ・セットを対象とする問合せがマネージャー110によって受信されたときに、それらの特定のデータ・セットが、データ・ウェアハウス120a〜b上で2つの異なる状態にある場合には、その問合せは、評価のために、その問合せが対象とする特定のデータ・ウェアハウス120内のそれらの特定のデータ・セットの状態に応じて、2つの異なる結果を返す可能性がある。このような一貫性のなさは、とりわけ、複数のデータ・ウェアハウス120の間におけるデータ・セットの複製(あるいはより広くは、データ・ウェアハウス・システム100の一般的な構成)がクライアント140にとって明白である場合には、一貫性のないクライアント・オペレーションにつながる可能性がある。
同期化されていないデータへのコントロールされていないアクセスに起因する一貫性のないクライアントの動作を防止することへの1つのアプローチは、複製されたデータ・セットが複数のデータ・ウェアハウス120にわたって同期化されていない間は、そのデータ・セットへのあらゆるアクセスをマネージャー110が防止するということを含む。たとえば一実施形態においては、マネージャー110は、複製されたデータ・セットに対する更新をアトミック・オペレーションまたはトランザクショナル・オペレーションとして実行するように構成される。一般的に言えば、複数のエンティティーにわたる同期化を含むアトミック・オペレーションまたはトランザクショナル・オペレーションは、他のオペレーションに対して分割できないものとして扱われる。すなわち、関与するエンティティーのすべてがそのようなオペレーションを完了した状態、または関与するエンティティーのすべてがそのようなオペレーションを完了していない状態のいずれかでなければ、それらのエンティティーを対象とする別のオペレーションが進行することは認められない。したがって一実施形態においては、マネージャー110は、すべての関連するデータ・ウェアハウス120上に保存されているデータ・セットのすべてのレプリカが完了するまで、保存されている最中または修正されている最中の複製されたデータ・セットにアクセスしようとする試みを却下することができ、それによってクライアントは、複製されたデータ・セットへのアクセスを試みた際に一貫性のない結果を受け取ることがなくなる。
しかし、すべてのデータ・セット・レプリカにわたってアトミックまたはトランザクショナルな同期化を実施すると、データ・ウェアハウス・システム100のパフォーマンスが著しく低下するおそれがある。たとえば、特定の複製されたデータ・セットが大きい場合には、そのデータ・セットにアクセスできるようになるまでに、すべてのデータ・セット・レプリカに対する更新が完了するのを待つ際に多大な待ち時間を招くおそれがある。したがって一実施形態においては、マネージャー110は、複数のデータ・ウェアハウス120にわたって複製されたデータ・セットを大まかに同期化するように構成される。一実施形態においては、データ・セットの大まかな同期化は、特定のデータ・ウェアハウス120内の複製されたデータ・セットに対する更新をアトミックに同期化する一方で、他のデータ・ウェアハウス120によって保存されているそのデータ・セットの他のレプリカにアクセスできるようにすることを含む。すなわち一実施形態においては、マネージャー110は、(図2に示されているデータ・ウェアハウス120aの顧客注文データ・テーブルなど)特定のデータ・ウェアハウス120の特定のテーブルを、その特定のテーブルの更新中には、他の読み取りアクセスや書き込みアクセスに対してアトミックにロックすることができる。その間に、マネージャー110は、別のデータ・ウェアハウス120上でその特定のロックされたテーブルのレプリカに(たとえば、データ・ウェアハウス120bの複製された顧客注文データ・テーブルに)アクセスすることを条件付きで可能にすることができる。ある代替実施形態においては、マネージャー110は、データ・ウェアハウス120全体を、その中に保存されているデータ・セットの更新中にアトミックにロックすることもでき、あるいはテーブル内の1つの行など、更新されているデータ・セットの一部のみをロックすることもでき、マネージャー110によって任意の適切なロッキング精度を採用することができるということが考えられる。いくつかの実施形態においては、マネージャー110は、特定のデータ・ウェアハウス120上の更新されているデータ・セットの一部をロックする一方で、その特定のデータ・ウェアハウス120上の同じデータ・セットのロックされていない部分に読み取りや更新のために別途アクセスすることを可能にするように構成されるということがさらに考えられる。
一実施形態においては、マネージャー110は、あるデータ・セット・レプリカへのアクセスを、別のデータ・セット・レプリカの更新中に、そのアクセスがそのデータ更新に依存していないならば、条件付きで可能にすることができる。たとえばクライアント140は、(たとえば現在の暦四半期を除いた)前の完全な暦四半期に関するすべての顧客発送データを要求する問合せを送信することができる。その間に、マネージャー110は、多くの顧客満足サイトから前日の顧客発送データを抽出している最中であり、それらの顧客満足サイトのそれぞれは、データ・ソース160を含む。マネージャー110は、データ・ウェアハウス120a内の同期化を確実にするために任意の適切なロッキング・スキームを使用して、データ・ウェアハウス120aによって保存されている顧客発送データ・テーブルを更新するように構成される。ウェアハウス120aに対する更新が進行している間は、顧客発送データのそのレプリカに対する問合せ(あるいは、いくつかの実施形態においては、ウェアハウス120a内の任意のデータに対する問合せ)を却下することができる。しかしマネージャー110は、前の暦四半期に関する顧客発送データを求める送信された問合せが、現在データ・ウェアハウス120aに対して進行中の更新に依存していないことを検知するように構成される。すなわち、その問合せを満たすのに必要なすべてのデータは、たとえデータ・ウェアハウス120b内の顧客発送データがデータ・ウェアハウス120a内のレプリカと完全には同期化されていなくても、データ・ウェアハウス120b内に提示することができる。したがってマネージャー110は、顧客発送データの更新がデータ・ウェアハウス120bへ保存される前に、その問合せがデータ・ウェアハウス120bによって評価されることを可能にすることができる。この例においては、当該データ・セットは、データ・ウェアハウス120aと120bにわたって完全には同期化されず、むしろ大まかに同期化され、この場合、問合せを評価するための十分なデータを有するデータ・ウェアハウス120は、当該データ・セットの最新のバージョンを有していない場合でさえ、問合せを評価することができる。
図1に示されているデータ・ウェアハウス・システム100の実施形態においては、マネージャー110は、特定のデータ・セットが保存されている(1つまたは複数の)位置(たとえば、特定のデータ・セットの単独のコピーやレプリカを有する特定のデータ・ウェアハウス120)を識別する情報、ならびに進行中の任意の更新アクティビティーに関してデータ・セットのそれぞれのコピーの状態を識別する情報など、データ・ウェアハウス120によって保存されているデータ・セットに関する情報を保持するためにオペレーション・データベース130を利用するように構成される。たとえば一実施形態においては、オペレーション・データベース130は、データ・ウェアハウス120によって保存されている顧客発送データ・テーブルのそれぞれのコピーに対応するそれぞれのレコードを含む。図2に示されている実施形態に関しては、オペレーション・データベース130は、このようなレコードを2つ保存することができ、そのそれぞれは、それぞれのデータ・ウェアハウス120a、bを、顧客発送データ・テーブルのそれぞれのレプリカを保存するものとして識別する。さらに、それぞれのレコードは、対応するデータ・ウェアハウス120a、b内のテーブルの状態を示すフィールドを含む。前のパラグラフで与えられた例を参照すると、マネージャー110がデータ・ウェアハウス120a内の顧客発送データ・テーブルの更新を調整している間、オペレーション・データベース130内の対応するレコードは、そのレプリカが更新中であり、利用できないということや、他の適切な状態を表示することができる。対照的に、データ・ウェアハウス120bによって保存されている顧客発送データ・レプリカに関するレコードは、そのレプリカが更新中ではないということや、その更新が既に完了したということを表示することができる。
さまざまな実施形態においては、オペレーション・データベース130は、データ・セットの位置と状態を識別する異なるタイプのデータを保存するように構成される。たとえば位置を識別するデータは、システム名、IP(internet protocol)アドレス、あるいは他の適切な識別子など、データ・ウェアハウス120のための一意の識別子を含む。状態情報は、特定のデータ・セットが更新されている最中か否かを示すシンプルなセマフォーから、特定のデータ・セットの状態を特徴付けるさらに複雑なフィールドまで、多岐にわたることができる。たとえば、いくつかの実施形態においては、あるデータ・セットに対応する状態情報は、そのデータ・セットが最後に更新された時刻、その更新を実行するために使用されたデータ・ソース160、更新の理由(たとえば、スケジュールされたオペレーションや手動のオペレーションのため)、あるいは他の任意の適切な状態情報を示すことができる。いくつかの実施形態においては(たとえばマネージャー110が、データ・ウェアハウス120に対する複数の並行した読み取りオペレーションや書き込みオペレーションをサポートするように構成されている実施形態においては)、マネージャー110は、動作状態の同期化を確実にするために、オペレーション・データベース130の読み取りおよび/または修正を行うのにトランザクショナル・オペレーションを使用するように構成される。
オペレーション・データベース130によって保存されている位置と状態の情報は、一実施形態においては、データ・ウェアハウス120によって保存されているデータの大まかな同期化を実施するためにマネージャー110によって使用することができる。すなわちマネージャー110は、データを抽出してデータ・ウェアハウス120内に保存する際に、また保存されているデータを検索するためのオペレーション(たとえば問合せ)を受信した際に、オペレーション・データベース130を調べるように構成されている。大まかな同期化を使用して、抽出されたデータをデータ・ウェアハウス120内に保存する方法の一実施形態が、図3に示されている。図1から図3をまとめて参照すると、オペレーションは、ブロック300において開始し、このブロック300では、1つまたは複数のデータ・ソースからデータ・セットを抽出するためのオペレーションが開始する。たとえば一実施形態においては、マネージャー110は、企業のいたるところに分散されている顧客満足サイトなど、1つまたは複数のデータ・ソース160から、顧客発送データなどのデータ・セットを、繰り返し(たとえば毎時間、毎晩、毎週)抽出するように構成される。あるいはユーザやアプリケーションは、データ・セットが抽出され保存されるよう、クライアント140を介して要求することができる。いくつかの実施形態においては、複数のデータ・セットをデータ・ソース160から同時に抽出して、1つまたは複数のデータ・ウェアハウス120内で更新することができるということが考えられる。たとえば、複数のデータ・セットを同時に抽出して、スケジュールされたバッチ・ジョブなどのバッチ・ジョブやバッチ・プロセスとして保存することもでき、あるいはデータ・セットをデータ・ソース160から動的にストリームして、データ・ウェアハウス120内で更新することもできる。
その後、マネージャー110は、たとえばデータを引き出すための問合せや他のコマンドをデータ・ソース160へ発行することによって、抽出されたデータを検索する(ブロック302)。抽出されたデータを、必要な場合には変換する(ブロック304)。たとえば、抽出されたデータのフォーマットを設定し直すことが必要になることもあり、あるいは、上述のようにデータ・ウェアハウス120のデータ保存要件に従ってデータそのものを修正することが必要になることもある。
そしてマネージャー110は、どのデータ・ウェアハウス120が、抽出されたデータ・セットをホストしているかを割り出す(ブロック306)。たとえば一実施形態においては、マネージャー110は、オペレーション・データベース130を調べて、抽出されたデータ・セットが存在する位置を、その中に保存されているレコードに従って割り出すことができる。次いでマネージャー110は、抽出されたデータ・セットを用いて更新する特定のデータ・ウェアハウス120を選択し、そのデータ・セットに関連付けられている状態情報を更新して、更新が行われている最中であることを表示する(ブロック308)。いくつかの実施形態においては、抽出されたデータ・セットをホストしているそれぞれのデータ・ウェアハウス120の更新は、別々の時点において開始したり終了したりする可能性があるが、マネージャー110は、これらの更新を、並行したやり方または重なるやり方で行うように構成される。このような並行処理が、ブロック308〜312の繰り返されるブロックに関して図3に示されており、これらは、いくつかの異なるデータ・セットやデータ・セット・レプリカのそれぞれに関して並行して実行することができる。たとえばマネージャー110は、抽出されたデータ・セットの更新をいくつかの異なるデータ・ウェアハウス120上で同時に開始するか、あるいは、それらの更新をずらし、それによってそれらの更新が時間の点で部分的に重なるようにすることもできる。また、いくつかの実施形態においては、複数の異なるデータ・ウェアハウス120内で複数の異なるデータ・セットを同時に更新することができるという点に留意されたい。
他の実施形態においては、マネージャー110は、連続したやり方または条件付きのやり方でデータ・ウェアハウス120を更新するように構成される。たとえば、抽出されたデータ・セットがデータ・ウェアハウス120のサブセットによって複製されている場合には、マネージャー110は、特定のデータ・ウェアハウス120をランダムに選択して、更新を開始することができる。あるいはマネージャー110は、そのサブセットのうちで最も余裕があるデータ・ウェアハウス120を選択することもでき、または他の何らかの選択基準を使用することもできる。オペレーション・データベース130が未処理のデータ・セット読み取りオペレーションを追跡把握するいくつかの実施形態においては、あるデータ・セットが(たとえば問合せによって)現在読み取られている最中である場合には、データ・ウェアハウス120をそのデータ・セットの更新に関しては選択しないでおくことができる。データ・ウェアハウス120が選択されると、一実施形態においては、マネージャー110は、そのデータ・セットと、選択されたデータ・ウェアハウス120とに関連付けられているオペレーション・データベース130内に保存されているレコード内の状態情報を更新して、そのデータ・セットがその選択されたデータ・ウェアハウス上で修正されている最中であることを表示することができる。上述のように、いくつかの実施形態においては、マネージャー110は、たとえば複数の並行したオペレーションの正しい順序付けを確実にするために、オペレーション・データベース130と対話するのにトランザクショナル・オペレーションを使用することができる。
そして抽出されたデータ・セットは、選択されたデータ・ウェアハウス120へ保存される(ブロック310)。選択されたデータ・ウェアハウス120に対する更新が進行している間は、他のデータ・ウェアハウス120を介して、そのデータ・セットの他のレプリカに対するアクセスおよび/または更新を行うことができるという点に留意されたい。更新が完了すると、マネージャー110は、そのデータ・セットに関連付けられている状態情報を更新して、更新の完了を表示する(ブロック312)。
いくつかの実施形態においては、マネージャー110は、抽出されたデータ・セットをバッファに保存する必要はなく、その一方で、この抽出されたデータ・セットは、その対応するデータ・ウェアハウス120へ順に保存されるということもある。ある代替実施形態においては、マネージャー110は、データ・ソース160からのデータの抽出を開始する前に、更新するデータ・ウェアハウス120を選択することができる。そしてマネージャー110は、抽出されたデータを(適切な変換を施して)、選択されたデータ・ウェアハウス120へとストリームすることや、ストリームさせることができ、その後、更新されたデータ・ウェアハウス120を、他のデータ・ウェアハウス120を更新するためのデータ・ソースとして使用することができる。いくつかの実施形態においては、複数のデータ・ウェアハウス120を、順にではなく、同時に更新するようにしてもよい。たとえば、特定のデータ・セットが3つのデータ・ウェアハウス120内で複製されている場合には、それらのうちの2つを同時に更新する一方で、3つ目のデータ・ウェアハウス120を、その特定のデータ・セットに対する問合せのために利用できるように残しておくことができる。最後に、いくつかの実施形態においては、データ・ウェアハウス120のすべて(または選択されたサブセット)を同時に更新して、状態をオペレーション・データベース130内に適切に表示することによって、(大まかな同期化とは対照的な)完全な同期化を実現することができる。
大まかな同期化を使用して、データ・ウェアハウス120によって保存されているデータに関して問合せを行う方法の一実施形態が、図4に示されている。図1から図4をまとめて参照すると、オペレーションは、ブロック400において開始し、このブロック400では、データ・ウェアハウス120によって保存されている1つまたは複数のデータ・セットに依存する問合せオペレーションが受信される。たとえば一実施形態においては、マネージャー110は、このような問合せをクライアント140から、直接またはウェブ・サービス・インターフェース150を介して受信するように構成される。
その後、マネージャー110は、受信した問合せを分析して、その問合せのデータ・セット依存度を割り出す(ブロック402)。いくつかの実施形態においては、データ・セット依存度を割り出すステップは、その問合せによって参照される特定のデータ・セットや、依存されているデータ・セットに関する任意のさらなる状態情報を割り出すステップを含む。たとえば一実施形態においては、マネージャー110は、特定の問合せが、図2に示されている顧客発送データ・テーブルに依存しているということを、そしてさらには、依存されているデータは、前の暦四半期に関するデータであるということを割り出すことができる。
そしてマネージャー110は、依存されているデータ・セットのデータ・ウェアハウス120内における位置や、保存されているデータ・セットに関連付けられている現在の状態情報を割り出す(ブロック404)。たとえばマネージャー110は、依存されているそれぞれのデータ・セットごとに、どのデータ・ウェアハウス120がそのデータ・セットのコピーをホストしているか、ならびにそのコピーに関連付けられている状態情報(たとえば、現在更新中、特定の日付現在で、メンテナンスのためにオフライン中など)を割り出すために、オペレーション・データベース130を調べる。
受信した問合せのデータ・セット依存度、ならびにデータ・ウェアハウス120内におけるデータ・セットの位置と状態に関する情報の分析に基づいて、マネージャー110は、いずれかのデータ・ウェアハウス120が、その受信した問合せを評価するための十分なデータを有しているかどうかを判定する(ブロック406)。たとえば一実施形態においては、マネージャー110は、あるデータ・ウェアハウス120が、特定の問合せによって依存されているそれぞれのデータ・セットのコピーを有している場合、依存されているそれぞれのデータ・セットが、その他の形で(たとえば、図3に示されているような抽出と保存のオペレーションによって)更新されている最中でない場合、および依存されているそれぞれのデータ・セットが、その問合せの状態要件(たとえば、それぞれのデータ・セットが、少なくとも、その問合せによって指定されているいずれの日付範囲とも同じぐらい新しいものであること)を満たす場合には、そのデータ・ウェアハウス120が、その問合せを評価するための十分なデータを有していると判定する。他の実施形態においては、マネージャー110は、特定の問合せに関して特定のデータ・ウェアハウス120がデータを十分に有しているかどうかを判定するために、別の基準やさらなる基準を使用することができる。たとえば、このような基準は、特定のタイプの照会言語を評価するための機能や、複雑な問合せを処理するための利用可能な計算リソースなど、データ・ウェアハウス120の機能やリソースに関する情報を含む。
いくつかの実施形態においては、1つまたは複数のデータ・ウェアハウス120は、特定のデータ・ウェアハウス120によって同時に評価できる問合せの数を制限することなどによって問合せ評価リソースを管理するように構成される。たとえばデータ・ウェアハウス120は、問合せを実行するための特定の数の「ジョブ・スロット」を提供するように構成され、すべてのスロットが占有されている場合には、さらなる問合せを受け入れることができないようにすることができる。いくつかの実施形態においては、特定の問合せは、その問合せの複雑さを問わずに、1つの利用可能なジョブ・スロットに対応することががる。他の実施形態においては、より複雑な問合せが、複数のジョブ・スロットを占有することもあり、あるいは、データ・ウェアハウス120によって他のタイプのロード・バランシング戦略を採用することもできる。いくつかの実施形態においては、特定の問合せを評価するための十分なデータを特定のデータ・ウェアハウス120が有しているかどうかを判定するマネージャー110は、特定のデータ・ウェアハウス120の利用可能な問合せ評価リソースを考慮に入れることもできる。たとえば一実施形態においては、問合せを評価するための十分なデータを有しているが、問合せを評価するための利用可能なリソースをまったく有していないデータ・ウェアハウス120は、マネージャー110によって選択しないでおくことができる。
受信した問合せを評価するための十分なデータを有するデータ・ウェアハウス120がまったくない場合(あるいは、いくつかの実施形態においては、受信した問合せを評価するための利用可能なリソースを十分に有するデータ・ウェアハウス120がまったくない場合)には、マネージャー110は、十分なデータ・ウェアハウス120を識別できるようになるときまで、その問合せを待ち行列に入れておく(ブロック408)。たとえば一実施形態においては、マネージャー110は、受信した問合せが、特定のデータ・ウェアハウス120に対して現在更新されている最中であるデータ・セットに依存しているということを識別し、その問合せが、その更新の完了後にその特定のデータ・ウェアハウス120上で評価されるようにスケジュールすることができる。あるいはマネージャー110は、待ち行列に入っている問合せをときおり再評価して、データ・ウェアハウス120が、問合せを評価するのに利用できるようになったかどうかを判定するようにしてもよい。いくつかの実施形態においては、クライアントのデッドロックを回避するために、マネージャー110は、問合せが待ち行列に入っていられる時間の長さに関して制限を課すことができ、その問合せが、待ち行列に入っていられる制限時間を超えた場合には、クライアントにエラー状態を返すことができる。
受信した問合せを評価するのに十分なデータ・ウェアハウス120が識別された場合には、マネージャー110は、その受信した問合せを、評価のためにそのデータ・ウェアハウス120に伝達する(ブロック410)。大まかな同期化のもとでは、特定のデータ・セットを対象とする問合せは、その特定のデータ・セットのレプリカが1つのデータ・ウェアハウス120上で更新されている間に、別のデータ・ウェアハウス120によって評価されるという点に留意されたい。
大まかな同期化のもとでのデータ・セットの更新とデータ・セットの問合せとの間における関係の一実施形態を示すタイミング図が、図5Aに示されている。示されているタイミング図においては、マネージャー110は、時刻T1に特定のデータ・セットの更新を開始し、ここでは、このデータ・セットは、データ・ウェアハウス120a〜bによって複製されている。その後、更新されている最中のデータ・セットを対象とする問合せが、時刻T2にマネージャー110によって受信される。データ・セットの更新は、T2よりも後の時刻T3にデータ・ウェアハウス120aにおいて完了し、T3よりも後の時刻T4にデータ・ウェアハウス120bにおいて完了する。
図示されている実施形態においては、受信した問合せを評価するための3つの可能なタイムフレームが示されている。第1のケースにおいては、更新されている最中のデータ・セットの更新前の内容によって問合せを満たすことができるようにする。たとえばマネージャー110は、オペレーション・データベース130と共に、問合せを評価するのに必要なデータが現在の更新に依存していないということを判定する。このケースにおいては、時刻T2の後に、当該データ・セットをホストしている任意の利用可能なデータ・ウェアハウス120によって問合せを評価する。すなわち問合せは、受信された後のできるだけ早い時点で評価され、これは、場合によっては、遅延を招くおそれがある。たとえば、いくつかの実施形態においては、上述のように、現在更新されている最中のデータ・ウェアハウス120上では問合せを評価することが認められないかもしれない。さらに場合によっては、データ・ウェアハウス120は、あまりに余裕がないために、問合せをすぐに受け入れることができないかもしれない。しかし、いくつかの実施形態においては、更新前のデータに依存する問合せの場合、時刻T2の後のどの時点でその問合せを実行できるかに関して、いかなる更新関連の時間的な制約も必要ではない。
第2、第3のケースにおいては、問合せは、更新されている最中のデータ・セットの更新後の内容に依存する。すなわち問合せは、その正しい評価のために、時刻T1に開始されたデータ・セットの更新において反映されたデータを要求する。図示されている実施形態においては、この更新は、時刻T3にデータ・ウェアハウス120aにおいて、時刻T4にデータ・ウェアハウス120bにおいて完了する。これに対応して、問合せは、時刻T3より後の任意の時点でデータ・ウェアハウス120aによって、また時刻T4より後の任意の時点でデータ・ウェアハウス120bによって評価される。前述のように、および図5Aに示されているように、大まかな同期化のもとでは、問合せは、その問合せによって対象とされているデータ・セットのすべてのレプリカが更新される前に、また場合によっては(たとえば、その問合せが更新前のデータに依存している場合には)、そのデータ・セットのレプリカが特定のデータ・ウェアハウス120上で更新される前に、その特定のデータ・ウェアハウス120によって評価される。上述のように、いくつかの実施形態においては、特定のデータ・セットを対象とする問合せは、その特定のデータ・セットが1つのデータ・ウェアハウス120へ保存されている間に、別のデータ・ウェアハウス120によって評価され。さらに、いくつかの実施形態においては、特定のデータ・セットが任意の特定のデータ・ウェアハウス120へ保存された後に、その特定のデータ・ウェアハウス120が、その特定のデータ・セットを対象とする問合せを評価する。たとえば、複製されたデータ・セットが、いくつかのまたはすべての対応するデータ・ウェアハウス120へ更新された後には、それらの更新されたデータ・ウェアハウス120のいずれかが、その複製されたデータ・セットへの問合せを満たす。
また、いくつかの実施形態においては、上述のように、データ・セットの部分をロックするためのきめの細かいメカニズムを採用して、更新されている最中のデータ・セットをホストしている特定のデータ・ウェアハウス120を、その更新が完了する前にそのデータ・セットに対する問合せを評価する上で利用できるようにすることができるという点に留意されたい。たとえば、いくつかの実施形態においては、マネージャー110とオペレーション・データベース130は、データ・セットの部分(たとえば、テーブルの個々の行や、行のセット)の状態を追跡把握するように構成される。特定のデータ・セットのある部分が、特定のデータ・ウェアハウス120上で更新されている間に、マネージャー110は、特定の問合せが、その特定のデータ・セットのうちの現在更新されている最中ではないある部分に依存していることを判断し、したがって、その問合せをその特定のデータ・ウェアハウス120によって評価できるようにすることができる。このような実施形態においては、データ・セットのうちの更新中ではない部分に対する問合せを、まるでその問合せが、更新されている最中のデータ・セットとは無関係のデータ・セットに依存しているかのように機能的に取り扱うことができ、その更新とは無関係に評価できるようにすることができる。図5Aの状況においては、このような問合せは、時刻T3とT4の更新完了ポイントと同期化することなく、時刻T2に受信された後の任意の時点で評価される。
図5B〜図5Dは、図5Aに示されているさまざまな時点に関連して、大まかな同期化を使用して複製されたデータ・セットの一実施形態の特定の例を示している。図5B〜図5Dに示されている実施形態においては、顧客注文データ・セットは、データ・ウェアハウス120a〜bによって複製されるように構成されている。図5Bは、更新の開始よりも前の時点(たとえば、図5Aに示されている時刻T1よりも前の時点)での顧客注文データ・セットのレプリカを示している。図5Bにおいては、顧客注文データ・セットの双方のレプリカが、更新前の状態で示されている。
図5Cは、データ・ウェアハウス120aのレプリカが更新された後の、ただしデータ・ウェアハウス120bのレプリカが更新される前の時点(たとえば、図5Aに示されている時刻T3とT4の間の時点)での顧客注文データ・セットのレプリカを示している。図5Cに示されているように、顧客注文データ・セットの2つのレプリカは、異なる状態にある。最後に、図5Dは、双方のレプリカが更新された後の時点(たとえば、図5Aに示されている時刻T4よりも後の時点)での顧客注文データ・セットのレプリカを示している。上述のように、顧客注文データ・セットに対する問合せは、そのデータ・セットに対する更新が開始した後の任意の時点で着信する。そのデータ・セットの要件に応じて、(たとえば図5Cに示されているように)双方のデータ・セット・レプリカが別々の内容を有している時点を含めて、双方のデータ・ウェアハウス120a〜bに対して更新が完了する前に、データ・ウェアハウス120a〜bのいずれかの上で特定の問合せを実行できるようにすることができる。
いくつかの実施形態においては、データ・ウェアハウス・システム100の編成は、システム100と対話するように構成されているクライアント140にとって完全にトランスペアレントであるという点に留意されたい。すなわち、いくつかの実施形態においては、クライアント140は、データ・ウェアハウス120内における特定のデータ・セットの位置または状態に関する直接の知識をまったく持たないようにすることができる。このようないくつかの実施形態においては、マネージャー110は、複数のデータ・ウェアハウス120を、クライアント140の視点から見た際に単一の仮想データ・ウェアハウスとして提示するように構成される(たとえばマネージャー110は、データ・ウェアハウス120を仮想化するように構成される)。したがって、このようないくつかの実施形態においては、マネージャー110は、(問合せインターフェースなどの)単一の安定したインターフェースをクライアント140に提示している間に、データ・セットを複数のデータ・ウェアハウス120の間で移動させるために、あるいはシステム100内に保存されているデータの編成をその他の形で変更するために、データ・セットを任意の度合いで自由に複製できるようにすることができる。
一実施形態においては、任意の特定の時点で、複数のデータ・ウェアハウス120によって保存されている複数のデータ・セットを、特定のクライアント140によって問合せを行う上で利用できる可能性があり、また任意の特定の時点で、保存されているデータ・セットのうちの1つが、その保存されているデータ・セットのうちの別の1つとは異なることもある。たとえば、保存されている2つのデータ・セットは、別々のタイプのデータを保存するように決められているために異なる可能性がある。あるいは、保存されている2つのデータ・セットは、同じデータを複製するように構成されているかもしれないが、特定の時点においては、上述のような大まかな同期化のオペレーションのために異なっている可能性がある。いくつかの実施形態においては、これらのシナリオのいずれかのもとでの複数のデータ・セットが、クライアント140によって問合せを行う上で利用できる可能性があり、マネージャー110は、このようなデータ・セットがデータ・ウェアハウス・システム100内でどのように配置され操作されるかの詳細を、クライアント140にとって明白な方法で管理するように構成される。
クライアント140に関するデータ・ウェアハウス120の仮想化は、データ・ウェアハウス120内に保存されているデータ・セットが複製されているかどうかを問わずに行うことができる。クライアント140に対して複数のデータ・ウェアハウス120を単一のデータ・ウェアハウスとして仮想化する方法の一実施形態が、図6に示されている。図1から図6をまとめて参照すると、オペレーションは、ブロック600において開始し、このブロック600では、マネージャー110が、データ・ウェアハウス120に投入されているデータ・セットに関する位置情報を保存する。たとえば一実施形態においては、マネージャー110は、それぞれのデータ・セットごとの位置情報を、そのデータ・セットが複製されているかどうかなど、そのデータ・セットの状態を識別する他の情報と共に、オペレーション・データベース130内に保存することができる。
その後、マネージャー110は、データ・ウェアハウス・システム100内に保存されている特定のデータ・セットを対象とする問合せを受信する(ブロック602)。これに応答して、マネージャー110は、その受信した問合せを評価できる特定のデータ・ウェアハウス120を識別する(ブロック604)。たとえばマネージャー110は、上述のようにデータ・セットや状態の依存度を検知するために問合せを分析するように、およびその問合せを評価できる1つの(あるいは、そのデータ・セットが複製されている場合には、複数の)データ・ウェアハウス120を識別するためにオペレーション・データベース130を調べるように構成される。進行中のデータ・セットの更新や、データ・ウェアハウスの作業負荷など、他の要因が、問合せを評価するための適切なデータ・ウェアハウス120の識別に影響を与える可能性もある。
受信した問合せを評価するためにデータ・ウェアハウス120が識別されると、マネージャー110は、評価のために、その問合せをその選択されたデータ・ウェアハウス120に伝達する(ブロック606)。そして、その問合せが評価され(ブロック608)、マネージャー110を介して要求側のクライアント140に結果が返される(ブロック610)。いくつかの実施形態においては、問合せの送信と、問合せの結果の受信との間のすべてのステップは、クライアント140にとってトランスペアレントであるという点に留意されたい。場合によっては、マネージャー110は、評価のための適切なデータ・ウェアハウス120をすぐに識別できない場合には、問合せを待ち行列に入れることができるという点にさらに留意されたい。さらにマネージャー110は、場合によっては、たとえば問合せが不正な形式である場合や、データ・ウェアハウス120を待つ時間が切れた場合には、要求側のクライアント140にエラー状態を返すことができる。
データ・ウェアハウスの計算インフラストラクチャー
データ・ウェアハウス120は、計算ハードウェアのそれぞれのセットを含み、さらにデータ・ウェアハウジング機能を実装するように構成されているオペレーティング・システム・ソフトウェアやデータ・ウェアハウジング・ソフトウェア(たとえばデータベース・ソフトウェア)を含む。いくつかの実施形態においては、使用される計算ハードウェアは、カスタマイズされたバージョンのオペレーティング・システムと、特定のインストールに固有のデータ・ウェアハウジング・ソフトウェアとに入念に一体化された独自仕様のハイエンドのマルチプロセッサ・コンピュータ・システムを含む。しかしこのような構成は、購入し、管理し、維持する上で高くつくおそれがある。したがって、いくつかの実施形態においては、データ・ウェアハウス120のいずれかまたはすべては、広く流通しているまたはオープンソースのオペレーティング・システムおよび/またはデータ・ウェアハウジング・ソフトウェアを実行するより安価な(たとえば日用的な)コンピュータ・システムから作成されたそれぞれのコンピューティング・クラスタをそれぞれ含む。
データ・ウェアハウス120を実装することができるコンピューティング・クラスタの一実施形態が、図7に示されている。図示されている実施形態においては、データ・ウェアハウス・クラスタ700(あるいは、単にクラスタ700)は、複数のコンピューティング・ノード710(あるいは、単にノード710)を含む。ノード710のそれぞれは、複数のスイッチ720のそれぞれに結合されており、それぞれのスイッチ720は、それぞれの数のストレージ・アレイ730に結合されている。したがって、図示されている実施形態においては、それぞれのノード710は、適切なスイッチ720を通じてストレージ・アレイ730のいずれかにアクセスすることができる。一実施形態においては、クラスタ700は、16個のノード710、8個のスイッチ720、64個のストレージ・アレイ730を含む。しかし、さまざまな実施形態においては、任意の数のノード710、スイッチ720、ストレージ・アレイ730、さらにはこれらの要素を相互接続するためのさまざまなトポロジーを採用することができるという点に留意されたい。
一実施形態においては、ノード710のそれぞれは、図8の説明と併せて以降でさらに詳しく説明するように、ユニプロセッサまたはマルチプロセッサのコンピュータ・システムを含む。いくつかの実施形態においては、ノード710は、Sun Microsystems、Hewlett−Packard、IBM、Dell、あるいは任意の適切なシステム製造業者を含む複数のベンダのうちの任意のベンダから市販されている汎用サーバ、パーソナル・コンピュータ、あるいはワークステーション・システムを含む。さらにノード710は、あるバージョンのLinux、Microsoft Windows(登録商標)、Solaris、HP−UX、AIXに準拠したオペレーティング・システムや、他の任意の適切な一般に入手可能なまたは独自仕様のオペレーティング・システムなど、1つまたは複数の適切なオペレーティング・システムを実行するように構成される。
一般的に言えば、ノード710のそれぞれは、マネージャー110を介して受信した問合せや、他のデータ・ウェアハウス・オペレーションを、ストレージ・アレイ730を介して保存できるデータ・セットに照らして評価するように機能し、その一方でスイッチ730は、ノード710とストレージ・アレイ730との間における相互接続を提供する。したがって、図示されている実施形態においては、特定のノード710上で評価されている問合せは、ストレージ・アレイ730のうちのいずれかに保存されているデータ・セットに均一にアクセスすることができる。他の実施形態においては、データ・セットは、複数のノード710に不均一に利用可能にすることができる。たとえば特定のノード710は、一部のデータ・セットを含むが他のデータ・セットは含まないストレージ・アレイ730のうちの特定の1つまたは複数に対応付けるられる。このような実施形態においては、複数のノード710は、特定の問合せによって依存されているデータ・セットが複数のストレージ・アレイ730にわたってどのように分散されているかに応じて、その問合せの評価に参加する必要があるであろう。
いくつかの実施形態においては、スイッチ720とストレージ・アレイ730は、SAN(storage area network)を含む。たとえばスイッチ720は、ファイバー・チャネル相互接続や、他の適切なSAN相互接続と管理テクノロジーを使用して、ノード710およびストレージ・アレイ730に結合されている。しかし、クラスタ700のデバイスどうしを相互接続するために任意の適切なタイプのネットワークを使用することもできる。たとえば一実施形態においては、相互接続テクノロジーとして、ギガビット・イーサネット(登録商標)や10ギガビット・イーサネットを使用することができる。
ストレージ・アレイ730のそれぞれは、固定式の磁気ディスク・ドライブなど、1つまたは複数のマス・ストレージ・デバイスを含む。たとえば一実施形態においては、それぞれのストレージ・アレイ730は、RAIDア(Redundant Array of Independent Disks)アレイとして構成されているまったく同じ数のSCSI(Small Computer Systems Interface)ハード・ドライブを含む。たとえばディスク・ストライピング、ミラーリング、データ・パリティーなど、ストレージ・アレイ730によってサポートされるさまざまなストレージ機能は、ストレージ・アレイ730自体によって管理することができる。たとえばストレージ・アレイ730は、マス・ストレージ・デバイスに加えて、それらのデバイスを管理するように構成されているさらなるハードウェアを含む。あるいは、ストレージ・アレイ730を比較的受け身にすることもでき、そのストレージ機能をインテリジェントなスイッチ720によって管理することもできる。特定のストレージ・アレイ730は、磁気ディスクに加えて、あるいは磁気ディスクの代わりに、たとえば光メディアや磁気テープなど、他のタイプのストレージ・デバイスを含むということもある。さらに、いくつかの実施形態においては、ストレージ・アレイ730のそれぞれをまったく同様に構成することができ、その一方で、他の実施形態においては、ストレージ・アレイ730をその構成および/または機能セットの面で異種混成なものにすることができるということもある。
いくつかの実施形態においては、クラスタ700は、特定のデータ・ウェアハウス120の予想される作業負荷にマッチするように、容易に拡張できるようにすることができる。たとえばデータ・ウェアハウス120が、まれな問合せや比較的簡単な問合せを受信する大量のデータを格納すると予想される場合には、(上述のような任意の所望のデータ・セットの複製を含む)予想される量のデータを保存するストレージ・アレイ730を用意することができ、その一方で、予想される作業負荷に基づいてノード710を別個に設けることができる。問合せの作業負荷やストレージの要件が増加した場合には、さらなるノード710、スイッチ720、および/またはストレージ・アレイ730を後から追加することができる。
いくつかの実施形態においては、上述の方法や技術のいずれか、たとえばマネージャー110またはデータ・ウェアハウス120の機能、あるいは図3、4、6に示されている方法を、コンピュータがアクセス可能なメディアを介して保存し、伝達できるプログラム命令とデータとして実現させることができる。このようなプログラム命令を実行して、データ・ウェアハウジングと仮想化、ストレージ管理、問合せとデータ・セットの分析、問合せの評価、オペレーティング・システムの機能、アプリケーション、ならびに/あるいは他の任意の適切な機能など、特定の計算機能を実施することができる。一実施形態においては、ノード710は、コンピュータがアクセス可能なメディアを含む。特定のノード710を例示することができるコンピュータ・システムの一実施形態が、図8に示されている。図示されている実施形態においては、コンピュータ・システム800は、入力/出力(I/O)インターフェース830を介してシステム・メモリ820に結合されている1つまたは複数のプロセッサ810を含む。ノード710は、ネットワーク・インターフェース840やSANインターフェース850をさらに含み、これらは、それぞれI/Oインターフェース830に結合されている。
いくつかの実施形態においては、コンピュータ・システム800のインスタンスは、クラスタ700から切り離して構成させることができ、データ・ウェアハウス・システム100内の他のアプリケーションや機能を実行するように構成されるという点に留意されたい。たとえば一実施形態においては、コンピュータ・システム800の1つまたは複数のインスタンスは、クラスタ700の外に提供することができ、コンピュータがアクセス可能なメディアを介して保存や伝達ができるプログラム命令とデータを実行するように構成され、マネージャー110を実現するように構成される。このようないくつかの実施形態においては、マネージャー110を実現するように構成されているコンピュータ・システム800のインスタンスの構成は、図8に示されている構成とは異なるものにすることができる。たとえば、いくつかの実施形態においては、コンピュータ・システム800のこのようなインスタンスは、より多くのプロセッサ810、あるいはより少ないプロセッサ810を含む。さらに、いくつかの実施形態においては、このようなインスタンスは、SANインターフェース850を保持することができるが、このインターフェースは、省略することもできる。
上述のように、さまざまな実施形態においては、コンピュータ・システム800は、1つのプロセッサ810を含むユニプロセッサ・システムとすることもでき、あるいは複数の(たとえば2つ、4つ、8つ、または別の適切な数の)プロセッサ810を含むマルチプロセッサ・システムとすることもできる。プロセッサ810は、命令を実行することができる任意の適切なプロセッサとすることができる。たとえば、さまざまな実施形態においては、プロセッサ810は、x86、PowerPC、SPARC、またはMIPS ISA、あるいは他の任意の適切なISAなど、さまざまなISA(instruction set architecture)のいずれかを実装する汎用プロセッサや内蔵プロセッサとすることができる。マルチプロセッサ・システムにおいては、プロセッサ810のそれぞれは一般に、同じISAを実装することができるが、これは必須ではない。
システム・メモリ820は、プロセス810によってアクセス可能な命令とデータを保存するように構成される。さまざまな実施形態においては、システム・メモリ820を、SRAM、SDRAM、不揮発性/フラッシュタイプのメモリ、あるいは他の任意のタイプのメモリなど、任意の適切なメモリ・テクノロジーを使用して実装することができる。図示されている実施形態においては、上述のような、所望の機能を実行するプログラム命令とデータは、コード825としてシステム・メモリ820内に保存されるものとして示されている。
一実施形態においては、I/Oインターフェース830は、プロセッサ810と、システム・メモリ820と、デバイス内のすべての周辺デバイスとの間におけるI/Oトラフィックを調整するように構成される。周辺デバイスには、ネットワーク・インターフェース840、SANインターフェース850、あるいは他の周辺インターフェースが含まれる。いくつかの実施形態においては、I/Oインターフェース830は、すべての必要なプロトコル、タイミング、あるいは他のデータの変換を実行して、あるコンポーネント(たとえばシステム・メモリ820)からのデータ信号を別のコンポーネント(たとえばプロセッサ810)による使用に適したフォーマットへと変換することができる。いくつかの実施形態においては、I/Oインターフェース830は、たとえばPCIバス標準やUSB標準の変形形態など、さまざまなタイプの周辺バスを通じて接続されているデバイスのためのサポートを含む。いくつかの実施形態においては、I/Oインターフェース830の機能は、たとえばノース・ブリッジとサウス・ブリッジなど、複数の別々のコンポーネントへと分割することができる。また、いくつかの実施形態においては、システム・メモリ820へのインターフェースなど、I/Oインターフェース830の機能のいくつかまたはすべては、プロセッサ810内に直接組み込むことができる。
ネットワーク・インターフェース840は、コンピュータ・システム800と、ネットワークに接続されている他のデバイスとの間でデータをやり取りすることを可能にするように構成されている。たとえばマネージャー110は、クラスタ700の外部のコンピュータ・システム800上で実行するように構成させることができ、クラスタ700内でノード710として構成されている特定のコンピュータ・システム800は、ネットワーク・インターフェース840を介して外部のシステム上のマネージャー110と通信することができる。さまざまな実施形態においては、ネットワーク・インターフェース840は、任意の適切なタイプのイーサネット・ネットワークなどの有線または無線の一般的なデータ・ネットワークを介して、たとえばアナログ音声ネットワークやデジタル・ファイバー通信ネットワークなどの電気通信/電話ネットワークを介して、ファイバー・チャネルSANなどのストレージ・エリア・ネットワークを介して、あるいは他の任意の適切なタイプのネットワークおよび/またはプロトコルを介して、通信をサポートすることができる。
一実施形態においては、SANインターフェース850は、スイッチ720を介してコンピュータ・システム800とストレージ・アレイ730との間でデータをやり取りすることを可能にするように構成される。いくつかの実施形態においては、上述のように、SANインターフェース850は、ファイバー・チャネル・インターフェースや別の適切なインターフェースを含む。しかし、いくつかの実施形態においては、標準的なネットワーク・インターフェースを介してSANの接続を実装することができるということもある。このような実施形態においては、コンピュータ・システム800は、ストレージ・デバイスや他のコンピュータ・システムの双方と通信するための単一のネットワーク・インターフェース(たとえば、ネットワーク・インターフェース840)を提供することもでき、あるいはコンピュータ・システム800は、ストレージ・デバイスおよび一般的なネットワーク通信を、いくつかの同様に構成されたネットワーク・インターフェースにわたって均一に分散させることもできる。
いくつかの実施形態においては、システム・メモリ820は、上述のようなプログラム命令とデータを保存するように構成されているコンピュータがアクセス可能なメディアの一実施形態とすることができる。しかし他の実施形態においては、プログラム命令および/またはデータは、受信したり、送信したり、あるいは異なるタイプのコンピュータがアクセス可能なメディア上に保存したりすることができる。一般的に言えば、コンピュータがアクセス可能なメディアは、I/Oインターフェース830を介してコンピュータ・システム800に結合されている磁気メディアまたは光メディア、たとえばディスク、CD−ROM、あるいはDVD−ROMなどのストレージ・メディアやメモリ・メディア、またはSANインターフェース850を介してコンピュータ・システム800に結合されているストレージ・アレイ730を含む。コンピュータがアクセス可能なメディアは、RAM(たとえばSDRAM、DDR SDRAM、RDRAM、SRAMなど)やROMなどの任意の揮発性メディアや不揮発性メディアを含むこともでき、これらは、コンピュータ・システム800のいくつかの実施形態においては、システム・メモリ820や別のタイプのメモリとして含む。さらに、コンピュータがアクセス可能なメディアは、ネットワーク・インターフェース840やSANインターフェース850を介して実装できるようなネットワークおよび/または無線リンクなどの通信メディアを介して伝達される電気信号、電磁信号、あるいはデジタル信号などの伝送メディアや伝送信号を含む。
上述の実施形態について詳細に説明したが、当業者が上述の開示を十分に理解すれば、多くの変形形態および修正形態が明らかになるであろう。添付の特許請求の範囲は、このような変形形態および修正形態をすべて包含するものと解釈されることを意図している。
データ・ウェアハウジング・システムの一実施形態を示すブロック図である。 複数のデータ・ウェアハウスにわたるデータ・セットの複製の一実施形態を示すブロック図である。 大まかな同期化を使用して、抽出されたデータをデータ・ウェアハウス内に保存する方法の一実施形態を示す流れ図である。 大まかな同期化を使用して、データ・ウェアハウスによって保存されているデータに関して問合せを行う方法の一実施形態を示す流れ図である。 大まかな同期化のもとでのデータ・セットの更新と問合せとの間における関係の一実施形態を示すタイミング図である。 大まかな同期化を使用して複製されたデータ・セットの例示的な一実施形態を示すブロック図である。 大まかな同期化を使用して複製されたデータ・セットの例示的な一実施形態を示すブロック図である。 大まかな同期化を使用して複製されたデータ・セットの例示的な一実施形態を示すブロック図である。 クライアントに対してデータ・ウェアハウスを仮想化する方法の一実施形態を示す流れ図である。 データ・ウェアハウス・コンピューティング・クラスタの一実施形態を示すブロック図である。 コンピュータ・システムの例示的な一実施形態を示すブロック図である。

Claims (29)

  1. 複数のデータ・ウェアハウスと、
    前記複数のデータ・ウェアハウスのうちの1つまたは複数の中に保存するために、1つまたは複数のデータ・ソースからデータ・セットを抽出するように構成されているデータ・ウェアハウス・マネージャーと、
    を具備するシステムであって、
    前記複数のデータ・ウェアハウスのうちの2つまたはそれ以上のデータ・ウェアハウスから構成されるサブセットのそれぞれは、前記データ・ウェアハウス・マネージャーによって抽出されたデータ・セットのそれぞれのレプリカを保存するように構成され
    前記複数のデータ・ウェアハウスのうち1つのデータ・ウェアハウスによって保存され、かつ、ある特定の時点において、問合せを行うためにクライアントにとって利用可能な特定のデータ・セットのレプリカと、前記複数のデータ・ウェアハウスの別の1つによって保存され、かつ、ある特定の時点において、問合せを行うためにクライアントにとって利用可能な前記特定のデータセットの別のレプリカとは、ある特定の時点において異なっており、
    前記複数のデータ・ウェアハウスのうちの1つまたはそれ以上のデータ・ウェアハウスによって保存されている前記特定のデータ・セットを対象とする問合せをクライアントから受信したことに応答して、前記データ・ウェアハウス・マネージャーは、さらに、前記データ・セットの位置と前記データ・セットに関連した現在の状態情報を用いて、その問合せを評価できる前記複数のデータ・ウェアハウスのうちの特定の1つを識別し、その問合せを評価のために前記特定のデータ・ウェアハウスへ伝達するように構成され、
    前記データ・ウェアハウス・マネージャーは、前記特定のデータセットの複数のレプリカが異なる場合であっても、その問合せを評価できると判断する
    ことを特徴とするシステム。
  2. 前記データ・セットが前記サブセットの別のデータ・ウェアハウスへ保存されている最中に、前記問合せが前記第1のサブセットの第1のデータ・ウェアハウスによって評価されることを特徴とする請求項1に記載のシステム。
  3. 前記データ・ウェアハウス・マネージャーは、前記データ・セットが前記特定のデータ・ウェアハウスへ保存された後に、前記問合せを前記サブセットの任意の特定のデータ・ウェアハウスによって評価可能にするようにさらに構成されていることを特徴とする請求項1または2に記載のシステム。
  4. 前記データ・セットをデータ・ウェアハウスの前記サブセットのそれぞれに保存することは、少なくとも部分的に並行して行われることを特徴とする請求項1乃至3のいずれかに記載のシステム。
  5. 前記複数のデータ・ウェアハウスのうちの特定の1つは、前記データ・ウェアハウス・マネージャーによって抽出された別のデータ・セットを保存するように構成されており、前記複数のデータ・ウェアハウスのうちの少なくとも別の1つは、前記別のデータ・セットのいかなるレプリカも保存しないことを特徴とする請求項1乃至4のいずれかに記載のシステム。
  6. 前記複数のデータ・ウェアハウスのそれぞれは、それぞれのリレーショナル・データベースを有することを特徴とする請求項1乃至5のいずれかに記載のシステム。
  7. 前記データ・ウェアハウス・マネージャーは、前記複数のデータ・ウェアハウス内に保存されるそれぞれのデータ・セットに対応する識別情報をオペレーション・データベース内に保存するようにさらに構成されていることを特徴とする請求項1乃至6のいずれかに記載のシステム。
  8. 前記データ・セットに関して、前記識別情報は、データ・ウェアハウスの前記サブセットのうちのそれぞれの各IDと、データ・ウェアハウスの前記サブセットのうちの対応する1つへ前記第1のデータ・セットが保存されたかどうかを示すそれぞれの状態情報とを有することを特徴とする請求項7に記載のシステム。
  9. 前記データ・ウェアハウス・マネージャーは、データ・ウェアハウスの前記サブセットのうちの特定の1つが、前記それぞれの状態情報に従って前記問合せを評価するための十分なデータを有していることを判断するように、そしてそれに応じて、評価のために前記問合せを前記サブセットのうちの前記特定の1つへ伝達するようにさらに構成されていることを特徴とする請求項8に記載のシステム。
  10. 前記複数のデータ・ウェアハウスのうちの少なくとも2つは、別々の物理的な位置に配置されていることを特徴とする請求項1乃至9のいずれかに記載のシステム。
  11. 前記複数のデータ・ウェアハウスのそれぞれは、それぞれのコンピューティング・クラスタを有し、特定のそれぞれのコンピューティング・クラスタは、SANを介して複数のストレージ・デバイスに結合されている少なくとも1つのコンピューティング・ノードを有することを特徴とする請求項1乃至10のいずれかに記載のシステム。
  12. 前記少なくとも1つのコンピューティング・ノードは、あるバージョンのLinuxに準拠しているオペレーティング・システムを実行するように構成されていることを特徴とする請求項11に記載のシステム。
  13. 前記データ・ウェアハウス・マネージャーは、要求側のアプリケーションからウェブ・サービス・インターフェースを介して前記問合せを受信するように構成されていることを特徴とする請求項1乃至12のいずれかに記載のシステム。
  14. 前記データ・ウェアハウス・マネージャーは、クライアントに、単一のデータ・ウェアハウスとして前記複数のデータ・ウェアハウスを提示し、前記複数のデータ・ウェアハウス内の前記データセットの位置はクライアントにとってトランスペアレントであるとを特徴とする請求項1乃至13のいずれかに記載のシステム。
  15. コンピュータ・システムのデータ・ウェアハウス・マネージャーによって実行可能なデータ・ウェアハウジングのための方法であって、当該方法は、
    複数のデータ・ウェアハウスのうちの1つまたは複数の中に保存するために1つまたは複数のデータ・ソースからデータ・セットを抽出するステップと、
    前記複数のデータ・ウェアハウスのうちの複数を含む第1のサブセットのそれぞれのデータ・ウェアハウス内のデータ・セットのそれぞれのレプリカを保存するステップと
    前記複数のデータ・ウェアハウスのうちの1つまたはそれ以上のデータ・ウェアハウスによって保存されている前記特定のデータ・セットを対象とする問合せをクライアントから受信したことに応答して、前記データ・セットの位置と前記データ・セットに関連した現在の状態情報を用いて、その問合せを評価できる前記複数のデータ・ウェアハウスのうちの特定の1つを識別するステップと、その問合せを評価のために前記特定のデータ・ウェアハウスへ伝達するステップと、
    を含み、
    前記複数のデータ・ウェアハウスのうち1つのデータ・ウェアハウスによって保存され、かつ、ある特定の時点において、問合せを行うためにクライアントにとって利用可能な特定のデータ・セットのレプリカと、前記複数のデータ・ウェアハウスの別の1つによって保存され、かつある特定の時点において、問合せを行うためにクライアントにとって利用可能な前記特定のデータセットの別のレプリカとは、ある特定の時点において異なっており、
    前記特定のデータセットの複数のレプリカが異なる場合であっても、その問合せは評価できると判断されることを特徴とする方法。
  16. 前記サブセットの別のデータ・ウェアハウスが前記データ・セットを保存している最中に、前記第1のサブセットのデータ・ウェアハウスが前記問合せを評価するステップをさらに有することを特徴とする請求項15に記載の方法。
  17. 前記データ・セットが前記特定のデータ・ウェアハウスへ保存された後に、前記問合せを、前記サブセットの任意の特定のデータ・ウェアハウスによって評価可能にするステップをさらに有することを特徴とする請求項15または16に記載の方法。
  18. 前記データ・セットをデータ・ウェアハウスの前記サブセットのそれぞれへ保存するステップは、少なくとも部分的に並行して行われることを特徴とする請求項15乃至17のいずれかに記載の方法。
  19. 前記複数のデータ・ウェアハウスのうちの特定の1つは、前記データ・ウェアハウス・マネージャーによって抽出された別のデータ・セットを保存するように構成されており、前記複数のデータ・ウェアハウスのうちの少なくとも別の1つは、前記別のデータ・セットのいかなるレプリカも保存しないことを特徴とする請求項15乃至18のいずれかに記載の方法。
  20. 前記複数のデータ・ウェアハウスのそれぞれは、それぞれのリレーショナル・データベースを有することを特徴とする請求項15乃至19のいずれかに記載の方法。
  21. 前記複数のデータ・ウェアハウス内に保存されるそれぞれのデータ・セットに対応する識別情報をオペレーション・データベース内に保存するステップをさらに有することを特徴とする請求項15乃至20のいずれかに記載の方法。
  22. 前記データ・セットに関して、前記識別情報は、データ・ウェアハウスの前記サブセットのうちのそれぞれの各IDと、データ・ウェアハウスの前記サブセットのうちの対応する1つへ前記データ・セットが保存されたかどうかを示すそれぞれの状態情報とを含むことを特徴とする請求項21に記載の方法。
  23. データ・ウェアハウスの前記サブセットのうちの特定の1つが前記それぞれの状態情報に従って前記問合せを評価するための十分なデータを有していることを判断するステップと、
    前記判断するステップに応じて、評価のために前記問合せを前記サブセットのうちの前記特定の1つへ伝達するステップとをさらに有することを特徴とする請求項22に記載の方法。
  24. 前記複数のデータ・ウェアハウスのうちの少なくとも2つは、別々の物理的な位置に配置されていることを特徴とする請求項15乃至23のいずれかに記載の方法。
  25. 前記複数のデータ・ウェアハウスのそれぞれは、それぞれのコンピューティング・クラスタを含み、特定のそれぞれのコンピューティング・クラスタは、SANを介して複数のストレージ・デバイスに結合されている少なくとも1つのコンピューティング・ノードを含むことを特徴とする請求項15乃至24のいずれかに記載の方法。
  26. 前記少なくとも1つのコンピューティング・ノードは、あるバージョンのLinuxに準拠しているオペレーティング・システムを実行するように構成されていることを特徴とする請求項25に記載の方法。
  27. 要求側のアプリケーションからウェブ・サービス・インターフェースを介して前記問合せを受信するステップをさらに有することを特徴とする請求項15乃至26のいずれかに記載の方法。
  28. クライアントに、単一のデータ・ウェアハウスとして前記複数のデータ・ウェアハウスを提示するステップであって、前記複数のデータ・ウェアハウス内の前記データセットの位置はクライアントにとってトランスペアレントであるステップと
    からさらに構成されことを特徴とする請求項15乃至27のいずれかに記載の方法。
  29. コンピュータ・システムによって実行可能であるプログラム命令を含む、コンピュータ読み取り可能な記録媒体であって、前記プログラム命令は、
    複数のデータ・ウェアハウスのうちの1つまたは複数の中に保存するために1つまたは複数のデータ・ソースからデータ・セットを抽出するステップと
    前記複数のデータ・ウェアハウスのうちの2つまたはそれ以上のデータ・ウェアハウスから構成される第1のサブセットのそれぞれの中に第1のデータ・セットのそれぞれのレプリカを保存するステップと、
    前記複数のデータ・ウェアハウスのうちの1つまたはそれ以上のデータ・ウェアハウスによって保存されている前記特定のデータ・セットを対象とする問合せをクライアントから受信したことに応答して、前記データ・セットの位置と前記データ・セットに関連した現在の状態情報を用いて、その問合せを評価できる前記複数のデータ・ウェアハウスのうちの特定の1つを識別するステップと、その問合せを評価のために前記特定のデータ・ウェアハウスへ伝達するステップと
    を含み
    前記複数のデータ・ウェアハウスのうち1つのデータ・ウェアハウスによって保存され、かつ、ある特定の時点において、問合せを行うためにクライアントにとって利用可能な特定のデータ・セットのレプリカと、前記複数のデータ・ウェアハウスの別の1つによって保存され、かつ、ある特定の時点において、問合せを行うためにクライアントにとって利用可能な前記特定のデータセットの別のレプリカは、ある特定の時点において異なっており、
    前記特定のデータセットの複数のレプリカが異なる場合であっても、その問合せは評価できると判断されることを特徴とするコンピュータ読み取り可能な記録媒体。
JP2007546883A 2004-12-17 2005-12-14 データ・ウェアハウジングのための装置および方法 Active JP5047806B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/016,563 US7415487B2 (en) 2004-12-17 2004-12-17 Apparatus and method for data warehousing
US11/016,563 2004-12-17
PCT/US2005/045349 WO2006065953A2 (en) 2004-12-17 2005-12-14 Apparatus and method for data warehousing

Publications (3)

Publication Number Publication Date
JP2008524715A JP2008524715A (ja) 2008-07-10
JP2008524715A5 JP2008524715A5 (ja) 2009-02-12
JP5047806B2 true JP5047806B2 (ja) 2012-10-10

Family

ID=36046631

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007546883A Active JP5047806B2 (ja) 2004-12-17 2005-12-14 データ・ウェアハウジングのための装置および方法

Country Status (7)

Country Link
US (1) US7415487B2 (ja)
EP (2) EP3352103A1 (ja)
JP (1) JP5047806B2 (ja)
KR (2) KR101323500B1 (ja)
CN (2) CN102142039B (ja)
CA (2) CA2879549C (ja)
WO (1) WO2006065953A2 (ja)

Families Citing this family (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060167811A1 (en) * 2005-01-24 2006-07-27 Microsoft Corporation Product locker for multi-merchant purchasing environment for downloadable products
US20090171847A2 (en) * 2005-01-24 2009-07-02 Microsoft Corporation Multi-merchant purchasing environment for downloadable products
WO2008000527A1 (en) * 2006-06-26 2008-01-03 International Business Machines Corporation Method and system for ensuring consistency over time of data gathered by distinct software applications
US8392358B2 (en) * 2006-06-29 2013-03-05 Nice Systems Technologies Inc. Temporal extent considerations in reporting on facts organized as a dimensionally-modeled fact collection
US20080028028A1 (en) * 2006-07-27 2008-01-31 Gr8 Practice Llc E-mail archive system, method and medium
US8606799B2 (en) 2006-12-28 2013-12-10 Sap Ag Software and method for utilizing a generic database query
US7730056B2 (en) * 2006-12-28 2010-06-01 Sap Ag Software and method for utilizing a common database layout
US8417731B2 (en) 2006-12-28 2013-04-09 Sap Ag Article utilizing a generic update module with recursive calls identify, reformat the update parameters into the identified database table structure
US20080177892A1 (en) * 2007-01-19 2008-07-24 International Business Machines Corporation Method for service oriented data extraction transformation and load
CA2576703C (en) * 2007-02-02 2014-08-12 Cognos Incorporated System and method for optimizing business intelligence data queries within a client-server architecture
ITRM20070161A1 (it) * 2007-03-27 2008-09-28 Uni Del Salento Metodo e formalismo per inviare istruzioni a database distribuiti realizzato mediante programma per computer
US7739547B2 (en) * 2007-06-07 2010-06-15 International Business Machines Corporation Failure recovery and error correction techniques for data loading in information warehouses
US20110004622A1 (en) * 2007-10-17 2011-01-06 Blazent, Inc. Method and apparatus for gathering and organizing information pertaining to an entity
CN101471956B (zh) * 2007-12-28 2011-08-31 英业达股份有限公司 目标端的储存设备状态的识别及动态更新方法
US8521682B2 (en) * 2008-01-17 2013-08-27 International Business Machines Corporation Transfer of data from transactional data sources to partitioned databases in restartable environments
US7933873B2 (en) * 2008-01-17 2011-04-26 International Business Machines Corporation Handling transfer of bad data to database partitions in restartable environments
US8156084B2 (en) * 2008-01-17 2012-04-10 International Business Machines Corporation Transfer of data from positional data sources to partitioned databases in restartable environments
US8688622B2 (en) * 2008-06-02 2014-04-01 The Boeing Company Methods and systems for loading data into a temporal data warehouse
US7917547B2 (en) * 2008-06-10 2011-03-29 Microsoft Corporation Virtualizing objects within queries
US8010648B2 (en) * 2008-10-24 2011-08-30 Microsoft Corporation Replica placement in a distributed storage system
US8380663B2 (en) * 2008-12-17 2013-02-19 Sybase, Inc. Data integrity in a database environment through background synchronization
AU2013202073B2 (en) * 2009-02-12 2014-04-17 Accenture Global Services Limited A data system architecture to analyze distributed data sets
US20100205153A1 (en) * 2009-02-12 2010-08-12 Accenture Global Services Gmbh Data System Architecture to Analyze Distributed Data Sets
US8135666B2 (en) * 2010-03-11 2012-03-13 International Business Machines Corporation Systems and methods for policy based execution of time critical data warehouse triggers
US10162851B2 (en) * 2010-04-19 2018-12-25 Salesforce.Com, Inc. Methods and systems for performing cross store joins in a multi-tenant store
CN102541959B (zh) * 2010-12-31 2014-03-12 ***通信集团安徽有限公司 Etl调度方法、装置及***
EP2490135A1 (en) * 2011-02-21 2012-08-22 Amadeus S.A.S. Method and system for providing statistical data from a data warehouse
AU2012203333A1 (en) 2011-06-15 2013-01-10 Agile Software Pty Limited Method and apparatus for testing data warehouses
CN102279886B (zh) * 2011-08-16 2012-10-17 中国民生银行股份有限公司 元数据处理方法及设备
CN102799651B (zh) * 2012-06-28 2015-01-21 用友软件股份有限公司 查询处理装置和查询处理方法
JP6511394B2 (ja) * 2012-09-27 2019-05-15 アマデウス エス.アー.エス.Amadeus S.A.S. データの保存および取得の方法およびシステム
CN103902583B (zh) * 2012-12-27 2019-03-12 方正国际软件(北京)有限公司 一种etl流程执行***
CN103345468B (zh) * 2013-05-13 2017-03-29 中国科学技术大学 一种基于太阳能建筑的建筑材料热物性数据库***
US10158579B2 (en) * 2013-06-21 2018-12-18 Amazon Technologies, Inc. Resource silos at network-accessible services
US10198292B2 (en) * 2013-11-27 2019-02-05 Actian Sub Iii, Inc. Scheduling database queries based on elapsed time of queries
US20150169609A1 (en) * 2013-12-06 2015-06-18 Zaius, Inc. System and method for load balancing in a data storage system
US10366102B2 (en) 2014-02-19 2019-07-30 Snowflake Inc. Resource management systems and methods
US10545917B2 (en) 2014-02-19 2020-01-28 Snowflake Inc. Multi-range and runtime pruning
US9553762B1 (en) * 2014-06-26 2017-01-24 Altera Corporation Network-on-chip with fixed and configurable functions
US10304025B2 (en) 2015-05-26 2019-05-28 Locanis Ag Controlling industrial trucks in a warehouse
CN106921614B (zh) * 2015-12-24 2020-05-22 北京国双科技有限公司 业务数据处理方法和装置
CN106933913B (zh) * 2015-12-31 2020-05-08 北京国双科技有限公司 数据处理方法和装置
DE202017007217U1 (de) * 2016-04-28 2020-02-06 Snowflake Inc. Multicluster-Lager
US10785295B2 (en) * 2016-06-30 2020-09-22 Intel Corporation Fabric encapsulated resilient storage
CN107563925A (zh) * 2017-08-31 2018-01-09 上海德衡数据科技有限公司 一种智能化区域急救医疗集成数据中心***架构
CN107992526B (zh) * 2017-11-10 2021-03-23 广州虎牙信息科技有限公司 主播推荐方法、存储设备及计算机设备
EP3514742A1 (en) * 2018-01-19 2019-07-24 Siemens Aktiengesellschaft Collecting data from a data-source into a mom data warehouse
CN109299180B (zh) * 2018-10-31 2021-08-27 武汉光谷联众大数据技术有限责任公司 一种数据仓库etl操作***
US11966870B2 (en) 2019-04-18 2024-04-23 Oracle International Corporation System and method for determination of recommendations and alerts in an analytics environment
US11614976B2 (en) 2019-04-18 2023-03-28 Oracle International Corporation System and method for determining an amount of virtual machines for use with extract, transform, load (ETL) processes
US11169728B2 (en) 2019-09-10 2021-11-09 Western Digital Technologies, Inc. Replication configuration for multiple heterogeneous data stores
US11321285B2 (en) 2020-10-01 2022-05-03 Bank Of America Corporation Automatic database script generation for copying data between relational databases
US20220164349A1 (en) * 2020-11-20 2022-05-26 AtScale, Inc. Distributed queries through dynamic views
US11934670B2 (en) 2021-03-31 2024-03-19 Netapp, Inc. Performing various operations at the granularity of a consistency group within a cross-site storage solution
US11928352B2 (en) 2021-05-05 2024-03-12 Netapp, Inc. Maintaining the benefit of parallel splitting of ops between primary and secondary storage clusters in synchronous replication while adding support for op logging and early engagement of op logging
US11416815B1 (en) * 2021-06-11 2022-08-16 Coupang Corp. Systems and computerized methods for balancing inventory
US11537314B1 (en) * 2021-10-07 2022-12-27 Netapp, Inc. Resynchronization of individual volumes of a consistency group (CG) within a cross-site storage solution while maintaining synchronization of other volumes of the CG
US11892982B2 (en) 2021-10-20 2024-02-06 Netapp, Inc. Facilitating immediate performance of volume resynchronization with the use of passive cache entries
CN114595294B (zh) * 2022-03-11 2022-09-20 北京梦诚科技有限公司 一种数据仓库建模和抽取方法及***
US11907562B2 (en) 2022-07-11 2024-02-20 Netapp, Inc. Methods and storage nodes to decrease delay in resuming input output (I/O) operations after a non-disruptive event for a storage object of a distributed storage system by utilizing asynchronous inflight replay of the I/O operations

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4769772A (en) * 1985-02-28 1988-09-06 Honeywell Bull, Inc. Automated query optimization method using both global and parallel local optimizations for materialization access planning for distributed databases
US6263337B1 (en) * 1998-03-17 2001-07-17 Microsoft Corporation Scalable system for expectation maximization clustering of large databases
US6374251B1 (en) * 1998-03-17 2002-04-16 Microsoft Corporation Scalable system for clustering of large databases
US6167405A (en) * 1998-04-27 2000-12-26 Bull Hn Information Systems Inc. Method and apparatus for automatically populating a data warehouse system
US6178418B1 (en) * 1998-07-28 2001-01-23 Noetix Corporation Distributed data warehouse query and resource management system
US6243715B1 (en) * 1998-11-09 2001-06-05 Lucent Technologies Inc. Replicated database synchronization method whereby primary database is selected queries to secondary databases are referred to primary database, primary database is updated, then secondary databases are updated
US6163774A (en) * 1999-05-24 2000-12-19 Platinum Technology Ip, Inc. Method and apparatus for simplified and flexible selection of aggregate and cross product levels for a data warehouse
US6550057B1 (en) * 1999-08-31 2003-04-15 Accenture Llp Piecemeal retrieval in an information services patterns environment
US6502095B2 (en) * 1999-09-09 2002-12-31 Lucent Technologies Inc. Timestamp-based system and method for serializing lazy updates in a distributed database
US6438538B1 (en) * 1999-10-07 2002-08-20 International Business Machines Corporation Data replication in data warehousing scenarios
JP2001297026A (ja) * 2000-04-11 2001-10-26 Hitachi Ltd 複数のデータベースマネージメントシステムを有する計算機システム
US6922685B2 (en) * 2000-05-22 2005-07-26 Mci, Inc. Method and system for managing partitioned data resources
US7010553B2 (en) 2002-03-19 2006-03-07 Network Appliance, Inc. System and method for redirecting access to a remote mirrored snapshot
US7149759B2 (en) * 2002-03-25 2006-12-12 International Business Machines Corporation Method and system for detecting conflicts in replicated data in a database network
US7627597B2 (en) * 2003-03-13 2009-12-01 International Business Machines Corporation Usage-based optimization of network traffic and data warehouse size
US6973654B1 (en) * 2003-05-27 2005-12-06 Microsoft Corporation Systems and methods for the repartitioning of data
EP1501021A1 (en) * 2003-07-22 2005-01-26 Sap Ag A system and method for extracting data sets from an online relational database into a data warehouse
US20050240354A1 (en) * 2003-08-27 2005-10-27 Ascential Software Corporation Service oriented architecture for an extract function in a data integration platform

Also Published As

Publication number Publication date
CA2879549A1 (en) 2006-06-22
CA2879549C (en) 2016-07-26
CA2594568A1 (en) 2006-06-22
CN101305365B (zh) 2011-07-06
JP2008524715A (ja) 2008-07-10
CN102142039B (zh) 2012-12-26
CN101305365A (zh) 2008-11-12
CA2594568C (en) 2015-04-14
CN102142039A (zh) 2011-08-03
WO2006065953A2 (en) 2006-06-22
KR101266683B1 (ko) 2013-06-26
US20060136354A1 (en) 2006-06-22
KR101323500B1 (ko) 2013-10-31
KR20080002743A (ko) 2008-01-04
WO2006065953A3 (en) 2006-09-14
EP3352103A1 (en) 2018-07-25
US7415487B2 (en) 2008-08-19
EP1828935B1 (en) 2018-05-09
KR20120120444A (ko) 2012-11-01
EP1828935A2 (en) 2007-09-05

Similar Documents

Publication Publication Date Title
JP5047806B2 (ja) データ・ウェアハウジングのための装置および方法
US10990576B2 (en) Providing snapshots of journal tables
CN107844388B (zh) 从备份***流式恢复数据库
CN111630497A (zh) 在数据库***中的增量特征开发和工作负荷捕获
Hobbs et al. Oracle 10g data warehousing
WO2017156855A1 (en) Database systems with re-ordered replicas and methods of accessing and backing up databases
US20230409431A1 (en) Data replication with cross replication group references
Huawei Technologies Co., Ltd. Introduction to Databases
Ballard et al. Data Warehousing with the Informix Dynamic Server
Parziale et al. Enhancing SAP by Using DB2 9 for z/OS
Parida ORACLE 10g Performance Tuning
Büchi et al. Relational Data Access on Big Data
Chen et al. DB2 UDB V8. 2 on the Windows Environment vironment
Rainardi Physical Database Design
Bird et al. Oracle Database 2 Day+ Data Warehousing Guide, 11g Release 1 (11.1) B28314-01

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7426

Effective date: 20081008

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081215

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081215

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110712

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20111012

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20111019

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111114

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120718

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150727

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5047806

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250