過去のデータ:
- GRP や CPP などの履歴情報を含むアクティビティごとに複数のテーブルがあります。
- アクティビティごとに GRP と CPP が定義されている複数のディメンションがあります。
ディメンション - Geography、TimePeriod、Primary_Message - 各アクティビティには、これらのディメンションのサブセットが含まれる場合があります
例
Activity1 {Geography, TimePeriod, GRP, CPP}
Activity2 {TimePeriod, GRP, CPP}
Activity3 {Primary_Message, TimePeriod, GRP, CPP}
使用事例:
すべての活動について、期間全体のデータを表示したい場合があります (このディメンションはすべての活動で使用できます)。
地理的にデータを表示したい場合があります (このディメンションはいくつかのアクティビティに存在します)。
すべてのユースケースが効率的に機能するように RDD を設計する必要があります。
どの時点でも、各ジョブは 1 つのアクティビティに対応します。
私には2つの選択肢があります -
アクティビティごとに 1 つの RDD を作成し、そのテーブルのディメンション間で分割します。したがって、アクティビティと同じ数の RDD があります。
ジョブごとに、特定の RDD にアクセスして計算しますすべてのアクティビティに対して 1 つの RDD を作成し、いくつかのディメンションでそれを分割し
ます。ジョブごとに、1 つの大きな RDD にアクセスし、アクティビティの RDD でフィルターを実行し、計算を行います。
私の質問は、ユースケースと仮定を考慮して、RDD を設計するのにどのオプションがより効率的かということです。
ティア!