プロジェクションフレームワーク
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
プロジェクション フレームワークは、ソース データを表形式に変換するfluent APIであり、キーでデータをグループ化する機能も含まれています。プロジェクション フレームワークは、プロジェクション ワーカーのコンテキストで使用でき、プロジェクションされたデータはデフォルトでCortex Processing Storageデータベースに保存されます。
キー、属性、メジャー
プロジェクションには、少なくとも1つのキー、オプションの属性、およびオプションのメジャーが含まれます。
-
keyは、行を一意に識別し、ソース データのグループ化方法を決定します。複合キーがサポートされています。 ソースデータが連絡先のリストであると仮定すると、キーの例は次のとおりです。
-
連絡先ID。 このキーは連絡先ごとに一意であり、結果の行はグループ化されません。
-
役職と生年月日の組み合わせ。このキーは連絡先ごとに一意である可能性は低く、結果の行はグループ化されます。
-
-
attributeは、キーに関する追加データを表します。
-
キーが連絡先IDであることを考えると、その連絡先の合計エンゲージメント値を属性として出力できます。
-
キーが役職と生年月日の組み合わせである場合、平均初任給を属性として返すメソッドを呼び出すことができます。
-
-
measureは、計算を行うことができるキーのプロパティです。メジャーは、プロジェクションによってソース データ セットが削減される場合にのみ関連します。たとえば、役職別にグループ化された40件の取引先担当者のソース リストは、6行になる場合があります。このシナリオでは、次のことができます。
-
.Measure("Count", x => 1)を使用して、各役職を持つ連絡先の数を返します。
-
.Measure("YearsOfExperience", c => c.CareerFacet().YearsOfExperience)を使用して、各役職の連絡先で表される経験の合計年数を返します。
-
次の接触投影の例では、誕生年ごとに連絡先をグループ化し、メジャーと属性を含めています。
グループ化なしのプロジェクション
次のサンプル投影法は、連絡先IDで行をグループ化し、各連絡先の役職と識別子の数を出力します。
3つの接点のサンプル セットは、次の出力を生成します。
|
連絡先ID |
識別子カウント |
役職 |
|---|---|---|
|
A3102A8C-ED77-492B-B447-4B6A0DF3C412 |
3 |
プログラマーライター |
|
C35556DA-17DC-476A-98D5-56DF981E4529 |
2 |
ディベロッパー |
|
0600F5A2-4491-491E-B568-BE09A8D801FE |
5 |
ジュニア開発者 |
この例では、一意の連絡先IDをキーとして使用しており、データ セットは削減されていません。ソース・データ・セット内の連絡先の数と、投影されたテーブルの行数との間には1対1の関係があります。このようなシナリオでは、次のようになります。
-
Measure()は使用しないでください。ソース・データ・セット内のすべての連絡先IDは固有であり、データ・セットは削減されません。Measureを使用すると、不要なパフォーマンス オーバーヘッドが発生します。
プロジェクションに連絡先IDを含める場合は注意してください。コンタクトIDはxDB内のコンタクトを一意に識別し、コンタクトが忘れられる権利を実行しても削除されず、xDBの外部に保持されるべきではありません。投影されたデータは、設定可能な間隔でCortex Processing Storageデータベースから削除されます。
グループ化によるプロジェクション
次のサンプル プロジェクションでは、取引先担当者の出生年と役職で行をグループ化し、各行のカウントを出力します。
4つの誕生年と3つの役職にまたがる17の連絡先のサンプル セットは、次の出力を生成します。
|
誕生年 |
役職 |
数える |
年の経験 |
|---|---|---|---|
|
1987 |
プログラマーライター |
1 |
10 |
|
1987 |
ディベロッパー |
5 |
50 |
|
1972 |
ディベロッパー |
10 |
92 |
|
1990 |
ジュニア開発者 |
1 |
3 |
この例では、連絡先の生年月日と役職で構成される複合キーを使用しており、データセットが削減されています。このようなシナリオでは、次のようになります。
-
Measure()を使用してください。この例には、次のものが含まれます。
-
各グループ内の連絡先の数の合計。
-
グループによって表される実務経験の合計年数。
-