目次

Search

  1. はじめに
  2. Informatica Data Engineering Integrationについて
  3. マッピング
  4. マッピングの最適化
  5. ソース
  6. ターゲット
  7. トランスフォーメーション
  8. Pythonトランスフォーメーション
  9. データプレビュー
  10. クラスタワークフロー
  11. プロファイル
  12. 監視
  13. 階層データ処理
  14. 階層データ処理設定
  15. スキーマが変更された階層データの処理
  16. インテリジェント構造モデル
  17. ブロックチェーン
  18. ステートフルコンピューティング
  19. 付録 A: 接続リファレンス
  20. 付録 B: データ型リファレンス
  21. 付録 C: 関数リファレンス

Sparkエンジンでのアップデートストラテジトランスフォーメーション

Sparkエンジンでのアップデートストラテジトランスフォーメーション

Sparkエンジンの処理ルールには、データ統合サービスの処理ルールと異なるものがあります。

Hiveターゲットの一般的な制限

Hive ACIDをサポートするHadoopディストリビューションで、アップデートストラテジトランスフォーメーションを使用できます。
アップデートストラテジトランスフォーメーションを使用して、マッピングの結果をJDBC準拠のリレーショナルターゲットに書き込むこともできます。
アップデートストラテジトランスフォーメーションは、ターゲットがHiveテーブルまたはJDBC準拠のテーブルであるときは、拒否された行を次のトランスフォーメーションに転送しません。
アップデートストラテジトランスフォーメーションが、同じプライマリキー値に対して複数の行の更新を受け取った場合、トランスフォーメーションは1つのランダムな行を選択してターゲットを更新します。
複数のアップデートストラテジトランスフォーメーションが、同じターゲットの異なるインスタンスに書き込む場合、ターゲットデータが予測できなくなる場合があります。
Sparkエンジンでマッピングを実行する場合、Hive Mergeを使用するオプションを選択できます。このオプションには、次の制限事項があります。
  • 削除または更新対象の単一行は、ターゲットの複数行と一致させることはできない。マッピングがこの制限に違反すると、マッピングはランタイムエラーで失敗する。
  • アップデートストラテジトランスフォーメーションでパーティション化カラムまたはバケット化カラムを更新するよう設定すると、マッピングでHive MERGEオプションが無視され、カラムは更新されない。
Developer toolとデータ統合サービスは、これらの制限に対して検証を行いません。式またはマッピングがこれらの制限事項に違反している場合、マッピングが実行される可能性はありますが、期待どおりの結果にはなりません。
Hiveターゲットは、更新を常に更新操作として実行します。Hiveターゲットは、[更新しない場合は挿入]または[挿入時に更新]をサポートしません。

アップデートストラテジ式での階層データの使用

複合データフィールドでプリミティブ型を使用するように式を設定できます。
例えば、次のようなステートメントで定義された構造データ型のネストされた配列があるとします。
addresses array<struct<city:varchar(15), apartment:smallint, pincode:int>>
これは次の式を使用するプリミティブ型であるため、アップデートストラテジ式で市区町村カラムを使用できます。
IIF( (addresses[0].city = ’NEW YORK’), DD_INSERT, DD_UPDATE)

マッピング検証

更新方式トランスフォーメーションの出力フィールドは、ターゲットの入力フィールドと完全に一致する必要があります。
マッピング検証は、次の場合に失敗します。
  • アップデートストラテジトランスフォーメーションが、複数のターゲットに接続されている。
  • アップデートストラテジトランスフォーメーションが、ターゲットの直前に配置されていない。
  • アップデートストラテジトランスフォーメーションのターゲットが外部のACIDテーブルである。
  • ターゲットに接続されたプライマリキーが含まれていない。
  • 実行時にターゲットテーブルの切り捨てを有効にするプロパティが選択されている。
  • 実行時のターゲットテーブルに対して、次のターゲットストラテジのいずれかが選択されている。
    • ターゲットテーブルの作成または置換
    • ApplyNewColumns
    • ApplyNewSchema
    • 失敗
ターゲットがHiveターゲットのとき、マッピングは次の場合に失敗します。
  • ターゲットテーブルがトランザクションに対して有効化されていない。
  • ターゲットがORCバケット化されていない。

Hiveターゲットテーブルの使用

アップデートストラテジトランスフォーメーションと一緒にHiveターゲットテーブルを使用するには、Hiveのデータ定義言語の句
TBLPROPERTIES ("transactional"="true")
を使用して、Hiveターゲットテーブルを作成する必要があります。
Hiveターゲットと一緒にアップデートストラテジトランスフォーメーションを使用するには、Hadoop接続に関連付けられたhive-site.xml設定セットに次のプロパティが設定されていることを確認します。
hive.support.concurrency true hive.enforce.bucketing true hive.exec.dynamic.partition.mode nonstrict hive.txn.manager org.apache.hadoop.hive.ql.lockmgr.DbTxnManager hive.compactor.initiator.on true hive.compactor.worker.threads 1