(57)【特許請求の範囲】
【請求項１】
マルチテナンシー・データ・ウェアハウス内の第１の仮想データ・ウェアハウスに割り当てられたテナントから、データ・クエリを受信する工程であって、前記第１の仮想データ・ウェアハウスは、第１の物理的なデータ・センタの一部であるデータベースである、工程と、
前記データ・クエリに基づいて、前記テナントが前記マルチテナンシー・データ・ウェアハウス内でアクセスすることを認可されるデータを指し示す、一組の情報を生成する工程と、
前記一組の情報によって指し示されたように前記テナントがアクセスできる前記データのサブセットを利用するために、前記テナントから宣言を受信する工程と、
前記データの前記サブセットが前記第１の物理的なデータ・センタとは異なる第２の物理的なデータ・センタの中にあるかどうかを判定する工程と、
前記データの前記サブセットが前記第２の物理的なデータ・センタの中にある場合、前記第２の物理的なデータ・センタからの前記データの前記サブセットを前記第１の物理的なデータ・センタにキャッシュし、前記データを取り出すための一組のパラメータを識別するリンクを生成する工程と、
前記リンクを使用して、前記第１の仮想データ・ウェアハウスの外部のデータをインポートする工程と、
を備える方法。
【請求項２】
前記第１の仮想データ・ウェアハウスが、前記マルチテナンシー・データ・ウェアハウスの一部である複数のデータベースのうちの１つであり、前記方法が、１つまたは複数のテナントを、第１のデータ・ウェアハウスにおける前記複数のデータベースのうちの各々に割り当てる工程をさらに備える請求項１に記載の方法。
【請求項３】
前記データを取り出すための前記パラメータが、取り出されるデータの時間範囲を含む、請求項１に記載の方法。
【請求項４】
前記第１の仮想データ・ウェアハウスの外部の前記データの利用を監視する工程と、
前記データの前記利用が、より小さい時間範囲からのデータのみを含むと判定する工程と、
前記リンクが前記より小さい時間範囲からの前記データのみを取り出すように、前記一組のパラメータを更新する工程と
をさらに備える請求項３に記載の方法。
【請求項５】
前記リンクが、前記第１の仮想データ・ウェアハウスの外部の前記データへの読出専用アクセスを提供する、請求項１に記載の方法。
【請求項６】
第１のテナントに割り当てられた第１のデータベースおよび第２のテナントに割り当てられた第２のデータベースを含む物理的なデータ・ウェアハウスであって、前記第１のテナントおよび前記第２のテナントが、前記第１のデータベースおよび前記第２のデータベース内に記憶されたデータへの完全なアクセスをそれぞれ許可されている、物理的なデータ・ウェアハウスと、
前記第１のテナントからの検索クエリを受信するため、および前記第１のデータベースと前記第２のデータベースとに関連付けられているインデックスにアクセスすることによって前記物理的なデータ・ウェアハウスを検索するための、データ発見モジュールと、
前記物理的なデータ・ウェアハウス内の前記第２のデータベースにおけるデータのサブセットを前記第１のデータベースにコピーすることなく、前記第１のテナントがデータの前記サブセットに読出アクセスすることを許可するべく、データの前記サブセットへのリンクを生成するためのリンク・モジュールと、
前記第１のテナントが前記物理的なデータ・ウェアハウスとは異なる別の物理的なデータ・ウェアハウスにデータを要求したと判定するための複製管理モジュールと、を備え、
前記複製管理モジュールが、要求された前記データを、前記別の物理的なデータ・ウェアハウスから前記物理的なデータ・ウェアハウスにコピーするように構成されている、システム。
【請求項７】
前記データ発見モジュールに通信可能に結合されており、前記第２のデータベース上のいずれのデータについて前記第１のテナントがアクセスすることを認可されているかを判定するように構成されているアクセス制御モジュールをさらに備える、請求項６に記載のシステム。
【請求項８】
前記第１のテナントを前記第１のデータベースに割り当て、前記第２のテナントを前記第２のデータベースに割り当てるための、テナント割当モジュールをさらに備える請求項６に記載のシステム。
【請求項９】
保持ポリシーを有する第３のデータベースを作成するため、および前記保持ポリシーに従う前記物理的なデータ・ウェアハウス内のデータへの第２のリンクを作成するための、保持管理モジュールをさらに備える請求項６に記載のシステム。
【請求項１０】
前記物理的なデータ・ウェアハウスが、第１の物理的なデータ・ウェアハウスであり、前記システムが、第２の物理的なデータ・ウェアハウスと、前記第２の物理的なデータ・ウェアハウスへの前記第２のデータベースの転送を管理するための転送制御モジュールとをさらに備える、請求項６に記載のシステム。
【請求項１１】
前記リンク・モジュールによって生成されたリンクを更新するための伝播モジュールをさらに備える請求項６に記載のシステム。
【請求項１２】
テナントに各々割り当てられた複数の仮想データ・ウェアハウスを作成することによって、マルチテナンシー・データ・ウェアハウスを生成する工程であって、前記複数の仮想データ・ウェアハウスのうちの第１の仮想データ・ウェアハウスが、前記複数の仮想データ・ウェアハウスのうちの第２の仮想データ・ウェアハウスから前記第１の仮想データ・ウェアハウスにデータ・テーブルをコピーすることなく、前記テナントが前記データ・テーブルにアクセスすることを許可するための、前記第２の仮想データ・ウェアハウス内に記憶された前記データ・テーブルへのリンクを含む、生成する工程と、
前記リンクが更新されることを必要とする変更について、前記マルチテナンシー・データ・ウェアハウス内の変更を監視する工程と、
前記マルチテナンシー・データ・ウェアハウス内で検出された前記変更に従って、前記リンクを更新する工程と、
前記テナントが前記マルチテナンシー・データ・ウェアハウスとは異なる別のマルチテナンシー・データ・ウェアハウスにデータを要求したと判定する工程と、
要求された前記データを、前記別のマルチテナンシー・データ・ウェアハウスから前記マルチテナンシー・データ・ウェアハウスにコピーする工程と、
を備えるコンピュータ実装される方法。
【請求項１３】
前記マルチテナンシー・データ・ウェアハウス内の前記変更が、第２のマルチテナンシー・データ・ウェアハウスに対する前記複数の仮想データ・ウェアハウスのうちの１つの転送を含む、請求項１２に記載のコンピュータ実装される方法。
【請求項１４】
前記データ・テーブルへの前記リンクが、時間フレーム制限を含む、請求項１２に記載のコンピュータ実装される方法。
【請求項１５】
実際に使用されている前記データ・テーブルの量を決定するために、前記データ・テーブルへのアクセスを監視する工程と、
実際に使用されている前記データ・テーブルの量に対応する第２の時間フレーム制限を含むように、前記データ・テーブルへの前記リンクを更新する工程と
をさらに備える請求項１４に記載のコンピュータ実装される方法。
【請求項１６】
前記マルチテナンシー・データ・ウェアハウス内の前記変更が、前記データ・テーブルへのアクセス認可における変更を含み、前記リンクを更新する工程が、前記リンクを削除する工程を含む、請求項１２に記載のコンピュータ実装される方法。
【請求項１７】
前記複数の仮想データ・ウェアハウスが、前記マルチテナンシー・データ・ウェアハウスの前記テナントからのデータ・クエリを可能とするようにインデックスされている１つまたは複数のデータベースを含む、請求項１２に記載のコンピュータ実装される方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明のさまざまな実施形態は、一般に、マルチテナンシー・データ・ウェアハウス・インフラストラクチャに関する。より詳細には、本発明のさまざまな実施形態は、データ複製の量を削減するために、マルチテナンシー・データ・ウェアハウス内でテーブル・リンクを使用するためのシステムおよび方法に関する。
【背景技術】
【０００２】
データ・ウェアハウスは、広い意味において、現在のデータおよび履歴のデータの大規模ストアを保有するデータベースである。いくつかのケースにおいて、データは、複数のデータ・ソース（たとえば、マーケティング・データベース、セールス・データベース、ユーザ・データベース、および最新のデータを維持するために使用される他のトランザクション・データベース）から統合されることがある。通常、データは、編成されて、データ・ウェアハウス内に記憶される。たとえば、いくつかのケースにおいて、データは、一連のスナップショットとして記憶されてもよい。他のケースにおいて、データは、特定の時間間隔（たとえば、３カ月、６カ月、またはそれ以上）で、および／または特定のサブジェクト領域の中に、集約されてもよい。
【０００３】
複数のデータ・ソースからデータが統合されるとき、データ・ウェアハウスは、一貫したコード、記述、フィールド、およびフラッギングを提供することができる。たとえば、複数のデータ・ソースがある製品のための異なる識別メカニズムを有していると仮定すると、データ・ウェアハウスは、その製品のための一律の識別メカニズムを提供することができる。データ・ウェアハウスに記憶されたデータはまた、オンライン分析処理（ＯＬＡＰ：ｏｎｌｉｎｅ  ａｎａｌｙｔｉｃａｌ  ｐｒｏｃｅｓｓｉｎｇ）ツールおよびデータ・マイニング・ツールなどのツールを使用して分析され得る。これらの分析からの結果を、さまざまな分析論を生成する、およびレポートを作成するなどの、多様なビジネス目的のために使用することができる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
経時的に、データ・ウェアハウスは、空間を使い果たし始めることがある。１つのソリューションは、データ・ウェアハウスを、より小さいウェアハウスに分割することである。これらのより小さいウェアハウスは、地理的に分散している可能性がある。いくつかのケースにおいて、より小さいデータ・ウェアハウスの各々は、特定のユーザのグループ（たとえば、チーム）のために設計されてよく、または個別の主題に関して情報をホストすることができる。しかしながら、いくつかのユーザのグループまたは個別の主題が、同じデータにアクセスする必要があることがある。単純に同じデータをより小さいウェアハウスの各々にコピーすることは、非効率である。容量問題に対する別のソリューションは、データ・ウェアハウスからデータを削除することである。しかしながら、このデータが、将来のデータ・マイニングまたは分析アクティビティにおいて有益であることがある。結果として、これらのデータ・ウェアハウス内でデータを管理するための、より効率的な技法が必要とされている。
【課題を解決するための手段】
【０００５】
データ複製の量を削減するために、データ・ウェアハウス内でテーブル・リンクを提供するためのシステムおよび方法が説明される。さまざまな実施形態に従って、マルチテナンシー・データ・ウェアハウス内の第１の仮想的なデータ・ウェアハウス（たとえば、データベース）に割り当てられたテナントから、データ・クエリを受信することができる。
データ・クエリに基づいて、そのテナントがマルチテナンシー・データ・ウェアハウス内でアクセスすることを認可されるデータを指し示す、一組の情報を生成することができる。次いで、テナントは、テナントがアクセスすることができ、利用を所望するデータのサブセットを宣言することができる。データを取り出すための一組のパラメータ（たとえば、データ場所、時間範囲、その他）を識別するリンクを使用して、第１の仮想データ・ウェアハウスの外部に位置する、宣言に関連付けられた任意のデータをインポートすることができる。加えて、いくつかの実施形態において、リンクは、第１の仮想データ・ウェアハウスの外部のデータへの読出専用アクセスのみを提供することができる。
【０００６】
１つまたは複数の実施形態において、複数の物理的なデータ・センタが存在してよく、第１の仮想データ・ウェアハウスは、第１の物理的なデータ・センタの一部であってよい。テナントによって宣言されたデータのサブセットが、第２の物理的なデータ・センタの中に（たとえば、ある仮想データ・ウェアハウスの中に）あるかどうかについての判定が行われてよい。データが第２の物理的なデータ・センタに位置する場合、第２の物理的なデータ・センタからのデータを、第１の物理的なデータ・センタにキャッシュすることができる。いくつかの実施形態は、第１の仮想データ・ウェアハウスの外部のデータの利用またはアクセスを監視する。データの利用が、リンクがアクセスを提供する時間範囲よりも小さい時間範囲からのデータのみを含むかどうかについての判定が行われてよい。これが検出されると、リンクがより小さい時間範囲からのデータのみを取り出せるように、リンクにおける一組のパラメータが更新されてよい。
【０００７】
本発明の実施形態はまた、方法、方法の変形、および本明細書で説明される他の動作を、１つまたは複数のプロセッサに実施させるための命令のセットを保有するコンピュータ可読記憶媒体を含む。
【０００８】
数々の実施形態が開示されているが、本発明の例証的な実施形態を示し、説明する以下の詳細な説明から、本発明のなおも他の実施形態が当業者には明らかになることだろう。気付くように、本発明は、すべて本発明の範囲から逸脱することなく、さまざまな態様における修正形態が可能である。それに応じて、図面および詳細な説明は。本質的に例証としてみなされるべきであり、制限的にみなされるべきではない。
【０００９】
本発明による実施形態は、とりわけ、方法、システム、および記憶媒体を対象とする添付の特許請求の範囲において開示され、１つの請求項カテゴリ、たとえば、方法において言及した任意の特徴は、別の請求項カテゴリ、たとえば、記憶媒体においてもまた特許請求され得る。
【００１０】
本発明の一実施形態では、方法は、
マルチテナンシー・データ・ウェアハウス内の第１の仮想データ・ウェアハウスに割り当てられたテナントから、データ・クエリを受信する工程と、
前記データ・クエリに基づいて、前記テナントが前記マルチテナンシー・データ・ウェアハウス内でアクセスすることを認可されるデータを指し示す、一組の情報を生成する工程と、
前記一組の情報によって指し示されたように前記テナントがアクセスできる前記データのサブセットを利用するために、前記テナントから宣言を受信する工程と、
前記データを取り出すための一組のパラメータを識別するリンクを使用して、前記第１の仮想データ・ウェアハウスの外部のデータをインポートする工程とを備える。
【００１１】
前記第１の仮想データ・ウェアハウスが、第１の物理的なデータ・センタの一部であるデータベースであってよい。
一実施形態では、方法は、
前記データの前記サブセットが第２の物理的なデータ・センタの中にあるかどうかを判定する工程と、
前記第２の物理的なデータ・センタからの前記データの前記サブセットを、前記第１の物理的なデータ・センタにキャッシュする工程とをさらに備えてよい。
【００１２】
前記第１の仮想データ・ウェアハウスが、前記マルチテナンシー・データ・ウェアハウスの一部である複数のデータベースのうちの１つであってよく、前記方法が、１つまたは複数のテナントを、第１のデータ・ウェアハウスにおける前記複数のデータベースのうちの各々に割り当てる工程をさらに備えてよい。
【００１３】
前記データを取り出すための前記パラメータが、取り出されるデータの時間範囲を含んでよい。
本発明の一実施形態では、方法は、
前記第１の仮想データ・ウェアハウスの外部の前記データの利用を監視する工程と、
前記データの前記利用が、より小さい時間範囲からのデータのみを含むと判定する工程と、
前記リンクが前記より小さい時間範囲からの前記データのみを取り出すように、前記一組のパラメータを更新する工程とをさらに備えてよい。
【００１４】
前記リンクが、前記第１の仮想データ・ウェアハウスの外部の前記データへの読出専用アクセスを提供してよい。
本発明のさらなる実施形態では、システムは、
第１のテナントに割り当てられた第１のデータベースおよび第２のテナントに割り当てられた第２のデータベースを含む物理的なデータ・ウェアハウスであって、前記第１のテナントおよび前記第２のテナントが、前記第１のデータベースおよび前記第２のデータベース内に記憶されたデータへの完全なアクセスをそれぞれ許可されている、物理的なデータ・ウェアハウスと、
前記第１のテナントからの検索クエリを受信するため、および前記第１のデータベースと前記第２のデータベースとに関連付けられているインデックスにアクセスすることによって前記物理的なデータ・ウェアハウスを検索するための、データ発見モジュールと、
前記物理的なデータ・ウェアハウス内の前記第２のデータベースにおけるデータのサブセットを前記第１のデータベースにコピーすることなく、前記第１のテナントがデータの前記サブセットに読出アクセスすることを許可するべく、データの前記サブセットへのリンクを生成するためのリンク・モジュールと
を備える。
【００１５】
本発明の一実施形態では、システムは、前記データ発見モジュールに通信可能に結合されており、前記第２のデータベース上のいずれのデータについて前記第１のテナントがアクセスすることを認可されているかを判定するように構成されているアクセス制御モジュールをさらに備えてよい。
【００１６】
本発明の一実施形態では、システムは、前記第１のテナントを前記第１のデータベースに割り当て、前記第２のテナントを前記第２のデータベースに割り当てるための、テナント割当モジュールをさらに備えてよい。
【００１７】
本発明の一実施形態では、システムは、保持ポリシーを有する第３のデータベースを作成するため、および前記保持ポリシーに従う前記物理的なデータ・ウェアハウス内のデータへの第２のリンクを作成するための、保持管理モジュールをさらに備えてよい。
【００１８】
本発明の一実施形態では、システムは、前記第１のテナントが第２の物理的なデータ・
ウェアハウスにデータを要求したと判定するための複製管理モジュールをさらに備え、前記複製管理モジュールが、要求されたデータを、前記第２の物理的なデータ・ウェアハウスから前記物理的なデータ・ウェアハウスにコピーするように構成されていてよい。
【００１９】
前記物理的なデータ・ウェアハウスが、第１の物理的なデータ・ウェアハウスであってよく、前記システムが、第２の物理的なデータ・ウェアハウスと、前記第２の物理的なデータ・ウェアハウスへの前記第２のデータベースの転送を管理するための転送制御モジュールとをさらに備えてよい。
【００２０】
本発明の一実施形態では、システムは、前記リンク・モジュールによって生成されたリンクを更新するための伝播モジュールをさらに備えてよい。
やはり特許請求される本発明のさらなる実施形態では、コンピュータ実装される方法は、
テナントに各々割り当てられた複数の仮想データ・ウェアハウスを作成することによって、マルチテナンシー・データ・ウェアハウスを生成する工程であって、前記複数の仮想データ・ウェアハウスのうちの第１の仮想データ・ウェアハウスが、前記複数の仮想データ・ウェアハウスのうちの第２の仮想データ・ウェアハウスから前記第１の仮想データ・ウェアハウスにデータ・テーブルをコピーすることなく、前記テナントが前記データ・テーブルにアクセスすることを許可するための、前記第２の仮想データ・ウェアハウス内に記憶された前記データ・テーブルへのリンクを含む、生成する工程と、
前記リンクが更新されることを必要とする変更について、前記マルチテナンシー・データ・ウェアハウス内の変更を監視する工程と、
前記マルチテナンシー・データ・ウェアハウス内で検出された前記変更に従って、前記リンクを更新する工程とを備える。
【００２１】
前記マルチテナンシー・データ・ウェアハウス内の前記変更が、第２のマルチテナンシー・データ・ウェアハウスに対する前記複数の仮想データ・ウェアハウスのうちの１つの転送を含んでよい。
【００２２】
前記データ・テーブルへの前記リンクが、時間フレーム制限を含んでよい。
本発明の一実施形態では、方法は、
実際に使用されている前記データ・テーブルの量を決定するために、前記データ・テーブルへのアクセスを監視する工程と、
実際に使用されている前記データ・テーブルの量に対応する第２の時間フレーム制限を含むように、前記データ・テーブルへの前記リンクを更新する工程とをさらに備えてよい。
【００２３】
前記マルチテナンシー・データ・ウェアハウス内の前記変更が、前記データ・テーブルへのアクセス認可における変更を含んでよく、前記リンクを更新する工程が、前記リンクを削除する工程を含む。
【００２４】
前記複数の仮想データ・ウェアハウスが、前記マルチテナンシー・データ・ウェアハウスの前記テナントからのデータ・クエリを可能とするようにインデックスされている１つまたは複数のデータベースを含んでよい。
【００２５】
本発明のさらなる実施形態において、１つまたは複数の非一時的なコンピュータ可読記憶媒体が、本発明または上で言及した実施形態のうちのいずれかによる方法を実施するように実行されるときに動作可能なソフトウェアを具体化する。
【００２６】
同様に特許請求され得る本発明のさらなる実施形態において、システムが、１つまたは
複数のプロセッサと、プロセッサに結合された、プロセッサによって実行可能な命令を備えるメモリとを備え、プロセッサは、本発明または上で言及した実施形態のうちのいずれかによる方法を実施するように命令を実行するときに動作可能である。
【００２７】
本発明の実施形態は、付随する図面の使用を通して、説明され、明らかにされるであろう。
【図面の簡単な説明】
【００２８】
【図１】本発明のいくつかの実施形態がその中で利用され得るマルチテナンシー・データ・ウェアハウス環境の一例を示す図。
【図２】本発明の１つまたは複数の実施形態に従って使用され得るコンポーネントによるブロック図。
【図３】本発明のさまざまな実施形態に従って、テーブル・リンクを生成するための一組の動作によるフローチャート。
【図４】本発明のいくつかの実施形態に従って、データ・ウェアハウス環境内のデータを取り出すための一組の動作によるフローチャート。
【図５】本発明のさまざまな実施形態に従って、マルチテナンシー・データ・ウェアハウス内のテーブル・リンクへの更新を伝播するための一組の動作によるフローチャート。
【図６】本発明のいくつかの実施形態がそれと共に利用され得るソーシャル・ネットワーキング・システムのシステム・アーキテクチャのブロック図。
【図７】本発明のいくつかの実施形態がそれと共に利用され得るコンピュータ・システムの一例を示す図。
【発明を実施するための形態】
【００２９】
図面は、必ずしも一定の縮尺で描かれてはいない。たとえば、本発明の実施形態の理解の向上に役立つように、図面における要素のうちのいくつかの寸法が、拡大または縮小されていることがある。同様に、いくつかのコンポーネントおよび／または動作が、本発明の実施形態のいくつかを議論する目的のために、異なるブロックに分離される、または単一のブロックに組み合わされてもよい。さらに、本発明は、さまざまな修正および代替の形態に適しているが、特定の実施形態が、例として図面に示されており、以下で詳細に説明される。しかしながら、その意図は、本発明を説明される個別の実施形態に限定するためではない。それとは逆に、本発明は、付属の特許請求の範囲によって定義される本発明の範囲内に入るすべての修正形態、均等形態、および代替形態をカバーするように意図される。
【００３０】
本発明のさまざまな実施形態は、一般に、マルチテナンシー・データ・ウェアハウス・インフラストラクチャに関する。より詳細には、本発明のさまざまな実施形態は、データ複製の量を削減するために、マルチテナンシー・データ・ウェアハウス内でテーブル・リンクを使用するためのシステムおよび方法に関する。元来、Ａｐａｃｈｅ  Ｈｉｖｅによって提供されたインフラストラクチャは、単一の共有ウェアハウスのセットアップを可能とし、必要であれば、認可モデルが、このウェアハウス内でのアクセス制御を可能とする。しかしながら、単一のウェアハウスを超えた増大（データセンタ容量限度に達したとき）、または容量使用および配分の分離は、各ウェアハウスがその独自のＨｉｖｅメタストアにマッピングすることを伴う複数のウェアハウスの作成を要する。ある物理ウェアハウスは、単一のＨｉｖｅメタストア、それがマッピングするＨａｄｏｏｐクラスタ、およびその中のデータであってよい。
【００３１】
ウェアハウスを必要とする複数のチームを有する組織では、１）運用コストを低く保つために物理クラスタの共有を最大化すること、および、２）データ・ウェアハウスにおけ
るチームによる容量使用を明確に識別し、追跡することができる必要性が存在する。元来のソリューションのうちの１つは、単一の共有ウェアハウスを使用することである。しかしながら、単一のウェアハウスを使用することは、以下の不都合を有する。１）ウェアハウスがデータ・センタ容量限度に達したとき、外に移行することができる自己完結型の断片を識別するのが困難である、および、２）容量トラッキングおよび管理が課題点となる。
【００３２】
代替のソリューションは、チームごとに新しい物理ウェアハウスを作成すること（１：１マッピング）である。しかしながら、これは、チームにまたがって物理リソースが共有されず、運用コストが高いために、実現可能なソリューションではない。さらに、データは、きちんとパーティション可能ではないことがあり、結局複数の物理ウェアハウスに複製される。加えて、いくつかの会社が必要とすることがある物理ウェアハウスの数が、運用上の観点から実用的でない可能性がある。
【００３３】
対照的に、本発明のさまざまな実施形態は、データ・センタ上に構築された複数の仮想データ・ウェアハウスを含むシステムを提供する。たとえば、データ・センタは、Ａｐａｃｈｅ  Ｈｉｖｅを実行していることがある。各仮想データ・ウェアハウスは、データベースとしてモデル化されてよく、データベース・テーブルの形式でデータを管理する。仮想データ・ウェアハウスは、参照により、テーブルを他の仮想データ・ウェアハウスからインポートするリンクを含むことができる。各リンクは、ソース・テーブルの日付によるテーブル・パーティションのためのパーティション・メタデータを保有することができる。リンクはまた、ソース・テーブルのパーティションのために必要な保持期間を宣言するための保持メタデータを含むことができる。リンクは、動的であってよく、対応するソース・テーブルが新しいパーティションを受信する、またはパーティションをドロップするときに、更新することができる。仮想データ・ウェアハウスが別のデータ・センタに移行するとき、システムは、リンクのパーティション・メタデータおよび保持メタデータに基づいて、現在のデータ・センタにとどまるために必須のテーブル・パーティションを保持することができる。
【００３４】
便宜上、本発明の実施形態は、Ａｐａｃｈｅ  Ｈｉｖｅインフラストラクチャを使用するデータ・ウェアハウスを参照して説明されるが、本発明の実施形態は、データ・ウェアハウス・インフラストラクチャに等しく適用可能である。加えて、ここで紹介される技法は、特殊目的ハードウェア（たとえば、回路）として、ソフトウェアおよび／またはファームウェアで適切にプログラムされたプログラマブル回路として、または特殊目的およびプログラマブル回路の組合せとして具体化されてよい。それゆえ、実施形態は、プロセスを実施するようにコンピュータ（または他の電子デバイス）をプログラムするために使用され得る命令を記憶したマシン可読媒体を含むことができる。マシン可読媒体は、限定はしないが、フロッピー（登録商標）・ディスケット、光学ディスク、コンパクト・ディスク読出専用メモリ（ＣＤ−ＲＯＭ）、磁気光学ディスク、読出専用メモリ（ＲＯＭ）、ランダム・アクセス・メモリ（ＲＡＭ）、消去可能なプログラマブル読出専用メモリ（ＥＰＲＯＭ）、電気的に消去可能なプログラマブル読出専用メモリ（ＥＥＰＲＯＭ）、磁気もしくは光学カード、フラッシュ・メモリ、または電子命令を記憶するのに好適な他のタイプの媒体／マシン可読媒体を含むことができる。
【００３５】
術語
本出願全体を通して使用される用語、略語、および語句の簡単な定義を以下に示す。
用語「接続される」（「ｃｏｎｎｅｃｔｅｄ」）または「結合される」（「ｃｏｕｐｌｅｄ」）、および関係した用語は、動作上の意味において使用され、必ずしも直接の物理的な接続または結合に限定しない。したがって、たとえば、２つのデバイスは、直接結合されてもよいし、１つまたは複数の仲介するチャネルもしくはデバイスを介してもよい。
別の例として、デバイスは、デバイス間で情報は渡され得るが、いかなる物理的な接続も互いに共有していないやり方で結合されてもよい。本明細書で提供される開示に基づいて、当業者は、上述した定義に従って接続または結合が存在する多様なやり方を認めるであろう。
【００３６】
語句「いくつかの実施形態において」、「さまざまな実施形態によれば」、「示される実施形態において」「他の実施形態において」などは、一般に、その語句に続く個別の特徴（フィーチャ）、構造、または特性が、本発明の少なくとも１つの実施形態に含まれ、かつ本発明の２つ以上の実施形態に含まれてもよいことを意味する。加えて、そのような語句は、必ずしも同じ実施形態を、または異なる実施形態を指すわけではない。
【００３７】
コンポーネントもしくは特徴が、含まれてよい（「ｍａｙ」）、含まれ得る（「ｃａｎ」）、含まれる可能性がある（「ｃｏｕｌｄ」）、もしくは含まれることがある（「ｍｉｇｈｔ」）、または、コンポーネントもしくは特徴が、ある特性を、有してよい、有することができる、有する可能性がある、もしくは有することがあると、本明細書が述べる場合、その個別のコンポーネントもしくは特徴は、含まれること、または特性を有することを要するわけではない。
【００３８】
用語「モジュール」は、広く、ソフトウェア・コンポーネント、ハードウェア・コンポーネント、またはファームウェア・コンポーネント（またはそれらの任意の組合せ）を指す。モジュールは、通常、指定された入力を使用して有用なデータまたは他の出力を生成することができる機能コンポーネントである。モジュールは、自己完結型であってもよいし、なくてもよい。アプリケーション・プログラム（「アプリケーション」とも呼ばれる）は、１つまたは複数のモジュールを含むことができ、またはモジュールが、１つまたは複数のアプリケーション・プログラムを含むことができる。
【００３９】
一般的な説明
図１は、本発明のいくつかの実施形態がその中で利用され得るマルチテナンシー・データ・ウェアハウス環境１００の一例を示す。図１に示すように、環境は、さまざまなコマンド・ライン・インターフェース（たとえば、ＨＩＶＥ  ＣＬＩ１１５およびＣＨＲＯＮＯＳ  ＣＬＩ１２０）、および他のユーザ・インターフェース・ツール１２５と、グローバル名前空間サービス１３０と、１つまたは複数のマルチテナンシー・データ・ウェアハウス１４０とを含むことができる。データ・ウェアハウス１４０は、複数の仮想ウェアハウス１５０（名前空間）を含む。さまざまな実施形態に従って、複数の仮想ウェアハウス１５０は、他の仮想ウェアハウスと共に同じ物理的なデータ・ウェアハウス１４０に収容されて、マルチテナンシー環境を作成することができる。仮想ウェアハウスの各々を、１つの物理ウェアハウスから別の物理ウェアハウスに動かすことを可能にするために、複数の仮想ウェアハウスの各々は、ポータブルであってよい。
【００４０】
自己完結型の名前空間（すなわち、仮想ウェアハウス）を作成することによって、さまざまな実施形態は、仮想ウェアハウスの増大に基づいた容量プランニングを可能とする。多くの名前空間を１つの物理的なデータ・ウェアハウスにマッピングすることは、運用コストを低く保つ。また、物理ウェアハウスが容量限度に達した場合には、ポータビリティにより、別の物理ウェアハウスへの名前空間のシームレスな移行が可能になる。ユーザは、最も頻繁には１つの名前空間内で操作するものと思われるが、複数の名前空間上で同時に操作できることに留意されたい。結果として、いくつかの実施形態において、名前空間は、ユーザがウェアハウスにおいてデータのサブセットにのみアクセスできることを確実にするという問題を解決しない。
【００４１】
さまざまな実施形態に従って、Ａｐａｃｈｅ  Ｈｉｖｅインスタンスは、物理的なデー
タ・ウェアハウス１４０にまたがって動作しない。代わりに、これらの実施形態は、Ｈｉｖｅインスタンスにまたがって名前空間の場所上にメタデータを有し、かつ複製を使用して、Ｈｉｖｅインスタンスにまたがってデータをインポートすることを可能にする、Ｈｉｖｅの外部の名前空間サービス１３０を利用する。他の実施形態において、Ｈｉｖｅにおけるロールとして、名前空間モデリングが（たとえば、認可モデルを使用して）作成されてもよい。ロールは、各名前空間、およびそのロールに属するその名前空間において操作するユーザについて作成される。名前空間の外部のデータへのアクセスは、名前空間のロールへの外部テーブル／ビューに承認を与えることによって可能にされる。
【００４２】
複数の名前空間（それゆえ、複数のロール）に属するユーザまたはテナントは、任意の時点で、それらの名前空間にまたがるすべてのデータ上で操作できることになり、そのため、名前空間は、もはや自己完結型ではない。ユーザＡが、あるクエリを両方で実行する名前空間Ｎ１およびＮ２に同時にアクセスできるという状況を想像されたい。それらのクエリのどちらも、Ｎ１およびＮ２の両方にまたがるデータにアクセスできることになり、このことは、さまざまな実施形態において制限される。
【００４３】
Ｈｉｖｅより、本発明のさまざまな実施形態は、以下の追加的な制限のうちの１つまたは複数を課す。１）１つの名前空間に属するテーブルおよびクエリを識別するためのメタデータを提供する、２）名前空間の外部のテーブル上で操作することを防ぐ制御を提供する、および３）第１の名前空間におけるテーブル／パーティションが、第２の名前空間で利用可能にされることを明示的に要求するコマンドを提供する（いくつかのテーブル／パーティションは、複数の名前空間にまたがって必要とされることがあるので）。いくつかの実施形態は、データベースとして名前空間のモデリング（すなわち、仮想ウェアハウス）を提供する。名前空間に属する明示的なアカウンティング／テーブルのトラッキング／パーティション／ビューは、データベースが既にそれを提供しているので、必要ない。１つまたは複数の実施形態において、データベースが自己完結型であることを確実にするために、名前空間は、２部構成の名前構文（Ｙ．Ｔ）を使用するアクセスを防ぐことができる。
【００４４】
名前空間にまたがるテーブル／パーティションのインポートをモデル化するために、さまざまな実施形態は、Ｈｉｖｅにおけるリンクを使用する。これらの実施形態は、他のデータベースにおけるテーブルへのリンクを作成する、変える、およびドロップするための、さまざまなコマンドを使用する。リンクは、テーブル／パーティションのコピーを作らなくてもよく、それゆえ、同じ物理ウェアハウスにおけるデータ複製を回避することができる。たとえば、名前空間ＡがデータベースＡに常駐し、名前空間ＢがデータベースＢに常駐すると仮定されたい。Ａ．ＴまたはＢ．Ｔ構文を使用するこれらの名前空間にまたがるアクセスは、「名前空間」モードにおいて無効にされる。ユーザは、テーブルＴ１を、ＢからＡの中にインポートしている。ユーザは、どのオブジェクトがリンクされるかを指し示すために、テーブル＋メタデータのためのターゲット名前空間Ａにおけるメタデータを作成するＣＲＥＡＴＥ  ＬＩＮＫコマンドを発行する。ＡＬＴＥＲ  ＬＩＮＫ  ＡＤＤ
ＰＡＲＴＩＴＩＯＮコマンドは、パーティションをリンクに追加するために使用される。これらのパーティションは、アクセス可能なパーティションのために、ターゲット・データベースＡにおいてパーティションレベルのメタデータを複製することによって、モデル化される。リンクは動的であってよく、このことは、ソース・テーブルが新しいパーティションを入手する、またはパーティションをドロップするとき、リンクが更新された状態に保たれていることを意味する。
【００４５】
図２は、本発明の１つまたは複数の実施形態に従って使用され得るコンポーネントによるブロック図を示す。図２に示す実施形態によれば、システムは、メモリ２０５と、１つまたは複数のプロセッサ２１０と、データ発見モジュール２１５と、テナント割当モジュ
ール２２０と、リンク・モジュール２２５と、複製管理モジュール２３０と、保持管理モジュール２３５と、ガーベッジ・コレクション・モジュール２４０と、アクセス制御モジュール２４５と、転送制御モジュール２５０と、伝播モジュール２５５と、グラフィカル・ユーザ・インターフェース（ＧＵＩ）生成モジュール２６０とを含むことができる。本発明の他の実施形態は、他のモジュール、アプリケーション、および／またはコンポーネントと共に、これらのモジュールおよびコンポーネントのうちのいくつか、すべてを含んでもよいし、またはいずれも含まなくてもよい。さらになお、いくつかの実施形態は、これらのモジュールのうちの２つ以上を単一のモジュールに組み込む、および／または、これらのモジュールのうちの１つまたは複数の機能のうちのある部分を異なるモジュールに関連付けることができる。たとえば、一実施形態において、データ発見モジュール２１５およびアクセス制御モジュール２４５を、データ・ウェアハウス内のデータにアクセスするための単一のモジュールに組み合わせることができる。
【００４６】
メモリ２０５は、情報を記憶するために使用される、任意のデバイス、記憶媒体、メカニズム、またはポピュレートされたデータ構造であってよい。本発明のいくつかの実施形態に従って、メモリ２０５は、限定はしないが、揮発性メモリ、不揮発性メモリ、および動的なメモリのうちのいずれかのタイプを包含することができる。たとえば、メモリ２０５は、ランダム・アクセス・メモリ、メモリ・ストレージ・デバイス、光学メモリ・デバイス、磁気媒体、フロッピー（登録商標）・ディスク、磁気テープ、ハード・ドライブ、ＳＩＭＭ、ＳＤＲＡＭ、ＤＩＭＭ、ＲＤＲＡＭ、ＤＤＲ  ＲＡＭ、ＳＯＤＩＭＭＳ、消去可能なプログラマブル読出専用メモリ（ＥＰＲＯＭ）、電気的に消去可能なプログラマブル読出専用メモリ（ＥＥＰＲＯＭ）、コンパクト・ディスク、ＤＶＤ、その他であってよい。いくつかの実施形態に従って、メモリ２０５は、１つまたは複数のディスク・ドライブ、フラッシュ・ドライブ、１つまたは複数のデータベース、１つまたは複数のテーブル、１つまたは複数のファイル、ローカル・キャッシュ・メモリ、プロセッサ・キャッシュ・メモリ、リレーショナル・データベース、フラット・データベース、その他を含むことができる。加えて、当業者は、メモリ２０５として使用され得る、情報を記憶するための多くの追加的なデバイスおよび技法を認めるであろう。
【００４７】
メモリ２０５は、１つまたは複数のアプリケーションまたはモジュールをプロセッサ２１０上で実行するための命令を記憶するために使用されてよい。たとえば、メモリ２０５は、データ発見モジュール２１５、テナント割当モジュール２２０、リンク・モジュール２２５、複製管理モジュール２３０、保持管理モジュール２３５、ガーベッジ・コレクション・モジュール２４０、アクセス制御モジュール２４５、転送制御モジュール２５０、伝播モジュール２５５、および／またはＧＵＩ生成モジュール２６０の機能を実行するために必要とされる命令のうちのすべて、もしくはいくつかを収容するために、１つまたは複数の実施形態において使用される可能性がある。
【００４８】
データ発見モジュール２１５は、各々がテナントに割り当てられた複数の仮想ウェアハウスを有するマルチテナンシー・データ・ウェアハウス内で、テナントがデータを発見することを可能にするためのさまざまなツールおよびインターフェースを提供する。テナントがデータ・クエリをサブミットするとき、データ発見モジュール２１５は、仮想ウェアハウスのすべてにまたがって、およびいくつかのケースでは、他のマルチテナンシー・データ・ウェアハウス内を検索することができる。たとえば、マルチテナンシー・データ・ウェアハウスがＡｐａｃｈｅ  Ｈｉｖｅを実行しているとき、データ発見モジュール２１５は、マルチテナンシー・データ・ウェアハウス上に置かれて、そのマルチテナンシー・データ・ウェアハウス内の、ならびに他のマルチテナンシー・データ・ウェアハウスにおける、仮想データ・ウェアハウスのすべての内部で検索することをサポートすることができる。仮想データ・ウェアハウスが仮想データ・ウェアハウス（たとえば、名前空間またはデータベース）としてモデル化されるとき、データ発見モジュール２１５は、仮想デー
タ・ウェアハウスに割り当てられた第１のテナントから検索クエリを受信し、マルチテナンシー・データ・ウェアハウスにおけるデータベースに関連付けられたインデックスにアクセスすることによって、物理的なデータ・ウェアハウスを検索することができる。
【００４９】
テナント割当モジュール２２０により、システムの管理者は、１つまたは複数のテナントを仮想データ・ウェアハウスの各々に割り当てることが可能になる。各テナントは、それらが割り当てられる仮想データ・ウェアハウスへの完全なアクセスを有することができる。テナントがまたアクセスすることができるデータのセグメントまたはカテゴリが、テナントが割り当てられていない他の仮想データ・ウェアハウス内であったとしても、管理者はまた、それらを指定することができる。いくつかの実施形態において、管理者が、仮想データ・ウェアハウスを作成し、仮想データ・ウェアハウスを選択し、および／または１つまたは複数のテナントを仮想データ・ウェアハウスに割り当てることを可能にするための、１つまたは複数のグラフィカル・ユーザ・インターフェースを生成するために、テナント割当モジュール２２０は、ＧＵＩ生成モジュール２６０を使用することができる。
【００５０】
テナントが割り当てられた仮想ウェアハウスの外部のデータを、テナントのうちの１つが発見すると、他の仮想ウェアハウス（たとえば、データベース）におけるデータのサブセットまたはデータ・テーブルへのリンクを生成するために、リンク・モジュール２２５が使用され得る。リンクを作成することによって、さまざまな実施形態は、データをテナントの仮想ウェアハウスにコピーする必要なしに、データへのアクセスをテナントに提供する。リンク・モジュール２２５によって作成されたリンクは、読出専用リンクであってよく、インポートされるデータを識別する一組のパラメータを含むことができる。たとえば、一組のパラメータは、データ・センタ、データ・ウェアハウス、データまたはテーブルが位置する仮想ウェアハウス、データを取り出すテナント、時間フレーム（たとえば、過去３０日間のデータ）、メタデータ、および／または、リンクを管理するために、かつ／もしくは、データを取り出すために有用であり得る他のパラメータを識別することができる。
【００５１】
いくつかのケースにおいて、テナントによって要求されたデータは、異なるデータ・センタ内または物理的なデータ・ウェアハウス内に記憶されていることがある。複製管理モジュール２３０は、データ要求を監視し、テナントがデータを第２の物理的なデータ・ウェアハウスに要求したと判定することができる。複製管理モジュールは次いで、要求されたデータを、第２の物理的なデータ・ウェアハウスから、テナントが関連付けられた物理的なデータ・ウェアハウスへとコピーすることができる。
【００５２】
本発明のいくつかの実施形態は、施行されるべきさまざまな保留（たとえば、法的保留）または他のデータの保持ポリシーを可能とする。保持管理モジュール２３５は、保持ポリシーに関連付けられた仮想ウェアハウスを作成することができる。その場合、リンク・モジュール２２５は、保持ポリシーの下で維持されることを必要とするデータへのリンクを作成するために使用されてよい。
【００５３】
データ・ウェアハウスに対する変更が発生するとき、ガーベッジ・コレクション・モジュール２４０が、使用されていないデータおよびリンクを取り除くために使用されてよい。加えて、ガーベッジ・コレクション・モジュール２４０は、リンクの使用を監視し、取り出されたデータの現在の使用に基づいて、リンクを更新することができる。たとえば、リンクは、個別の主題について、３０日間のデータを取り出すことができる。しかしながら、テナントがその最近３日間のデータをもっぱら一貫して使用している場合には（たとえば、レポートを生成するために）、ガーベッジ・コレクション・モジュール２４０が、最近３日間のデータのみが取り出されるように、リンクを更新することができる。このインテリジェントなガーベッジ・コレクションの結果として、いくつかのケースにおいては
、より少ないデータが自動的に取り出されるので、ネットワーク・リソースを削減することができる。
【００５４】
アクセス制御モジュール２４５は、データ発見モジュール２１５に通信可能に結合されて、各テナントがアクセスすることを認可されるのは、データ・ウェアハウス内の仮想ウェアハウス上のどのデータかを判定するように構成されてよい。アクセス承認は、予め設定されたルールを通して、またはグラフィカル・ユーザ・インターフェース・スクリーンを通して管理者が入れた手動変更を通したいずれかで、経時的に変更されることがある。これらの変更が行われるとき、たとえば、伝播モジュール２５５は、それに応じて、データ・ウェアハウス内でリンクを更新すること（たとえば、リンクを削除する、データがインポートされたことを更新する、その他）ができる。
【００５５】
さまざまな実施形態において、仮想ウェアハウスを、第１のデータ・ウェアハウスから第２のデータ・ウェアハウスへと転送することができる。これらのタイプの転送は、多様な理由のために発生することがある。たとえば、データ・ウェアハウスがまさに容量に達するときに、仮想ウェアハウスが転送されてよい。別の例として、仮想データ・ウェアハウスが物理的近接においてより近くなることを可能にするために、転送は、テナントの物理的な場所に基づくことができる。転送制御モジュール２５０は、データ・センタの各々のステータスを監視し、１つのデータ・センタから別のデータ・センタへの仮想ウェアハウスの転送を管理する。転送制御モジュール２５０は、新しい場所を指し示すために、伝播モジュール２５５が仮想データ・ウェアハウスへの任意のリンクを更新することを要求することができる。
【００５６】
ＧＵＩ生成モジュール２６０は、１つまたは複数のグラフィカル・ユーザ・インターフェース・スクリーンを生成するために使用されてよい。これらのスクリーンは、情報（たとえば、データ・センタ容量、生成されたレポート、およびデータ・ウェアハウス・トポロジ）を、ユーザに表示するために使用されてよい。いくつかの実施形態において、グラフィカル・ユーザ・インターフェース・スクリーンを使用して、テナントを仮想データ・ウェアハウスのうちの１つまたは複数に割り当てること、アクセス・ポリシーを定義すること、データ保持ポリシーを定義することなどができる。
【００５７】
図３は、本発明のさまざまな実施形態に従って、テーブル・リンクを生成するための一組の動作３００によるフローチャートである。図３に示す動作は、データ発見モジュール２１５、リンク・モジュール２２５、および／またはプロセッサ２１０などの、１つもしくは複数のモジュールまたはコンポーネントによって実施されてよい。受信動作３１０が、テナントから検索クエリを受信し、検索クエリに適合したデータを求めてデータ・ウェアハウスを検索する。リターン動作３２０が、結果を（たとえば、ＧＵＩ生成モジュール２６０によって生成されたグラフィカル・ユーザ・インターフェース・スクリーンを使用して）、テナントに返す。結果は、そのテナントに関連付けられた第１の仮想ウェアハウス（たとえば、データベース）からのデータ、および／または、別のテナントに関連付けられた第２の仮想ウェアハウスからのデータを含むことができる。
【００５８】
テナントは次いで、宣言動作３３０の間に、どのデータを、第２の仮想ウェアハウスから、そのテナントに関連付けられた第１の仮想ウェアハウスにインポートすべきか宣言することができる。テナントによる受信された宣言は、１つまたは複数の追加的な制限（たとえば、時間限度または通知制限）を受けることができる。生成動作３４０が次いで、第１の仮想ウェアハウスのテナントが、第２の仮想ウェアハウスに位置するデータにアクセスすることを許可するためのリンクを生成することができる。いくつかのケースにおいて、リンクは、取り出されるべき、またはインポートされるべきデータを記述する一組の情報を含む。
【００５９】
図４は、本発明のいくつかの実施形態に従って、データ・ウェアハウス環境内のデータを取り出すための一組の動作４００によるフローチャートである。図４に示す動作は、データ発見モジュール２１５、リンク・モジュール２２５、および／またはプロセッサ２１０などの、１つもしくは複数のモジュールまたはコンポーネントによって実施されてよい。クエリ動作４１０の間にデータ・クエリが受信されると、データ発見モジュール２１５が、仮想ウェアハウスのすべてにまたがって、およびいくつかのケースでは、他のマルチテナンシー・データ・ウェアハウス内を検索することができる。いくつかの実施形態において、データを論理的に編成することを支援するために、仮想データ・ウェアハウスは、データベースまたは名前空間としてモデル化される。これらのケースにおいて、クエリ動作４１０は、マルチテナンシー・データ・ウェアハウスにおけるデータベースに関連付けられたインデックスにアクセスすることによって、データを検索することができる。識別動作４２０は、クエリ動作４１０によって返されたデータを識別し、結果を提示する前に、任意のセキュリティ制限との適合を確実にする。
【００６０】
決定動作４３０は、データのいずれかが、異なるデータ・センタ内の仮想ウェアハウスに位置しているかどうかを判定することができる。データのいくつかが異なるデータ・センタの一部であると判定すると、決定動作４３０は、リンク動作４５０がデータへのリンクを生成する前に、データが現在のデータ・センタに複製される複製動作４４０へと分岐する。データのいずれも異なるデータ・センタの一部ではないとき、決定動作４３０は、データへのリンクが作成されるリンク動作４５０へと分岐する。受信動作４６０は、データにアクセスするための要求を受信するように設計されている。その時点で、データは、リンク動作４５０によって作成されたリンクを使用して、取り出し動作４７０の間に取り出される。
【００６１】
図５は、本発明のさまざまな実施形態に従って、マルチテナンシー・データ・ウェアハウス内のテーブル・リンクへの更新を伝播するための一組の動作５００によるフローチャートである。図５に示す動作は、テナント割当モジュール２２０、伝播モジュール２５５、および／またはプロセッサ２１０などの、１つもしくは複数のモジュールまたはコンポーネントによって実施されてよい。割当動作５１０の間、各々がテナントに割り当てられた（たとえば、テナント割当モジュール２２０を使用して）複数の仮想ウェアハウスを有するマルチテナンシー・データ・ウェアハウスが作成される。テナントは、１人または複数の個人の会社従業員、１人または複数のチームメンバーを有するチーム（たとえば、単一の会社内の、または複数にまたがる会社からの）、あるいは、１人もしくは複数の個人またはグループの他の組合せ（たとえば、会社もしくは組織の、内部または外部の個人）であってよい。マルチテナンシー・データ・ウェアハウス内では、仮想データ・ウェアハウスのうちの１つまたは複数にまたがってデータまたはデータ・テーブルをリンクするために、１つまたは複数のリンクが作成され、そのようにして、第１の仮想データ・ウェアハウスに割り当てられた第１のテナントが、第２の仮想データ・ウェアハウス内のデータにアクセスすることを許可することができる。
【００６２】
監視動作５２０は、マルチテナンシー・データ・ウェアハウス内の仮想データ・ウェアハウスに対する変更について監視する。これらの変更は、データ・ウェアハウス・オペレーティング・システム内でさまざまなコマンドを使用して検出され得る。変更が検出されると、伝播動作５３０が、適切なリンクへの更新を伝播する。たとえば、仮想データ・ウェアハウスからデータが削除されたとき、監視動作５２０は、変更を検出し、伝播動作５３０が、そのデータを指す任意のリンクまたはリンクの部分を取り除く。別の例として、１つの仮想データ・ウェアハウスから別の仮想データ・ウェアハウスへと、データが転送することがある。再び、監視動作５２０は、記憶場所において変更を検出し、伝播動作５３０が、新しい場所を指し示すために、そのデータを指す任意のリンクを更新する。
【００６３】
ソーシャル・ネットワーキング・システム・アーキテクチャ
本発明の実施形態を、ソーシャル・ネットワーキング・システム内で利用することができる。通常、ソーシャル・ネットワーキング・システムは、ユーザおよび／または他のオブジェクトに関連付けられたユーザ・プロフィール、ならびに、ユーザと他のユーザ、および／またはユーザとオブジェクトとの間の接続（つながり）を記憶する、１つもしくは複数のコンピューティング・デバイスを含む。使用において、ユーザは、ソーシャル・ネットワーキング・システムに加入し、次いでユーザが接続されることを所望するソーシャル・ネットワーキング・システムの他のユーザまたはオブジェクトへの接続を追加する。ユーザは、個人、またはビジネス、組織、大学、もしくは製造業者などのエンティティであってよい。ソーシャル・ネットワーキング・システムは、そのユーザ同士が互いにだけはなく、ソーシャル・ネットワーキング・システムによって維持される他のオブジェクトと対話することを可能にする。いくつかの実施形態において、ソーシャル・ネットワーキング・システムは、ユーザが、第三者ウェブサイトおよび金融アカウント・プロバイダと対話することを可能にする。
【００６４】
ユーザ、オブジェクト、ならびにユーザおよび／またはオブジェクト間の接続についての記憶されたデータに基づいて、ソーシャル・ネットワーキング・システムは、複数のエッジによって相互接続された複数のノードを備える「ソーシャル・グラフ」を生成し、維持することができる。ソーシャル・グラフにおける各ノードは、別のノードに影響し得るオブジェクトもしくはユーザ、および／または、別のノードによって影響され得るオブジェクトもしくはユーザを表す。ソーシャル・グラフにおける２つのノード間のエッジは、ノードのうちの１つによって他のノードに実施されたアクションから生じ得る、２つのノード間の個別の種類の接続を表す。たとえば、あるユーザが追加的なユーザを友達として識別するとき、第１のユーザを表すノードと、追加的なユーザを表す追加的なノードとを接続する、ソーシャル・グラフのエッジが生成される。生成されたエッジは、ユーザ同士が友達であることを指し示す接続タイプを有する。さまざまなノードが互いに対話するとき、ソーシャル・ネットワーキング・システムは、対話を反映するように、さまざまなノードを接続するエッジを修正することができる。
【００６５】
図６は、本発明のいくつかの実施形態がそれと共に利用され得るソーシャル・ネットワーキング・システム６００のシステム・アーキテクチャのブロック図である。図６によって示されるソーシャル・ネットワーキング・システム６００は、ＡＰＩ要求サーバ６０５と、ウェブ・サーバ６１０と、メッセージ・サーバ６１５と、ユーザ・プロフィール・ストア６２０と、アクション・ロガー６２５と、アクション・ログ６３０と、接続ストア６３５と、コンテンツ・ストア６４０と、エッジ・ストア６４５と、金融アカウント・ストア６５０と、マルチテナンシー・データ・ウェアハウス１４０とを含む。他の実施形態において、ソーシャル・ネットワーキング・システム６００は、さまざまなアプリケーションのための、追加の、より少ない、または異なるモジュールを含んでもよい。ネットワーク・インターフェース、セキュリティ・メカニズム、ロード・バランサー、フェイルオーバ・サーバ、管理およびネットワーク操作コンソール、その他などの従来のコンポーネントは、システム・アーキテクチャの詳細を曖昧にしないように、示されていない。
【００６６】
ＡＰＩ要求サーバ６０５は、他のシステム、ユーザ・デバイス、またはツールが、ＡＰＩを呼び出すことによって、ソーシャル・ネットワーキング・システム６００からの情報にアクセスすることを許可する。ソーシャル・ネットワークによって提供される情報は、ユーザ・プロフィール情報、またはユーザの個々のプライバシー設定によって判定されるようなユーザの接続情報を含むことができる。たとえば、ソーシャル・ネットワーキング・システム内のデータ接続にアクセスすることに関心のあるシステム、ユーザ・デバイス、またはツールは、ネットワークを介して、ソーシャル・ネットワーキング・システム６
００にＡＰＩ要求を送ることができる。ＡＰＩ要求は、ＡＰＩ要求サーバ６０５によって、ソーシャル・ネットワーキング・システム６００で受信される。ＡＰＩ要求サーバ６０５は、アクセス要求を、アクセスが判定される場所であるソーシャル・ネットワーキング・システム６００にサブミットすることによって要求を処理し、任意のデータが、要求するシステム、ユーザ・デバイス、またはツールに、ネットワークを介して通信し戻される。
【００６７】
ウェブ・サーバ６１０は、ネットワークを介して、ソーシャル・ネットワーキング・システム６００を１つまたは複数のクライアント・デバイスにリンクし、ウェブ・サーバは、ウェブ・ページ、ならびにＪＡＶＡ（登録商標）、Ｆｌａｓｈ、ＸＭＬ、その他などの他のウェブ関係コンテンツをサービスする。ウェブ・サーバ６１０は、メッセージ・サーバ６１５と通信することができ、メッセージ・サーバ６１５は、ソーシャル・ネットワーキング・システム６００とクライアント・デバイスとの間で、メッセージを受信し、ルーティングする機能を提供する。メッセージ・サーバ６１５によって処理されるメッセージは、インスタント・メッセージ、キューに入ったメッセージ（たとえば、電子メール）、テキスト・メッセージおよびＳＭＳ（ショート・メッセージ・サービス）メッセージ、または任意の他の好適なメッセージング技法であってよい。いくつかの実施形態において、ユーザによって別のユーザに送られたメッセージを、たとえば、メッセージを受信するユーザの接続によって、ソーシャル・ネットワーキング・システム６００のその他のユーザらが見ることができる。メッセージの受信者の他に、ソーシャル・ネットワーキング・システムのその他のユーザらが見ることができるメッセージのタイプの一例が、ウォール投稿である。いくつかの実施形態において、ユーザは、ある別のユーザのみが取り出すことができるプライベート・メッセージを、その別のユーザに送ることができる。
【００６８】
ソーシャル・ネットワーキング・システム６００の各ユーザは、ユーザ・プロフィール・ストア６２０に記憶されたユーザ・プロフィールに関連付けられている。ユーザ・プロフィールは、ユーザによって明示的に共有された、そのユーザについての宣言的情報を含み、ソーシャル・ネットワーキング・システム６００によって推測されるプロフィール情報もまた含むことができる。一実施形態において、ユーザ・プロフィールは、複数のデータ・フィールドを含み、各データ・フィールドは、ソーシャル・ネットワーキング・システム６００の対応するユーザの１つまたは複数の属性を記述する。ユーザ・プロフィール・ストア６２０に記憶されたユーザ・プロフィール情報は、仕事経験、学歴、性別、趣味または選好、場所、その他などの、経歴の、人口統計の、および他のタイプの記述的な情報を含んで、ソーシャル・ネットワーキング・システム６００のユーザを記述する。ユーザ・プロフィールはまた、ユーザによって提供される他の情報、たとえば、画像またはビデオを記憶することができる。一定の実施形態において、ユーザの画像を、ある画像に表示されたソーシャル・ネットワーキング・システム６００のユーザの識別情報にタグ付けすることができる。ユーザ・プロフィール・ストア６２０におけるユーザ・プロフィールはまた、コンテンツ・ストア６４０におけるコンテンツ・アイテム上で実施され、エッジ・ストア６４５に記憶された、対応するユーザによるアクションへの参照を維持することができる。
【００６９】
ユーザ・プロフィールを１つまたは複数の金融アカウントに関連付けて、ユーザ・プロフィールが、金融アカウントから取り出される、または金融アカウントから得られるデータを含むように可能にすることができる。ユーザは、ユーザ・プロフィールに記憶された１つまたは複数のプライバシー設定を指定することができ、プライバシー設定は、ソーシャル・ネットワーキング・システム６００がアクセスを承認された、金融アカウントからの情報を限定する。たとえば、プライバシー設定は、ソーシャル・ネットワーキング・システム６００を、現在のアカウント残高にではなく、金融アカウントのトランザクション履歴にアクセスすることに限定する。別の例として、プライバシー設定は、ソーシャル・
ネットワーキング・システム６００を、金融アカウントのトランザクション履歴のサブセットに限定して、指定された時間範囲内のトランザクション、閾値トランザクション量未満に係わるトランザクション、指定されたベンダー識別子に関連付けられたトランザクション、指定されたベンダー識別子以外のベンダー識別子に関連付けられたトランザクション、またはソーシャル・ネットワーキング・システム６００によってアクセス可能な、ユーザによって識別された金融アカウントからの情報を限定する任意の好適な基準に、ソーシャル・ネットワーキング・システム６００がアクセスすることを許可する。一実施形態において、金融アカウントからの情報は、ユーザ・プロフィール・ストア６２０に記憶される。他の実施形態において、情報は、金融アカウント・ストア６５０に記憶されてもよい。
【００７０】
アクション・ロガー６２５は、ソーシャル・ネットワーキング・システム６００をオンおよび／またはオフにするユーザ・アクションについての通信を受信して、ユーザ・アクションについての情報でアクション・ログ６３０をポピュレートする。そのようなアクションは、たとえば、別のユーザへの接続を追加すること、別のユーザにメッセージを送ること、画像をアップロードすること、別のユーザからのメッセージを読むこと、別のユーザに関連付けられたコンテンツを見ること、別のユーザによって投稿されたイベントに出席することを、とりわけ含むことができる。いくつかの実施形態において、アクション・ロガー６２５は、１つまたは複数のプライバシー設定に従い、ユーザに関連付けられた金融アカウントからのトランザクション情報を受信し、トランザクション情報からユーザ・アクションを識別する。たとえば、アクション・ロガー６２５は、金融アカウントのトランザクション履歴からベンダー識別子を取り出し、ベンダー識別子に関連付けられた、ソーシャル・ネットワーキング・システム６００におけるページなどのオブジェクトを識別する。これは、コンテンツ・ストア６４０におけるページ、または別のオブジェクトに関連付けられた製品またはサービスのユーザの購入を、アクション・ロガー６２５が識別することを可能にする。加えて、他のオブジェクトに関連して記述されるいくつかのアクションは、個別のユーザに向けられており、そのため、これらのアクションは、同様にそれらのユーザに関連付けられている。これらのアクションは、アクション・ログ６３０に記憶される。
【００７１】
アクション・ログ６３０は、ソーシャル・ネットワーキング・システム６００上だけでなく、ソーシャル・ネットワーキング・システム６００に情報を通信する外部ウェブサイト上のユーザ・アクションを追跡するために、ソーシャル・ネットワーキング・システム６００によって使用されてよい。ユーザは、投稿にコメントすること、リンクを共有すること、モバイル・デバイスを介して物理的な場所にチェックインすること、コンテンツ・アイテムに順番にアクセスすること、または他の対話を含む、ソーシャル・ネットワーキング・システム６００上のさまざまなオブジェクトと対話することができる。これらのアクションを記述する情報は、アクション・ログ６３０に記憶される。アクション・ログ６３０に含まれるソーシャル・ネットワーキング・システム６００上のオブジェクトとの対話の追加的な例は、フォト・アルバムにコメントすること、ユーザ間での通信、ミュージシャンのファンになること、カレンダーにイベントを追加すること、グループに加入すること、ブランド・ページのファンになること、イベントを作成すること、アプリケーションを認可すること、アプリケーションを使用すること、およびトランザクションに関与することを含む。その上、アクション・ログ６３０は、ソーシャル・ネットワーキング・システム６００上の広告とのユーザの対話、ならびにソーシャル・ネットワーキング・システム６００上で動作する他のアプリケーションとのユーザの対話を記録する。いくつかの実施形態において、アクション・ログ６３０からのデータは、ユーザの関心または選好を推測するために使用されて、ユーザ・プロフィールに含まれる関心を増やし、ユーザ選好のより完全な理解を可能にする。
【００７２】
アクション・ログ６３０はまた、外部ウェブサイトに対して取られた、および／またはユーザに関連付けられた金融アカウントから判定された、ユーザ・アクションを記憶することができる。たとえば、スポーツ用具を特価で主に販売するｅ−コマース・ウェブサイトは、ソーシャル・ネットワーキング・システム６００のユーザをｅ−コマース・ウェブサイトが識別できるようにするソーシャル・プラグインを通して、ソーシャル・ネットワーキング・システム６００のユーザを認識することができる。ソーシャル・ネットワーキング・システム６００のユーザは一意に識別可能なので、このスポーツ用具小売店などのｅ−コマース・ウェブサイトは、ユーザが小売店のウェブサイトを訪問するとき、これらのユーザについての情報を使用することができる。アクション・ログ６３０は、ウェブページ・ビューイング履歴、関与した広告、行われた購入、ならびにショッピングおよび買い付けからの他のパターンを含む、これらのユーザについてのデータを記録する。ユーザに関連付けられた金融アカウントのトランザクション履歴からアクション・ロガー６２５によって識別されたアクションは、アクション・ログ６３０が、追加的なタイプのユーザ・アクションについてのさらなる情報を記録することを可能にする。
【００７３】
いくつかの実施形態において、ソーシャル・ネットワーキング・システム６００はさらに、異なるユーザ間の１つまたは複数の接続を記述するデータを、接続ストア６３５に記憶する。１つまたは複数の接続を記述するデータは、接続のリスト、各接続（すなわち、友人関係）が行われた日付、その他を含むことができる。接続は、ユーザによってさらに定義されて、ユーザが、他のユーザと自分との関係を指定することを可能にすることができる。たとえば、接続は、友達、仕事仲間、パートナー、その他などの、ユーザの実生活関係と並行する他のユーザとの関係を、ユーザが生成することを可能にする。一実施形態において、接続は、関係のタイプに基づいて、接続タイプを指定する。関係のタイプの例には、家族、友達、同僚、その他が含まれる。ユーザは、予め定義された接続のタイプから選択する、または必要に応じて自分独自の接続タイプを定義することができる。この情報のうちのいくつか、またはすべては、エッジ・オブジェクトとして、エッジ・ストア６４５にまた記憶されてもよい。
【００７４】
コンテンツ・ストア６４０は、画像、ビデオ、またはオーディオ・ファイルなどの、ユーザ・プロフィールに関連付けられたコンテンツ・アイテムを記憶する。コンテンツ・ストア６４０からのコンテンツ・アイテムは、ユーザ・プロフィールが見られるとき、またはユーザ・プロフィールに関連付けられた他のコンテンツが見られるときに表示されてよい。たとえば、表示されたコンテンツ・アイテムは、ユーザ・プロフィールに関連付けられた画像もしくはビデオを見せる、またはユーザのステータスを記述するテキストを見せることができる。その上、他のコンテンツ・アイテムは、ユーザが、自分の接続を他のユーザに拡大するように、新しいユーザをシステムに招待するように、または、ソーシャル・ネットワーキング・システム６００のユーザ、オブジェクト、アクティビティ、または機能に関係したコンテンツを表示することによってソーシャル・ネットワーク・システムとの対話を増加させるように奨励することによって、ユーザ関与を促進することができる。ソーシャル・ネットワーキング・コンテンツ・アイテムの例には、提案される接続または他のアクションを実施するための提案、ソーシャル・ネットワーキング・システム６００に提供される、またはソーシャル・ネットワーキング・システム６００によって維持される媒体（たとえば、写真またはビデオ）、ユーザによってソーシャル・ネットワーキング・システムに投稿されたステータス・メッセージまたはリンク、イベント、グループ、ページ（たとえば、組織または商業エンティティを表す）、および、ソーシャル・ネットワーキング・システムによって提供される、またはソーシャル・ネットワーキング・システムを介してアクセス可能な任意の他のコンテンツが含まれる。
【００７５】
コンテンツ・ストア６４０はまた、ユーザ・プロフィール・ストア６２０にユーザ・プロフィールを有するエンティティに関連付けられた１つまたは複数のページを含む。エン
ティティは、ビジネス、ベンダー、組織、または大学などの、ソーシャル・ネットワーキング・システム６００の非個人ユーザである。ページは、エンティティに関連付けられたコンテンツと、コンテンツをソーシャル・ネットワーキング・システム・ユーザに提示するための命令とを含む。たとえば、ページは、エンティティのユーザ・プロフィールに関連付けられたコンテンツ、ならびにブランド・ページを見るユーザにどのようにコンテンツを提示するかを記述する情報を識別する。ベンダーが、コンテンツ・ストア６４０におけるページに関連付けられて、ソーシャル・ネットワーキング・システム・ユーザが、ソーシャル・ネットワーキング・システム６００を介してベンダーとより簡単に対話することを可能にすることができる。ベンダー識別子が、ベンダーのページに関連付けられて、ソーシャル・ネットワーキング・システム６００が、ベンダーを識別する、および／または、ユーザ・プロフィール・ストア６２０、アクション・ログ６３０から、もしくはベンダー識別子を使用する任意の他の好適なソースから、ベンダーについての追加的な情報を取り出すことを可能にする。いくつかの実施形態において、コンテンツ・ストア６４０はまた、記憶されたオブジェクトに関連付けられた１つまたは複数のターゲティング基準を記憶し、そのオブジェクトが提示されるのに適格なユーザの１つまたは複数の特性を識別することができる。
【００７６】
一実施形態において、エッジ・ストア６４５は、ソーシャル・ネットワーキング・システム６００上のユーザと他のオブジェクトとの間の接続を記述する情報を、エッジ・オブジェクトに記憶する。いくつかのエッジは、ユーザによって定義されて、ユーザが他のユーザとの自分の関係を指定することを可能にすることができる。たとえば、ユーザは、友達、仕事仲間、パートナー、その他などの、ユーザの実生活関係と並行した他のユーザとのエッジを生成することができる。他のエッジは、ソーシャル・ネットワーキング・システム６００上のページに関心を表現する、ソーシャル・ネットワーキング・システム６００の他のユーザとリンクを共有する、およびソーシャル・ネットワーキング・システムの他のユーザによって行われた投稿にコメントするなどの、ユーザがソーシャル・ネットワーキング・システム６００におけるオブジェクトと対話するときに生成される。エッジ・ストア６４５は、オブジェクト、関心、および他のユーザに対する親近度スコアなどの、エッジについての情報を含むエッジ・オブジェクトを記憶する。ユーザによって実施されたアクションに基づいて、ソーシャル・ネットワーキング・システム６００におけるオブジェクト、関心、および他のユーザに対するユーザの親近度を概算するために、親近度スコアは、ソーシャル・ネットワーキング・システム６００によって経時的に計算されてよい。一実施形態において、ユーザと特定のオブジェクトとの間の複数の対話を、エッジ・ストア６４５における１つのエッジ・オブジェクトに記憶することができる。いくつかの実施形態において、ユーザ間の接続は、ユーザ・プロフィール・ストア６２０に記憶されてもよく、またはユーザ・プロフィール・ストア６２０が、ユーザ間の接続を判定するために、エッジ・ストア６４５にアクセスしてもよい。
【００７７】
ユーザは、ユーザ・デバイス６５５、モバイル・デバイス６６０、パーソナル・コンピュータ６６５、ラップトップ６７０、および／または、ユーザがソーシャル・ネットワーキング・システム６００と通信することを可能にする他のデバイスを通して、ソーシャル・ネットワーキング・システム６００と対話することができる。図６に示すように、これらのデバイスは、ネットワーク６７５を使用して、情報をサブミットし、ソーシャル・ネットワーキング・システム６００から取り出すことができる。ユーザ・デバイス６５５は、ユーザ入力を受信することができるだけでなく、ネットワーク６７５を介して、データを送信する、および／または受信することができる任意のコンピューティング・デバイスであってよい。一実施形態において、ユーザ・デバイス６５５は、デスクトップ６６５またはラップトップ・コンピュータ６７０などの、従来のコンピュータ・システムである。別の実施形態において、ユーザ・デバイス６５５は、携帯情報端末（ＰＤＡ）、モバイル電話、スマート・フォン、または同様のデバイスなどの、コンピュータ機能を有するモバ
イル・デバイス６６０であってよい。
【００７８】
ユーザ・デバイス６５５は、ネットワーク６７５を介して、ソーシャル・ネットワーキング・システム６００および／または金融アカウント・プロバイダと通信するように構成されている。一実施形態において、ユーザ・デバイス６５５は、ユーザ・デバイス６５５のユーザがソーシャル・ネットワーキング・システム６００と対話することを可能にするアプリケーションを実行する。たとえば、ユーザ・デバイス６５５は、ネットワーク６７５を介して、ユーザ・デバイス６５５とソーシャル・ネットワーキング・システム６００との間で対話できるようにするために、ブラウザ・アプリケーションを実行することができる。別の実施形態において、ユーザ・デバイス６５５は、ＩＯＳ（登録商標）またはＡＮＤＲＯＩＤ（登録商標）などのユーザ・デバイス６５５のネイティブ・オペレーティング・システム上で実行する、アプリケーション・プログラミング・インターフェース（ＡＰＩ）を通して、ソーシャル・ネットワーキング・システム６００と対話する。
【００７９】
ユーザ・デバイス６５５は、ネットワーク６７５を介して通信するように構成されていてよく、ネットワーク６７５は、有線および無線の両方の通信システムを使用する、ローカル・エリア・ネットワークおよび／またはワイド・エリア・ネットワークの任意の組合せを備えることができる。一実施形態において、ネットワーク６７５は、標準の通信技術および／または通信プロトコルを使用する。したがって、ネットワーク６７５は、イーサネット（登録商標）、８０２．１１、ワールドワイド・インターオペラビリティ・フォー・マイクロウェーブ・アクセス（ＷｉＭＡＸ）、３Ｇ、４Ｇ、ＣＤＭＡ、デジタル・サブスクライバ・ライン（ＤＳＬ）、その他などの技術を使用するリンクを含むことができる。同様に、ネットワーク６７５で使用されるネットワーキング・プロトコルは、マルチプロトコル・ラベル・スイッチング（ＭＰＬＳ）、伝送制御プロトコル／インターネット・プロトコル（ＴＣＰ／ＩＰ）、ユーザ・データグラム・プロトコル（ＵＤＰ）、ハイパーテキスト・トランスポート・プロトコル（ＨＴＴＰ）、シンプル・メール転送プロトコル（ＳＭＴＰ）、およびファイル転送プロトコル（ＦＴＰ）を含むことができる。ネットワーク６７５上でやり取りされるデータは、ハイパーテキスト・マークアップ言語（ＨＴＭＬ）または拡張可能なマークアップ言語（ＸＭＬ）を含む、技術および／またはフォーマットを使用して表すことができる。加えて、すべてまたはいくつかのリンクを、セキュア・ソケット層（ＳＳＬ）、トランスポート層セキュリティ（ＴＬＳ：ｔｒａｎｓｐｏｒｔ
ｌａｙｅｒ  ｓｅｃｕｒｉｔｙ）、およびインターネット・プロトコル・セキュリティ（ＩＰＳｅｃ）などの従来の暗号化技術を使用して、暗号化することができる。
【００８０】
例示的なコンピュータ・システム概要
本発明の実施形態は、上で説明してきたさまざまなステップおよび動作を含む。多様なこれらのステップおよび動作は、ハードウェア・コンポーネントによって実施されてもよく、または、命令でプログラムされる汎用もしくは特殊目的プロセッサにステップを実施させるために使用されてよい、マシン実行可能命令において具体化されてもよい。代替的に、ステップは、ハードウェア、ソフトウェア、および／またはファームウェアの組合せによって実施されてもよい。したがって、図７は、本発明の実施形態がそれと共に利用され得るコンピュータ・システム７００の一例である。本例によれば、コンピュータ・システムは、バス７１０と、少なくとも１つのプロセッサ７２０と、少なくとも１つの通信ポート７３０と、メイン・メモリ７４０と、リムーバブル記憶媒体７５０と、読出専用メモリ７６０と、マス・ストレージ７７０とを含む。
【００８１】
プロセッサ７２０は、限定はしないが、Ｉｎｔｅｌ（登録商標）Ｉｔａｎｉｕｍ（登録商標）もしくはＩｔａｎｉｕｍ２（登録商標）プロセッサ、ＡＭＤ（登録商標）Ｏｐｔｅｒｏｎ（登録商標）もしくはＡｔｈｌｏｎ  ＭＰ（登録商標）プロセッサ、またはＭｏｔｏｒｏｌａ（登録商標）ラインのプロセッサなどの、任意の知られているプロセッサであ
ってよい。通信ポート７３０は、モデムベースのダイヤルアップ接続で使用するためのＲＳ−２３２ポート、１０／１００イーサネット（登録商標）・ポート、または銅またはファイバを使用するギガビット・ポートのうちのいずれかであってよい。ローカル・エリア・ネットワーク（ＬＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、またはコンピュータ・システム７００が接続する任意のネットワークなどのネットワークに応じて、通信ポート７３０を選ぶことができる。
【００８２】
メイン・メモリ７４０は、ランダム・アクセス・メモリ（ＲＡＭ）、または当技術分野において通例知られている任意の他の動的なストレージ・デバイスであってよい。読出専用メモリ７６０は、プロセッサ７２０のための命令などの静的な情報を記憶するための、プログラマブル読出専用メモリ（ＰＲＯＭ）チップなどの任意の静的なストレージ・デバイスであってよい。
【００８３】
マス・ストレージ７７０は、情報および命令を記憶するために使用され得る。たとえば、Ａｄａｐｔｅｃ（登録商標）ファミリーのＳＣＳＩドライブなどのハード・ディスク、光学ディスク、ＡｄａｐｔｅｃファミリーのＲＡＩＤドライブなどのＲＡＩＤなどのディスクのアレイ、または任意の他のマス・ストレージ・デバイスが使用されてよい。
【００８４】
バス７１０は、プロセッサ７２０を、他のメモリ、ストレージ、および通信ブロックに通信可能に結合する。バス７１０は、使用されるストレージ・デバイスに応じて、ＰＣＩ／ＰＣＩ−ＸまたはＳＣＳＩベースのシステム・バスであってよい。
【００８５】
リムーバブル・記憶媒体７５０は、外部ハード・ドライブ、フロッピー（登録商標）・ドライブ、ＩＯＭＥＧＡ（登録商標）ジップ・ドライブ、コンパクト・ディスク−読出専用メモリ（ＣＤ−ＲＯＭ）、コンパクト・ディスク−書き換え可能（ＣＤ−ＲＷ）、および／またはデジタル・ビデオ・ディスク−読出専用メモリ（ＤＶＤ−ＲＯＭ）のうちの任意の種類であってよい。
【００８６】
上で説明したコンポーネントは、いくつかのタイプの可能性の例となることを意味する。上述した例は、もっぱら例示的な実施形態であるため、決して本発明の範囲を限定すべきではない。
【００８７】
結論として、本発明は、マルチテナンシー・データ・ウェアハウス内でデータを管理するための、新規なシステム、方法、および装置を提供する。本発明の１つまたは複数の実施形態の詳細な説明が上で与えられてきたが、さまざまな代替形態、修正形態、および均等形態は、本発明の趣旨から変化することなく、当業者に明らかであろう。たとえば、上で説明した実施形態は、個別の特徴を指しているが、本発明の範囲は、特徴の異なる組合せを有する実施形態、および説明された特徴のすべてを含まない実施形態もまた含む。それに応じて、本発明の範囲は、そのすべての等価物と一緒に特許請求の範囲内に入る、すべてのそのような代替形態、修正形態、および変形形態を採用するように意図される。したがって、上の説明は、付属の特許請求の範囲によって定義される本発明の範囲を限定するものとして取られるべきではない。
【図１】
0006321046.tif 000002
【図２】
0006321046.tif 000003
【図３】
0006321046.tif 000004
【図４】
0006321046.tif 000005
【図５】
0006321046.tif 000006
【図６】
0006321046.tif 000007
【図７】
0006321046.tif 000008