目次

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. 高精度データ

詳細ワークフローガイド

詳細ワークフローガイド

プッシュダウンの最適化の関数に関するルールおよびガイドライン

プッシュダウンの最適化の関数に関するルールおよびガイドライン

データベースに関数をプッシュする際には、以下のルールおよびガイドラインを使用します。

リレーショナルデータベース

  • トランスフォーメーションロジック内でADD_TO_DATEを使用して日、時間、分、または秒を変更した場合、この関数をTeradataデータベースにプッシュできません。
  • LAST_DAY()をOracleにプッシュした場合、秒まで示された日付がOracleによって返されます。入力日付にサブ秒が含まれている場合、Oracleでは日付が秒にトリミングします。
  • LTRIM、RTRIM、またはSOUNDEXをデータベースにプッシュした場合、引数(' ')はそのデータベースではNULLとして扱われますが、PowerCenter統合サービスではスペースとして扱われます。
  • IBM DB2データベースとPowerCenter統合サービスでは、STDDEVおよびVARIANCEで結果が異なります。IBM DB2では、STDDEVおよびVARIANCEの計算に、データベース以外の異なったアルゴリズムが使用されます。
  • SYSDATEまたはSYSTIMESTAMPをデータベースにプッシュした場合、データベースサーバーによりタイムスタンプが、PowerCenter統合サービスでなく、データベースサーバーのタイムゾーンで返されます。
  • SYSTIMESTAMPをIBM DB2またはSybaseデータベースにプッシュし、SYSTIMESTAMPの形式を指定した場合、データベースではその形式は無視され、完全なタイムスタンプが返されます。
  • TO_DATE関数をIBM DB2データベースにプッシュするには、日付形式を「YYYYMMDD」のように指定します。

PowerExchange for Amazon Redshift

  • TRUNC(DATE)をAmazon Redshiftにプッシュするには、日付および形式引数を定義する必要があります。定義しないと、PowerCenter統合サービスはこの関数をAmazon Redshiftにプッシュしません。
  • Amazon Redshiftの集計関数が受け取る引数は1つだけで、それは集計関数のフィールドセットです。フィルタ条件引数は認められません。また、出力にマップされているすべてのポートが、GROUP BY句に指定されていることを確認します。
  • Amazon Redshiftの場合、TO_DATE()およびTO_CHAR()に文字列引数のみを定義すると、PowerCenter統合サービスでは、デフォルトの日付形式はセッションプロパティにあると解釈されます。セッションプロパティのデフォルトの日付形式はMM/DD/YYYY HH24:MI:SS.USです。
  • SYSTIMESTAMP()に形式を指定して、SYSTIMESTAMPをAmazon Redshiftにプッシュしないでください。Amazon Redshiftデータベースは完全なタイムスタンプを返します。
  • INSTR()をAmazon Redshiftにプッシュするには、文字列、search_value、および開始引数のみを定義します。Amazon Redshiftでは、オカレンスおよびcomparison_type引数はサポートされていません。
  • TO_BIGINTおよびTO_INTEGERをAmazon Redshiftにプッシュすると、フラグ引数は無視されます。
  • IN()をAmazon Redshiftにプッシュすると、CaseFlag引数は無視されます。
  • ADD_TO_DATE()関数の一部としてNS形式を使用する場合、PowerCenter統合サービスではこの関数がAmazon Redshiftにプッシュされません。
  • 次の形式のいずれかをTO_CHAR()およびTO_DATE()関数の一部として使用する場合、PowerCenter統合サービスではこれらの関数がAmazon Redshiftにプッシュされません。
    • NS
    • SSSS
    • SSSSS
    • RR
  • TRUNC(DATE)およびDATE_DIFF()をAmazon Redshiftにプッシュするには、次の形式を使用する必要があります。
    • D
    • HH24
    • MI
    • MM
    • MS
    • SS
    • US
    • YYYY
  • GET_DATE_PART()をAmazon Redshiftにプッシュするには、次の形式を使用する必要があります。
    • D
    • DDD
    • HH24
    • MI
    • MM
    • MS
    • SS
    • US
    • YYYY

