処理と集計

Current version: 10.1

Content Delivery (CD) ロールがエクスペリエンス データを収集し、それらのデータが Sitecore Experience Database (xDB) に保存されます。xDB では、これらのデータを分析とレポートおよびマーケティング オートメーションで使用するためにほぼリアルタイムのデータ処理も行われます。

ライブ集計

xDB は、データが送信されたとき、またはオンデマンドでデータを処理します。これにより、収集されたデータが継続的に集計され、エクスペリエンス アナリティクスによる実用的な洞察の取得やレポートの作成、または外部のビジネス インテリジェンス ツールでそれらのデータを利用できるようになります。

xConnect Collection から公開されている単一のエンドポイントを内部および外部の信頼できるシステムにプラグインし、ある特定のコンタクトについて収集または更新されたデータに反応できます。たとえば、Sitecore ソリューションで GDPR またはプライバシー要件を遵守するため、システムは忘れられる権利を行使でき、xConnect のプラグインはこれを受けて周囲のシステムに当該コンタクトを消去するよう通知できます。

集計の通常のプロセス。

プラグインの概念は、収集中のデータの集計にも使用されます。これをライブ集計と呼びます。

たとえば、Content Delivery セッションが終了すると、xConnect Collection ロールにインタラクションが送信され、xConnect のライブ集計プラグインがこれに反応します。ライブ集計プラグインは、xDB Processing Pools database にレコードを保存し、新しいインタラクションの処理方法に関する情報を xDB Processing アプリケーションに中継します。

ライブ集計のプロセス。

xDB Processing は、xDB Processing Pools database を継続的にポーリングし、最近追加された集計タスクをプルして集計プロセスを開始します。

処理中に、xDB Processing は xConnect Collection ロールから新しいインタラクションを取得し、他のソース (たとえば、Reference Data service) から集計に必要な追加データをプルします。

最後に、集計が完了すると、結果のデータが xDB Reporting database に保存されます。

セカンダリ reporting データベース

Sitecore の新しいバージョンをデプロイした後、または現行のソリューションを拡張して新しいレポート ディメンションまたはデータセットを追加する場合は、xDB 内のすべてのインタラクションを再処理する必要があります。このプロセスのことを履歴集計と呼びます。

履歴集計を有効にするには、追加のセカンダリ xDB Reporting database を設定する必要があります。

セカンダリ reporting データベースのロール。

セカンダリ xDB Reporting database を xDB Processing ロールにアタッチすると、プライマリとセカンダリの両方の xDB Reporting database にすべてのライブ集計データが格納されます。

注記

セカンダリ xDB Reporting database は、履歴再集計を実行しない場合は追加しないでください。セカンダリ データベースを追加すると、プライマリとセカンダリの両方の xDB Reporting database への書き込みが必要になり、システムの全体的な負荷が増加します。

履歴集計

管理者は、Sitecore 管理インターフェイスから履歴再集計プロセスを開始できます。そうすると、Content Management (CM) ロールによって xDB Processing ロール上の処理操作がトリガーされます。

まず、セカンダリ xDB Reporting database 内のすべてのデータが消去され、xDB Processing Tasks database に履歴再集計タスクが作成されます。続いて、xDB Processing ロールが xDB Collection database からデータを抽出してインタラクション セット全体の列挙子を取得します。

履歴集計のプロセス。

ある特定のインタラクションの集計が失敗した場合、そのインタラクションは xDB Processing Pools database に追加され、履歴再集計プロセスの最後に集計が再試行されます。

xConnect Collection ロールを通じて新しいインタラクションが到着した場合、ライブ集計プロセスによってそれらがプライマリ データベースとセカンダリ データベースの両方に書き込まれます。そのため、履歴集計プロセス中に xConnect に送信された新しいインタラクションが失われることはありません。

注記

Sitecore Experience Database 内の過去のすべてのインタラクションを処理すると、リソースに大きな負荷がかかる可能性があります。システムの酷使を避けるため、xDB Processing ロールを水平方向にスケーリングして集計タスクを複数のサーバーとスレッドに分割できます。

開始元の xDB Processing ロールが、xDB Processing Tasks database 内のデータセットをいくつかの部分に分割し、データセットの各部分 (「カーソル」とも呼ばれます) を各 xDB Processing ロールの処理ワーカーまたはスレッドに割り当てます。

各処理ワーカーは xConnect Collection ロールからインタラクション データを取得し、他のソース (たとえば、Reference Data service) から集計に必要な追加データをプルします。

集計が完了したとき、新しく集計されたデータはセカンダリ xDB Reporting database に格納されています。ただし、プライマリ xDB Reporting database は常にレポート、洞察、分析アプリケーションから利用されているため、システム管理者がセカンダリとプライマリの xDB Reporting database を切り替えて新しいデータを使用可能にする必要があります。データベースを手動で切り替えるには通常、接続文字列を更新します。

分散処理

xDB Processing ロールによって処理される最後の処理タイプは、分散処理です。

分散処理を使用すると、システムが xDB データ処理タスクをスケジュールし、それらのタスクを他のデータベースに分散させることができます。たとえば、Path アナライザーは分散処理操作を使用してインタラクションを処理し、集約されたトラフィック マップを保存します。

分散処理操作は、xDB Processing API を使用して (たとえば、xDB Processing ロールで実行されるスケジュールされたタスクを通じて) キューに入れることができます。

分散処理タスクがトリガーされると、xDB Processing Tasks database にタスク レコードが作成されます。xDB Processing ロールは、xDB Collection database からデータを抽出して目的のエンティティのセット (インタラクションやコンタクトなど) の列挙子を取得します。対象のデータセットは時間範囲に基づいて限定できます。次に、このデータセットが xDB Processing Tasks database 内でいくつかの部分 (カーソル) に分割されます。カーソルは、各 xDB Processing ロールのスレッドごとに 1 つずつ存在します。

分散処理のプロセス。

すべての xDB Processing ロールでカスタム ロジックが実行されてエンティティが処理されます。この処理の間、他のシステムで保存または処理するために、処理済みのデータがカスタム処理ロジックから継続的に送信されます。たとえば、Path アナライザーの特定の集約データは、xDB Reporting database の個別のテーブルに保存されます。

他のシステムで保存または処理するために、処理済みのデータが継続的に送信されます。

プライバシーとセキュリティ

処理および集計データ フローにおける各ロールのプライバシーとセキュリティに関する考慮事項については、「アーキテクチャとロール」のドキュメントを参照してください。

Do you have some feedback for us?

If you have suggestions for improving this article,