バッチ集計の概要

Version:
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

Sitecore Experience Database (xDB) では、集計プロセスによってMongoDBコレクション データベースからのライブ データまたは履歴データがグループ化および削減され、SQL Serverレポート データベースとSitecoreレポート アプリケーションで使用できるようになります。スケーラブルなxDBアーキテクチャでは、通常、集約は1つ以上の専用集約サーバーで実行されます。

処理サーバーを集約用に構成する場合、同時に実行するエージェントまたはスレッドの数を指定できます。バッチ集計を使用すると、インタラクションをバッチにグループ化して、集計処理フレームワークのパフォーマンスとスループットを向上させることができます。

バッチ処理:

  • SQL Serverリソースをより最適に活用します。

  • より少ないSQL Serverトランザクションでより多くのインタラクションを処理します。

  • 既存の集約フレームワークのパフォーマンスを向上させることができます。

  • ネットワークトラフィックを削減できます。

  • つまり、相互作用を処理するために必要なデータベース入出力操作が少なくて済みます。

xDBでは、バッチ集計は標準のSitecoreインストールの一部として提供されます。1つのバッチで処理できるインタラクションのデフォルト数は、各トランザクションで行あたりのコストと実行時間が短くなるように設定されています。ただし、解決策は異なる場合があり、独自の要件に合わせてバッチ集計設定を構成する必要がある場合があります。

MaximumBatchSize設定では、各バッチで処理されるインタラクションのデフォルト数を変更でき、この設定をライブコレクションまたは履歴コレクションに個別に適用できます。

メモ

設定ファイルを直接変更するのではなく、実行時に必要な変更を実行する独自のカスタム設定パッチファイルを作成してください。

バッチ集計コンポーネント

バッチ集計を使用する場合、ソリューションのパフォーマンスを向上させるために変更できる設定を含むいくつかのコンポーネントがあります。

バッチ集計エージェント

バッチ集約エージェントは、ライブインタラクションを処理するために定期的に実行するようにスケジュールできるバックグラウンドサービスです。実行されるたびに、コレクション データベースからインタラクションのバッチが収集され、バッチ アグリゲーターを介して実行されます。アグリゲーターは、完了すると、処理した各インタラクションを完了としてマークし、失敗したインタラクションを再スケジュールします。

バッチ集約エージェントは、Sitecore.Analytics.Processing.Aggregation.Services.configファイルを使用して構成できます。

次の例は、デフォルトのバッチ集約設定を示しています。

  <sitecore>
    <aggregation>
      <aggregator type="Sitecore.Analytics.Aggregation.InteractionBatchAggregationAgent,   
         Sitecore.Analytics.Aggregation">
        <Context ref="aggregation/aggregationContexts/interaction/live" />
        <DateTimeStrategy ref="aggregation/dateTimePrecisionStrategy" />
        <Aggregator type="Sitecore.Analytics.Aggregation.InteractionBatchAggregator,
         Sitecore.Analytics.Aggregation" singleInstance="true">
          <MultiplexingTimeout>0.00:00:01</MultiplexingTimeout>
        </Aggregator>
        <MaximumBatchSize>64</MaximumBatchSize>
      </aggregator>
    <aggregation>
  <sitecore>

バッチ集約エージェントの構成ファイルで、次の設定を変更できます。

構成ノード

形容

Context

集計するデータのパスまたは場所、および結果を保存する場所を指定します。

Aggregator

インタラクションの処理に使用するバッチアグリゲーターを指定します。

MaximumBatchSize

1つのバッチに含めるインタラクションの最大数を指定します。

バッチ アグリゲーター

バッチアグリゲーターは、一度に1つ以上のインタラクションを取得し、バッチ内のインタラクションごとに集計パイプラインを実行し、集約されたデータをより大きなデータセットに結合します。結合されたデータセットは、レポートデータベースに保存されます。

マルチプレクサ

マルチプレクサは、個々の集計スレッドを1つのバッチまたはデータセットに結合することで、レポート・データベースに対する要求の数を減らし、レポート・データベースに効率的に保存できます。これにより、ネットワーク経由で送信されるトラフィックの量を大幅に削減できます。

MultiplexingTimeout構成設定を使用すると、マルチプレクサーがデータ セットを保存する前に他のバッチ アグリゲーターを待機する最大時間を指定できます。

Microsoft SQL Serverレポート ストレージ プロバイダーは、集計データ セットのバッチの格納をサポートするようになり、その堅牢性が向上しました。これは、1つのトランザクションで大規模なデータ セットを保存すると同時に、システム リソースの使用を最小限に抑えるように最適化されています。

歴史の労働者

履歴ワーカー エージェントを使用すると、レポート データベースを再構築でき、バッチ集計のサポートも付属しています。

履歴ワーカーエージェントは、Sitecore.Analytics.Processing.Aggregation.Services.configファイルを使用して構成できます。

これには、バッチ集約ライブエージェントと同じパラメーター ( MultiplexingTimeoutMaximumBatchSize) が含まれています。

次の例は、履歴ワーカーのデフォルト設定を示しています。

      <!-- Configure the historyWorker agent: -->
      <historyWorker 
       type="Sitecore.Analytics.Aggregation.Data.Processing.InteractionBatchHistoryWorker,  
        Sitecore.Analytics.Aggregation">
        <HistoryTaskManager ref="aggregation/historyTaskManager" />
        <DateTimePrecisionStrategy ref="aggregation/dateTimePrecisionStrategy"/>
        <CollectionData ref="aggregation/collectionData" />
        <AggregationContext ref="aggregation/aggregationContexts/interaction/history" />
        <Aggregator type="Sitecore.Analytics.Aggregation.InteractionBatchAggregator, 
         Sitecore.Analytics.Aggregation" singleInstance="true">
          <MultiplexingTimeout>0.00:00:01</MultiplexingTimeout>
        </Aggregator>
        <MaximumBatchSize>64</MaximumBatchSize>
      </historyWorker>
この記事を改善するための提案がある場合は、 お知らせください!