目次

Search

  1. はじめに
  2. パイプラインのパーティション化について
  3. パーティションポイント
  4. パーティションタイプ
  5. プッシュダウンの最適化
  6. プッシュダウンの最適化およびトランスフォーメーション
  7. リアルタイム処理
  8. コミットポイント
  9. 行エラーのロギング
  10. ワークフローリカバリ
  11. 停止と強制終了
  12. コンカレントワークフロー
  13. グリッド処理
  14. ロードバランサ
  15. ワークフロー変数
  16. セッションのパラメータおよび変数
  17. パラメータファイル
  18. FastExport
  19. 外部データのロード
  20. FTP
  21. セッションのキャッシュ
  22. 差分集計
  23. セッションログインタフェース
  24. バッファメモリについて
  25. 高精度データ

詳細ワークフローガイド

詳細ワークフローガイド

Integration Serviceおよびデータベースの出力の比較

Integration Serviceおよびデータベースの出力の比較

Integration Serviceとデータベースでは、同じトランスフォーメーションロジックを処理した場合でも、異なる結果になる場合があります。 データを読み込む際、Integration Serviceによって、データが別の形式に変換されることがあります。 Integration Serviceとデータベースは、NULL値、大文字と小文字の区別、ソート順を異なる方法で処理することがあります。
以下の設定と変換が異なる場合、データベースとIntegration Serviceとでは異なる出力が生成されます。
  • 最高値または最低値として取り扱われるNULL
    。 NULL値の取り扱い方は、Integration Serviceとデータベースとで異なる場合があります。たとえば、ソータトランスフォーメーションをOracleデータベースにプッシュしたいとします。セッションで、NULLをソート順の最低値として扱われるように設定します。Oracleの場合、NULL値がソート順の最高値として扱われます。
  • ソート順
    。 Integration Serviceとデータベースとで、使用されるソート順が異なる場合があります。例えば、セッション内のトランスフォーメーションを、大文字小文字を区別しないソート順を使用するように設定されたMicrosoft SQL Serverデータベースにプッシュしたいとします。大文字小文字を区別するバイナリソート順を使用するようにセッションプロパティを設定します。返される結果は、トランスフォーメーションロジックがIntegration ServiceまたはMicrosoft SQL Serverデータベースのどちらで処理されるかに応じて異なる可能性があります。
  • 大文字と小文字の区別。
    Integration Serviceとデータベースは、異なる方法で大文字と小文字の区別を扱うことがあります。 例えば、Integration Serviceでは大文字小文字が使用されるのに対し、データベースでは使用されません。フィルタトランスフォーメーションで使用されるフィルタ条件をIIF(col_varchar2 = ‘CA’, TRUE, FALSE)とします。‘CA’に一致する行を返すデータベースが必要です。’ ただし、大文字と小文字を区別しないMicrosoft SQL Serverデータベースにこのトランスフォーメーションロジックをプッシュする場合は、値「Ca」、「ca」、「cA」、および「CA」に一致する行が返されます。
  • 文字値に変換される数値
    。 同じ数値を文字値に変換するにしても、Integration Serviceとデータベースとで変換形式が異なる可能性があります。データベースでは、数値を許容できない文字形式に変換されてしまう可能性があります。たとえば、テーブルに数値1234567890が含まれているとします。Integration Serviceでこの数を文字値に変換した場合、文字「1234567890」が挿入されます。 ただし、この数はデータベースで、「1.2E9」に変換されます。 これら文字列の2つのセットは同じ値を示しています。ただし、文字に形式「1234567890」を用いる必要がある場合は、プッシュダウンの最適化を無効にすることができます。
  • 精度
    。 Integration Serviceとデータベースとで、特定のデータタイプの精度が異なる場合があります。 トランスフォーメーションデータ型によって、ネイティブデータ型とは異なる可能性があるデフォルトの数値精度が使用されます。例えば、トランスフォーメーションDecimalデータ型の精度は1~28です。 対応するTeradataのDecimalデータ型の精度は1~18です。 データベースで使用されている精度がIntegration Serviceとは異なる場合、結果が変わる可能性があります。