パーティションをマージする場合のファクト テーブルに関する注意点
パーティションをマージする場合、両方のパーティションのフィルタが OR で結合され、結果パーティションのフィルタが作成されます。結合されたフィルタは、結果パーティションで使用されるファクトのセットを指定します。マージ元パーティションとマージ先パーティションがデータ ソースまたはデータ ソース ビューで同じファクト テーブルを使用している場合、結合されたフィルタでは、結果パーティションに適したファクト テーブル データが指定されます。結果パーティションに必要なファクトはファクト テーブル内に存在するので、それ以上の操作は必要ありません。
パーティションをマージするとき、ファクト テーブルは自動的にはマージされません。マージされるパーティションが複数のファクト テーブルを持つ場合、ファクト テーブルを手動でマージする必要があります。複数のファクト テーブルを使用するパーティションをマージすると、結果パーティションはマージ先パーティションの元のファクト テーブルのみを参照します。マージ元パーティションのファクト テーブルのファクトは、マージ先パーティションのファクト テーブルに手動でマージする必要があります。または、マージされたパーティションのソースを、2 つの別個のファクト テーブルの内容を返す名前付きクエリに変更することもできます。この操作を行わないと、ファクト テーブルに含まれる情報が完全になりません。
マージされたパーティションがデータ ソース ビューの 2 つの異なる名前付きクエリに基づいている場合は、結合されたパーティションの基になっている名前付きクエリを変更し、個々の名前付きクエリが返す行をすべて含める必要があります。
MOLAP パーティション
多次元 OLAP (MOLAP) パーティションをマージすると、パーティションの多次元構造に格納されているファクトもマージされます。これにより、内部的に完全で矛盾のないパーティションが作成されます。ただし、MOLAP パーティションに格納されるファクトは、ファクト テーブル内のファクトのコピーです。パーティションに対して処理が行われると、多次元構造内のファクトは削除され (完全と更新のみ)、パーティションのデータ ソースとフィルタの指定に従って、ファクト テーブルからデータがコピーされます。マージ元パーティションで使用されるファクト テーブルがマージ先パーティションのものと異なる場合、マージ元パーティションのファクト テーブルをマージ先パーティションのファクト テーブルに手動でマージして、結果パーティションが処理されるときにデータの完全なセットを利用できるようにしてください。これは、2 つのパーティションが、それぞれ異なる名前付きクエリに基づいている場合にも適用されます。
注意 |
---|
マージされた MOLAP パーティションに不完全なファクト テーブルが含まれている場合、パーティションには内部的にマージされたファクト テーブル データのコピーが含まれているので、そのパーティションが処理されるまでは正常に動作します。 |
HOLAP パーティションと MOLAP パーティション
複数のファクト テーブルを持つハイブリッド OLAP (HOLAP) パーティションやリレーショナル OLAP (ROLAP) パーティションをマージする場合、ファクト テーブルは自動的にはマージされません。ファクト テーブルを手動でマージしない場合、結果パーティションではマージ先パーティションに関連付けられたファクト テーブルのみを利用できます。マージ元パーティションに関連付けられたファクトは、結果パーティションのドリル ダウンでは利用できません。また、パーティションが処理されると、集計処理では、利用できないテーブルのデータを集約しなくなります。
重要 |
---|
マージされた HOLAP パーティションや ROLAP パーティションが不完全なファクト テーブルを持っていると、そこに含まれる集計は正確ですが、ファクトは不完全になります。欠落したファクトを参照するクエリは、不正確なデータを返します。パーティションが処理されると、集計は利用可能なファクトからのみ計算されます。 |
利用できないテーブル内のファクトにドリル ダウンしたり、利用できないテーブルのファクトを必要とするクエリを実行しない限り、利用できないファクトの欠落に気が付かない場合があります。集計はマージ処理の間に結合されるので、結果が集計のみに基づくクエリでは正確なデータが返されますが、それ以外のクエリでは不正確なデータが返される可能性があります。結果パーティションが処理された後でも、特に利用できないファクト テーブルによるデータ欠落が、結合されたデータに占める割合が小さい場合は、気が付かないことがあります。
ファクト テーブルは、パーティションのマージの前または後にマージできます。ただし、両方のマージ処理が完了しないと、集計ではその基になるファクトが正確に表されません。複数のファクト テーブルにアクセスする HOLAP パーティションや ROLAP パーティションの場合は、これらのパーティションを含むキューブに接続しているユーザーがいない間にマージを行うことをお勧めします。
キューブのデータ ソース ビューに名前付きクエリを作成し、2 つの異なるファクト テーブルが、結合された内容を返すようにすることもできます。次に、マージされたパーティションのソースを変更し、この名前付きクエリを参照するようにします。