注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
インクリメンタル同期は、同じテーブルから追加型のトランザクションを可能にする状態同期です。以下の種類のインクリメンタル同期が提供されています。
以下の表は、どのインクリメンタルタイプがどのSAPオブジェクトタイプでサポートされているかを示しています。
オブジェクトタイプ | 単一フィールド | 複数フィールド | フィールドの連結 | 変更ドキュメントテーブルの使用 | ツインテーブルの使用 | SAP 組み込み | レプリケーション | リクエストベース | コンボ |
---|---|---|---|---|---|---|---|---|---|
テーブル | X | X | X | X | X | X | |||
リモートテーブル | X | X | X | X | X | X | |||
InfoProvider | X | X | X | ||||||
リモート InfoProvider | X | X | X | ||||||
SLT | X | ||||||||
エクストラクター | X |
同期定義の インクリメンタルフィールド プロパティは、インクリメンタル更新の管理に使用されます。最初の一括抽出後、変更された行のみがインクリメンタル更新ごとに抽出されます。複数フィールドタイプを使用する場合、フィールドのリストはカンマで区切られるべきです。
インクリメンタル更新機能を有効にするには、トランザクションタイプ を APPEND に設定してください。
理想的には、提供されるインクリメンタルフィールドは単調増加する値であるべきですが、そのようなフィールドを見つけることは常に可能ではありません。最良の選択肢は、日付フィールド(時間成分なし)かもしれません。このため、システムは "より大きいか等しい" 比較( "より大きい" だけではなく)を使用して、前回の同期が特定の日付の途中で実行された場合でもデータが省略されないようにします。
"より大きいか等しい" 比較の結果、Foundry の結果データセットに重複した値が現れる可能性があります。これらの重複した値は、Foundry のデータ変換パイプラインの最初のステップで削除する必要があります(例えば、主キーで重複する行をチェックすることによって)。
インクリメンタル更新は、BEx クエリや関数ではサポートされていません。すべての同期は完全な抽出になります。
SLT のインクリメンタル更新の詳細については、SLT の設定に関するドキュメントを参照してください。
この実験的な機能は、SAP の変更ドキュメントテーブル CDHDR と CDPOS を参照することによって動作します。このアプローチは、取り込むテーブルに明確な更新タイムスタンプフィールドや、その他の単調増加する値(例えば、一意の行ID)が存在しない場合に役立ちます。
SAP の一部のオブジェクトでは、変更ドキュメントテーブルに行の変更が含まれていますが、挿入は含まれていない場合があります。そのため、注意して進め、特定の使用ケースに対して期待される結果を達成するために、この機能を十分にテストすることをお勧めします。
この実験的な機能では、インクリメンタル更新のフィールド / 複数のフィールドを、Foundry にインポートするテーブルとは 異なる テーブルで指定できます。例えば、インポートする主要なテーブルが適切な更新タイムスタンプフィールドを持たないアイテムテーブルであるが、そのようなフィールドが存在し(そのフィールドがアイテムテーブルの変更が発生したときに更新される)ヘッダーテーブルがある場合に役立ちます。
この例では、初回ロードが成功した後、次回以降のリクエストでは、VBAK(ヘッダーテーブル)の UPD_TMSTMP フィールドが、最後の成功した同期からの最高の UPD_TMSTMP 値以上である場合に、VBAP からデータの行を抽出します。
インクリメンタルツインテーブル 設定は、使用するツインテーブルを示すために使用されます。
インクリメンタルツインマッピング 設定は、主要なテーブルとツインテーブルの間の結合条件を定義するために使用されます。構文は以下の通りです。
{PRIMARY_TABLE_NAME}-{FIELD_NAME}={TWIN_TABLE_NAME}-{FIELD_NAME} // {PRIMARY_TABLE_NAME}という名前の主テーブルの{FIELD_NAME}フィールドは、{TWIN_TABLE_NAME}という名前のツインテーブルの{FIELD_NAME}フィールドと等しい
セミコロンを使用して複数の結合条件を適用できます(AND 演算子を表します)。
SAP BW では、DSO と InfoCubes はデータ転送プロセス(DTP)を使用して読み込まれます。各 DTP はローディングリクエストを作成し、Palantir Foundry コネクタ 2.0 for SAP アプリケーションでは、これらのリクエストを使用して変更されたデータをキャプチャします。
この機能は、非圧縮リクエストに対してのみサポートされています。データが Foundry に転送される場合、リクエストを圧縮できます。リクエストが Foundry へのロード前に圧縮された場合、データ同期は失敗し、初期ロードを再度行う必要があります。
リクエストベースの増分取り込みのサンプル設定(同期設定の基本ビューからアドバンスビューに切り替える必要があります):
Copied!1 2 3 4
type: magritte-sap-source-adapter # タイプ: マグリット-SAPソースアダプター sapType: infoprovider # SAPタイプ: インフォプロバイダー obj: <technical-name-of-infoprovider> # オブジェクト: <インフォプロバイダーの技術名> incrementalType: REQUEST # インクリメンタルタイプ: リクエスト
初期ロードを強制することでインクリメンタル取込を再初期化するには、以下の手順を実行してください:
resetIncrementalState: true
を追加します。SNAPSHOT
に切り替えます(すべての incremental*
パラメーターが設定されたままであることを確認します)。resetIncrementalState: true
を削除します。APPEND
に戻します。次の同期が実行されると、通常通りインクリメンタル追加が行われます。