バッチ集計の構成

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

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

バッチ集計 を使用すると、インタラクションをバッチにグループ化して、集計処理フレームワークのパフォーマンスを向上させることができます。Sitecore Experience Database (xDB) では、バッチ集計は標準インストールの一部ですが、特定のハードウェアとソリューション アーキテクチャに応じてデフォルト設定を変更することもできます。バッチ集計構成のパフォーマンスは、このトピック のパフォーマンス カウンター を使用してテストできます。

次の場合は、デフォルトのバッチ集約設定を変更する必要があります。

  • バッチ集計のパフォーマンスをソリューションに合わせて改善します。

  • バッチ集計を有効にして、独自のカスタム集計を使用します。

デフォルトのバッチ集計設定を変更するには、Sitecore.Analytics.Processing.Aggregation.Services.configファイルを編集する必要があります。

メモ

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

バッチ集計構成設定

次の設定を使用すると、バッチ集計の設定を調整して、集計処理中のSitecoreソリューションのパフォーマンスを向上させることができます。

構成ノード

説明と例

MaximumBatchSize

MaximumBatchSize設定を使用すると、1つのバッチに含めるインタラクションの最大数を制御できます。

この設定は、個々のSitecoreソリューションのパフォーマンスに応じて調整します。最大バッチ・サイズを設定する際には、以下の点を考慮してください。

- 所有しているSQL Serverディスクの数。

- 処理能力(プロセッサの種類と数)。

- ネットワーク遅延。

- 集約/処理サーバーの特定の構成。

デフォルト設定は64インタラクションです。

<MaximumBatchSize>64</MaximumBatchSize>

MultiplexingTimeout

多重化は、コミットの直前に複数の集計スレッドを1つのトランザクションに折りたたむことで、処理を高速化し、SQL Serverの負荷を軽減します。

多重化タイムアウト設定を使用すると、マルチプレクサが並列に実行される集約エージェントを待機してから、データ セットをレポート データベースに格納できる最大時間を指定できます。

値を1秒 (デフォルト値) に設定すると、集約エージェントによって生成された結合結果を毎秒保存するようにシステムに指示されます。

デフォルト設定は1秒です。

<MultiplexingTimeout>0.00:00:01</MultiplexingTimeout>

Aggregator

バッチ アグリゲーターの標準実装を独自のカスタム実装に置き換えます。

<Aggregator>
  <MultiplexingTimeout>0.00:00:01</MultiplexingTimeout>
</Aggregator>

テーブル値パラメータ (TVP)

Sitecoreは、テーブル値パラメーター (TVP) を使用して、集計された情報をSQLサーバーに送信します。

テーブル値パラメータの使用方法については、Microsoftの記事「 テーブル値パラメータの使用 (データベース エンジン)」を参照してください。

TVPを使用すると、SQL Serverとの通信が高速になります。これにより、コレクション データベースのデータをグループ化した後で、テーブルをパラメータとして関数またはストアド プロシージャに渡すことができます。TVPの使用はオプションであり、ファクト テーブルとディメンション テーブルごとに個別に実装されます。

Sitecore設定ファイルのSQLテーブル マッピングには、TVPをサポートするための次のプロパティがあります。

SQLテーブル・マッピングは、Sitecore.Analytics.Processing.Aggregation.configファイルで定義/sitecore/aggregation/routines/ExecRoutineStatementBuilder/mappingsパスにあります。

TVPをサポートするカスタム集計を作成することをお勧めします。これを行うようにSitecoreを設定する方法については、例を参照してください。

構成パッチ・ファイルの例

次の例をカスタマイズして、デフォルトのバッチ集計構成を変更できます。

例1: デフォルトの構成設定を変更する

これは、デフォルトのバッチ集約設定ファイルの設定を変更するために使用できる設定パッチファイルの例です。ライブアグリゲーターと履歴アグリゲーターの両方のMaximumBatchSizeMultiplexingTimeoutInterval 、およびMaxThreadsパラメーターを変更する方法を示します。

