1

デビッド、この回答の結合についてあなたが言っていることについて明確にするようお願いできますか

「リレーショナル ストアの結合を使用して、1 つのエントリを複数のエントリに結合することはできません」と言うとき、それは任意の方向を意味しますか?

例: ストア 1:

| Key1 | Measure1 |

ストア 2:

| Key 1 | SomeId1 | Measure2 | Measure3 |
| Key 1 | SomeId2 | Measure4 | Measure4 |

では、ストア 2 からストア 1 にジョインを配置して、これら 2 つのストアを結合することはできませんか?

そうでない場合、これを管理する唯一の方法はストア 1 のエントリを複製することだとおっしゃっていますか? 例えば:

Store 1
| Key 1 | SomeId1 | Measure1 | Measure2 | Measure3 |
| Key 1 | SomeId2 | Measure1 | Measure4 | Measure4 |
4

1 に答える 1

1

1 対多の場合、方向は重要です。どのストアが「親」ストアであるかによって異なります。

リレーショナル ストアには、メイン ストア (スキーマのベースとなる) である "ActivePivot ストア" の概念が含まれています。次に、一連のキー フィールドを指定して、このストアを 1 つ以上のストアに結合できます。簡単にするために、これを「子」ストアと呼びます。これらの各子ストアは、最終的に他のストアと結合できます (有向グラフで表すことができます)。

尊重すべき主なルールは、複数の「子」ストア エントリに解決される「親」ストア エントリを持つべきではないということです (どちらも循環関係を持つべきではありません)。

リレーショナル ストアの背後にある単純化された考え方 (RS 1.5.x / AP 4.4.x の時点) は、1 つのエントリが「ActivePivot ストア」に送信されると、ActivePivot ストアから開始して、結合を再帰的に解決するというものです。結合された各ストアで最大 1 つのエントリを取得します。スキーマ定義に応じて、これらのエントリを使用して、ファクトをキューブに挿入する前に入力します。

結合を解決すると複数のエントリが生成される場合、AP はファクトを入力するために使用するエントリを選択できず、例外がスローされます。

例に戻ると、ストア 2 が ActivePivot ストアまたはストア 1 の「親」である場合にのみ、ストア 1 とストア 2 の間の結合を行うことができます (APStore->...->Store2->Store1)、あなたの場合のようです。

そうでない場合 (Store1->Store2)、結合を解決するときに常に最大で 1 つのエントリしか見つからないようにするために、Store 1 のエントリを複製する必要があります。ストア 1 は次のようになります。

| Key 1 | SomeId1 | Measure1 
| Key 1 | SomeId2 | Measure1 

Store 2 との結合は、「Key」だけでなく「Key、SomeId」フィールドで行われ、Store1->Store2 を解決するときに 1 つのエントリのみを見つけることが保証されます。

于 2013-04-09T16:29:25.797 に答える