ルックアップキャッシングの有効化 マッピングでルックアップトランスフォーメーションを設定すると、ランタイムセッション中にルックアップデータをキャッシュできます。
[ルックアップキャッシュの有効化] を選択にすると、データ統合はルックアップソースを一度クエリし、セッション中に使用する値をキャッシュします。これにより、パフォーマンスを向上できます。キャッシュされたルックアップを保存するディレクトリを指定できます。動的ルックアップキャッシュおよび永続ルックアップキャッシュを設定できます。
ルックアップキャッシュの詳細については、データ統合ドキュメントの「トランスフォーメーション 」にある、ルックアップトランスフォーメーションに関する章を参照してください。
動的ルックアップキャッシュには、次のような制限があります。
• 動的ルックアップキャッシュを設定する際は、[複数一致] プロパティを[エラーを報告] に設定します。プロパティをリセットするには、動的ルックアップを静的ルックアップに変更し、プロパティを変更してから静的ルックアップを動的ルックアップに変更します。すべてのルックアップフィールドがマッピングされていることを確認します。• 動的ルックアップのルックアップ条件は、等しい演算子のみを使用します。• SQL ELTの最適化は適用されません。• 動的ルックアップキャッシュを使用するように設定されているルックアップトランスフォーメーションをパラメータ化することはできません。ORDER BY句とWHERE句の使用 Secure AgentのJVMオプションで-DENABLE_SORTED_INPUT_FOR_LKP=true プロパティを設定し、詳細ルックアッププロパティで[ソート済みの入力] オプションを有効にすると、キャッシュされた接続済みおよび未接続のルックアップのクエリでORDER BY句を使用できます。
ORDER BY句を使用する場合は、次のガイドラインを考慮してください。
• すべての行または任意の行を返すようにルックアップ条件を設定する場合は、ルックアップフィールドをORDER BY文に含めます。• 最初の行または最後の行を返すようにルックアップ条件を設定する場合は、ターゲットにマッピングされたフィールドをORDER BY文に追加で含めます。 キャッシュされていない接続ルックアップを使用してSnowflakeからの読み取りと書き込みを行い、データにNULL値がある場合は、Secure AgentのJVMオプションで-DENABLE_NULL_FLAG_FOR_UNCACHED_LOOKUP=true プロパティを設定して、SQL文にWHERE句を含めます。
キャッシュを使用しないルックアップクエリのロギング キャッシュを有効にすると、データ統合はルックアップソースへのクエリを1回実行し、その結果をキャッシュしてセッション中に使用します。キャッシュを無効にすると、行がトランスフォーメーションに渡されるたびに、SELECT文がルックアップ値を受け取ります。
データ統合は、接続されたルックアップと未接続のルックアップのキャッシュを使用しないルックアップクエリをセッションログに記録します。マッピングで[ルックアップキャッシュを有効にする] プロパティを有効にしてから、Snowflake Data CloudマッピングタスクでVerboseモードを有効にします。
次の図は、マッピングタスクで選択されたVerboseモードを示しています。
マッピングを実行すると、データ統合はキャッシュを使用しないルックアップクエリをセッションログに記録します。