<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
  <sitecore>
    <aggregation>
      <!-- Configure the aggregator agent: -->
      <aggregator>
        <Aggregator>
          <MultiplexingTimeout>0.00:00:01</MultiplexingTimeout>
        </Aggregator>
        <MaximumBatchSize>128</MaximumBatchSize>
      </aggregator>
      <!-- Configure the historyWorker agent: -->
      <historyWorker>
        <Aggregator>
          <MultiplexingTimeout>0.00:00:01</MultiplexingTimeout>
        </Aggregator>
        <MaximumBatchSize>128</MaximumBatchSize>
      </historyWorker>
      <!-- Aggregation Module: -->
      <module type="Sitecore.Analytics.Aggregation.AggregationModule">
        <BackgroundServices>
          <aggregator>
            <Interval>0.00:00:15</Interval>
            <MaxThreads18791275782<11879127578/MaxThreads>
          </aggregator>
          <history>
            <Interval>0.00:00:15</Interval>
            <MaxThreads18791275782<11879127578/MaxThreads>
          </history>
        </BackgroundServices>
      </module>
  </sitecore>
</configuration>

例2: カスタム集計のTVPサポートの有効化

これは、カスタム集計でバッチ集計を機能させるための独自の設定ファイルを作成するために使用できるコード サンプルです。これは、対話のためにカスタム プロセッサを集計パイプラインに統合する方法と、SQL Server TVPをサポートするカスタム ファクト テーブルのマッピングを構成する方法を示しています。

<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
  <sitecore>
    <aggregation>
      <routines>
        <ExecRoutineStatementBuilder>
          <mappings>
            <!-- Reference to the fact table and associated stored procedure and table type -->
            <SqlMappingEntity uid="MyCustomFact" 
               type="Sitecore.Analytics.Aggregation.SqlMappingEntity, Sitecore.Analytics.Sql">
              <Table>Fact_CustomFact</Table>
              <Routine>Add_CustomFact_Tvp</Routine>
              <IsMultiRow>True</IsMultiRow>
              <TableType>CustomFact_Type</TableType>
            </SqlMappingEntity>
          </mappings>
        </ExecRoutineStatementBuilder>
      </routines>
    </aggregation>
    <pipelines>
      <group groupName="analytics.aggregation">
        <pipelines>
          <interactions>
            <!-- Registration of the processor that will write to the new fact table -->
            <processor uid="MyCustomFact" type="Customization.CustomProcessor, Customization" />
          </interactions>
        </pipelines>
      </group>
    </pipelines>
  </sitecore>
</configuration>

バッチ集計パフォーマンス カウンター

バッチ集計処理構成のパフォーマンスを調整する場合、または集計プロセスを監視およびトラブルシューティングする場合は、次のカウンターを使用してパフォーマンスを測定できます。

カウンター

形容

平均バッチサイズ – ライブ

ライブ集計中に処理された各バッチに含まれるインタラクションの平均数を表示します。

平均バッチサイズ – 履歴

履歴集約中に処理された各バッチに含まれるインタラクションの平均数を表示します。通常の操作では、このカウンタは、履歴集約がアクティブである間、ほとんどの時間でMaxBatchSizeと等しくなります。

失敗したアイテムを含むバッチの数 – ライブ

レポートデータベースへの集計または保存に失敗したインタラクションを含むライブ集計バッチの数(秒あたり)を表示します。通常の操作では、このカウンタは常に0です。

失敗したアイテムを含むバッチの数 – 履歴

レポートデータベースへの集計または保存に失敗したインタラクションを含む履歴集計バッチの数(秒あたり)を表示します。通常の操作では、このカウンタは常に0です。

平均書き込み時間 – ライブ

ライブ集計中にバッチがレポート データベースに保存されるのにかかる時間 (ミリ秒単位) が表示されます。設定された多重化タイムアウトより大きい数値は、ボトルネックを示します。

この記事を改善するための提案がある場合は、 お知らせください!