PowerExchange for Netezza

  • SYSTIMESTAMP('SS')はNetezzaデータベースにプッシュできますが、SYSTIMESTAMP('MS')とSYSTIMESTAMP('US')はプッシュできません。
  • TO_CHAR(DATE)またはTO_DATE()をNetezzaにプッシュする場合、サブ秒精度の日付はYYYY-MM-DD HH24:MI:SS.US形式である必要があります。形式が異なる場合、PowerCenter統合サービスはこの関数をNetezzaにプッシュしません。

PowerExchange for Vertica

  • DATE_DIFF()関数の一部として以下の形式のいずれかを使用する場合、PowerCenter統合サービスは関数をVerticaにプッシュしません。
    • YYY
    • MON
    • MONTH
    • HH12
    • HH24
  • DATE_DIFF関数をVerticaにプッシュすると、Verticaは日付の差違値を最も近い整数に丸めます。ただし、PowerCenter統合サービスは、浮動小数点値を返します。例えば、最初のデータが2000-08-15で、2番目のデータが1997-08-16の場合、Verticaは、日付の差違値を3に丸めますが、PowerCenter統合サービスは2.99731182795699を返します。日付の差違値をVerticaデータベースで浮動小数点値として扱う場合は、プッシュダウンの最適化を無効にすることができます。
  • 形式にYを指定し、DATE_DIFF関数をVerticaにプッシュした場合、Verticaは日付の差違を日数で計算します。ただし、PowerCenter統合サービスは、差違を年数で計算します。差違値を年数で扱う場合は、プッシュダウンの最適化を無効にすることができます。

PowerExchange for Greenplum

  • TRUNC(DATE)をGreenplumにプッシュするには、次の形式を使用する必要があります。
    • YYYY
    • DD
    • DOY
    • HH
    • US
    • MS
    • MI
    • MM
    • SS

PowerExchange for Snowflake

  • TRUNC(DATE)関数またはTO_CHAR()関数をSnowflakeデータベースにプッシュするには、日付と形式の引数を定義する必要があります。
  • Snowflake集計関数は、引数を1つだけとります(集計関数のフィールドセット)。PowerCenter統合サービスは、引数に定義されたフィルタ条件を無視します。ターゲットにマップされているすべてのフィールドがGROUP BY句に指定されているようにします。
  • SYSTIMESTAMP()関数またはSYSDATE()関数をSnowflakeデータベースにプッシュするときには、どの形式も指定しないでください。Snowflaketデータベースは完全なタイムスタンプを返します。
  • 複数の引数を指定したTO_BIGINT()関数またはTO_INTEGER()関数をSnowflakeデータベースにプッシュすることはできません。
  • REPLACECHR()関数またはREPLACESTR()関数をSnowflakeデータベースにプッシュすると、PowerCenter統合サービスはcaseFlag引数を無視します。
    例えば、REPLACECHR(false, in_F_CHAR, 'a', 'b')引数とREPLACECHR(true, in_F_CHAR, 'a', 'b')引数のどちらも同じ値を返します。
  • 関数をSnowflakeデータベースにプッシュするときには、ミリ秒値とマイクロ秒値を使用できません。
  • ADD_TO_DATE()関数とTRUNC(DATE)関数では、ナノ秒値を使用できます。
  • TRUNC(DATE)、GET_DATE_PART()、DATE_DIFF()の各関数をSnowflakeデータベースにプッシュするには、以下の時刻形式を引数として使用する必要があります。
    • D
    • DDD
    • HH
    • MI
    • MM
    • SS
    • YYYY
    例えば、
    TRUNC(<datefieldname>, 'dd')
    日付と時刻に関する関数についての詳細は、次のウェブサイトを参照してください: https://docs.snowflake.net/manuals/sql-reference/functions-date-time.html#label-supported-date-time-parts