レプリケーションメソッドの設定
Replication
メソッドと 再チェックを使用して、データベーステーブル内の新しいデータや更新されたデータを識別します。 これらを正しく設定することは、データの精度と最適な更新時間の両方を確保するために重要です。 このトピックでは、レプリケーション方法に焦点を当てます。
Data Warehouseマネージャーで新しいテーブルが同期されると、テーブルに対してレプリケーション方法が自動的に選択されます。 様々なレプリケーション方法、テーブルの編成方法、テーブルデータの動作について理解しておくと、テーブルに最適なレプリケーション方法を選択できます。
レプリケーション方法を教えてください。
Replication
のメソッドは、Incremental
、Full Table
、Paused
の 3 つのグループに分類されます。
つまり、Commerce Intelligence Incremental Replication レプリケーションを試行するたびに、新しいデータまたは更新されたデータのみをレプリケートします。 これらの方法で待ち時間が大幅に短縮されるので、Adobeでは可能な限りこれを使用することをお勧めします。
つまり、Commerce Intelligence Full Table Replication レプリケーションを試行するたびに、テーブルのコンテンツ全体をレプリケートします。 レプリケートされるデータは大量になる可能性があるので、これらの方法によって待ち時間と更新時間が長くなる場合があります。 テーブルにタイムスタンプ付きまたは日時の列が含まれる場合、Adobeでは、代わりに増分処理メソッドを使用することをお勧めします。
Paused は、テーブルのレプリケーションが停止または一時停止されていることを示します。 Commerce Intelligence は、更新サイクル中に新しいデータまたは更新されたデータをチェックしません。つまり、レプリケーション方法としてこれを持つテーブルからデータがレプリケートされることはありません。
増分レプリケーション方法 incremental
変更日時(最も理想的)
Modified At
レプリケーションメソッドでは、datetime 列を使用して、レプリケートするデータを検索します。この列は、行が作成されると入力され、データが変更されると更新されます。 この方法は、次の条件を満たすテーブルを操作するように設計されています。
- 行の作成時に最初に入力され、行が変更されるたびに更新される
datetime
列が含まれます。 datetime
列は null ではありません。- 行はテーブルから削除されません
これらの条件に加えて、Adobeでは、Modified At
レプリケーションに使用する datetime
列 インデックス作成 をお勧めします。これにより、レプリケーション速度を最適化できます。
更新を実行すると、最新の更新後に発生した datetime
列の値を持つ行を検索することで、新しいデータまたは変更されたデータが識別されます。 新しい行が検出されると、それらがData Warehouseにレプリケートされます。 データベース マネージャに行が存在する場合、その行は現在のData Warehouseの値で上書きされます。
例えば、テーブルには、データが最後に変更されたことを示す modified\_at
という列がある場合があります。 最新の更新が正午に火曜日に実行された場合、更新では正午に火曜日より modified\_at
い値を持つすべての行が検索されます。 火曜日の正午から作成または変更された検出された行はすべて、Data Warehouseにレプリケートされます。
ご存じでしたか?
現在データベースが Incremental
レプリケーション方式をサポートしていない場合でも、Modified At
または Single Auto Incrementing PK
を使用できるように データベースに変更を加えることができます。
Modified At
れは、最も理想的なレプリケーション方法であるだけでなく、最速のレプリケーション方法でもあります。 この方法は、大きなデータセットで顕著な速度の増加を引き起こすだけでなく、再チェックオプションを設定する必要もありません。 他のメソッドは、データの小さなサブセットが変更された場合でも、変更を特定するためにテーブル全体を反復処理する必要があります。 Modified At
は、その小さなサブセットのみを反復処理します。
1 つの自動増分プライマリキー
ローにプライマリ・キーを順番に割り当てる動作が Auto Incrementing
ります。 テーブルが Auto Incrementing
で、テーブルの最上位のプライマリ・キーが 1,000 の場合、次のプライマリ値は 1,001 以上になります。 Auto Incrementing
の動作を使用しないテーブルでは、1,000 未満のプライマリキー値が割り当てられたり、はるかに大きな数にジャンプしたりすることがありますが、これは一般的には使用されません。
この方法は、次の条件を満たすテーブルから新しいデータをレプリケートするように設計されています。
single-column primary key
および- デ
primary key
タタイプがinteger
である。 - プライマリキーの値を
auto incrementing
します。
テーブルで Single Auto Incrementing Primary Key
レプリケーションを使用している場合、Data Warehouseで現在の最大値より大きいプライマリ・キー値を検索することで、新しいデータが検出されます。 例えば、Data Warehouseの最上位のプライマリキー値が 500 の場合、次の更新の実行時に、プライマリキー値が 501 以上の行が検索されます。
日付を追加
Add Date
メソッドは、Single Auto Incrementing Primary Key
メソッドと同様に機能します。 このメソッドは、テーブルのプライマリ・キーに整数を使用する代わりに、新しいローをチェックするために timestamped
カラムを使用します。
テーブルで Add Date
レプリケーションを使用する場合、Data Warehouseに同期された最新の日付よりも大きいタイムスタンプ付き値を検索することで、新しいデータが検出されます。 例えば、更新が 2015 年 20 月 12 日 09:00:00 に最後に実行された場合、タイムスタンプがこの値より大きい行は新しいデータとしてマークされ、レプリケートされます。
Modified At
メソッドとは異なり、Add Date
は既存の行をチェックして更新された情報を確認せず、新しい行のみを参照します。フルテーブルのレプリケーションメソッド fulltable
フル テーブル
新しい行 Full table
検出されるたびに、レプリケーションによってテーブル全体が更新されます。 これは、新しい行があると仮定して、すべてのデータを更新時に再処理する必要があるため、最も効率的なレプリケーション方法ではありません。
同期処理の開始時にデータベースに対してクエリを実行し、行数をカウントすることで、新しい行が検出されます。 ローカルデータベースに Commerce Intelligence を超える行が含まれている場合は、テーブルが更新されます。 行数が同じ場合、またはローがローカル・データベースよりも 多く 含まれ Commerce Intelligence 場合、テーブルはスキップされます。
これは、次の場合に Full Table
レプリケーションに互換性がないという重要な点を生み出します。
- 後続の更新サイクルの間に、ローカルデータベーステーブルで作成された行よりも多くの行が削除される。
- 列の値は変更されますが、行は追加されません
上記のいずれのシナリオでも、レプリケーション Full Table
は変更が検出されず、データが古くなります。 このレプリケーション方法は非効率であり、上記の要件があるので、Full Table
のレプリケーションは最後の手段としてのみ推奨されます。
プライマリキーバッチ
テーブルで Primary Key Batch
(PK バッチ)を使用する場合、プライマリキー値の範囲(バッチ)内の行をカウントすることで、新しいデータが検出されます。 通常、これは整数で使用されると考えられますが、テキスト値でも、システムが定数範囲を定義できる方法で並べ替えることができます。
例えば、更新が実行され、1 から 100 のキーの範囲に対して行数が計算されるとします。 この更新では、システムは 37 行を検索してログに記録します。 次の更新では、1 ~ 100 の範囲で行数が再び実行され、41 行が検索されます。 最後の更新と比較すると行数に違いがあるので、システムはその範囲(またはバッチ)をより詳細に調べます。
この方法は、次の条件を満たすテーブルからデータをレプリケートすることを目的としています。
- 単一カラムの整数以外、または
- 複合キー(プライマリキーを構成する複数の列) – 複合プライマリキーで使用される列に null 値を指定することはできません。
- 単一カラム、整数、プライマリ・キー値を自動増分しない。
バッチを調査して変更を見つけるために発生する必要がある処理の量が原因で非常に遅いので、この方法は理想的ではありません。 Adobeでは、他のレプリケーション方式をサポートするために必要な変更を加えることが不可能な場合を除き、この方式を使用しないことをお勧めします。 このメソッドを使用する必要がある場合は、更新時間が長くなることが予想されます。
レプリケーションメソッドの設定
レプリケーション方法はテーブル単位で設定されます。 テーブルのレプリケーション方式を設定するには、Data Warehouseマネージャにアクセスできる Admin
権限が必要です。
-
Data Warehouseマネージャーで、
Synced Tables
リストからテーブルを選択し、テーブルのスキーマを表示します。 -
現在のレプリケーション方法がテーブル名の下に表示されます。 変更するには、リンクをクリックします。
-
表示されるポップアップで、
Incremental
またはFull Table
レプリケーションの横にあるラジオボタンをクリックし、レプリケーションタイプを選択します。 -
次に、「Replication Method」ドロップダウンをクリックして、メソッドを選択します。 例えば、
Paused
やModified At
です。note note NOTE 増分処理メソッドの中には、 Replication Key
を設定しなければならないものがあります。 Commerce Intelligence のキーを使用して、次回の更新サイクルを開始する場所を決定します。例えば、 orders
テーブルにmodified at
メソッドを使用する場合、レプリケーションキーとしてdate column
を設定する必要があります。 レプリケーションキーには複数のオプションが存在する場合がありますが、created at
または順序が作成された時刻を選択します。 最後の更新サイクルが 2015 年 12 月 1 日(PT) 00:10:00 で停止した場合、次のサイクルでは、created at
の日付がこの日付より大きいデータのレプリケーションが開始されます。 -
終了したら、「Save」をクリックします。
プロセス全体を見てみましょう。
まとめ
最後に、さまざまなレプリケーション方法を比較するこのテーブルを作成しました。 Data Warehouse内のテーブルのメソッドを選ぶ際に非常に便利です。
Method
Syncing New Data
Processing Rechecks on Large Data Sets
Handle Composite Keys?
Handle Non-Integer PKs?
Handle Non-Sequential PK Population?
Handle Row Deletion?
Auto-Incrementing Primary Key
Primary Key Batch Monitoring
Modified At