0 / 0
資料の 英語版 に戻る

DataStage の ELT 実行モード

最終更新: 2025年3月12日
DataStage の ELT 実行モード

DataStage® を抽出、ロード、および変換 (ELT) 実行モードで使用すると、ターゲット・データベースで SQL 照会をより効率的に実行できます。

ELT プロセスとは何ですか?

DataStage が使用する主なプロセスは、ETL (抽出、変換、およびロード) です。ETL (抽出、変換、およびロード) では、データがメモリーに読み込まれ、処理された後、ターゲットに書き込まれます。 DataStage では、すべてのジョブはデフォルトで ETL モードで実行されます。

抽出、ロード、および変換 (ELT) プロセスは、ソースからターゲット・データベースにデータを転送し、データベース自体に情報を準備します。 状況によっては、ELT プロセスを使用してターゲット・データベース内のデータを変換することをお勧めします。 例えば、特定のデータ・ソースまたはターゲットに既に存在する大規模なデータ・セットを変換する必要がある場合などです。

DataStageのELTのランモードは何ですか?

ELT モードでフローを実行するように DataStage をセットアップできます。 フローが ELT モードで実行されると、 DataStage は、フロー内の項目 (ステージやコネクターなど) を分析し、フローを ELT モードで実行できるかどうかを決定します。 以下のリストで、ELT 実行モードが有効になっている場合に可能なアクションについて説明します。
ELT モードなし
DataStage フローを SQL に変換できないと分析が判別した場合、ETL モードが使用され、 DataStage は PX ランタイム・エンジンでフローをコンパイルします。
ELT モード
DataStage フローを SQL に変換できると分析が判断した場合、ELT モードが使用され、 DataStage はフローを SQL にコンパイルします。
ETL と ELT の混合モード
DataStage フローを SQL に部分的にしか変換できないと分析が判断した場合は、必要に応じて ETL モードと ELT モードの両方が使用されます。

可用性

ELT 実行モードは、 DataStage Enterprise と DataStage Enterprise Plus の両方で使用できます。

サポートされるコネクター

ELT 実行モードでは、以下のコネクターがソースおよびターゲットとしてサポートされます。
  • Amazon RDS for PostgreSQL
  • Amazon Redshift
  • Google BigQuery
  • IBM Cloud® Databases for PostgreSQL
  • IBM Db2®
  • IBM Db2 for DataStage
  • IBM Db2 on Cloud
  • IBM® Db2 Warehouse
  • Oracle
  • PostgreSQL
  • Snowflake
  • Teradata
  • DataStage 用の Teradata データベース
  • watsonx.data
次の表に、ELT 実行モードでサポートされるコネクター、または ELT と ETL の混合でサポートされるコネクター、および適用される制限を示します。 混合モードで実行中としてリストされているコネクターの場合、ELT ではプロパティーのサブセットがサポートされます。 プロパティーが ELT をサポートしない場合、コンパイルは ETL にフォールバックします。 コンパイルして実行できたコンポーネントについては、 DataStage キャンバス・コンソールのログを参照してください。
表 1. ELT 実行モードまたは混合 ELT と ETL モードでの制限付きコネクター
コネクター モード 制限
Amazon Redshift 混合
  • サンプリング
    • ランダム・サンプリング・タイプはサポートされていません
    • サンプリング・パーセンテージはサポートされていません
    • サンプリング・シードはサポートされていません
  • Before/after SQL ステートメント
    • 「前」(node) と「後」(node) はサポートされていません
  • 書き込みモード
    • ロードはサポートされていません
    • UPDATE ステートメントはサポートされていません
  • 読み取りモード
    • SELECT ステートメントはサポートされていません
Google BigQuery ELT
  • 1 つの認証方式のみをサポートします。 アカウント・キー (完全な JSON スニペット)
  • マテリアライズ・ポリシーが 「ビューとしてリンク」 に設定されている場合、複合フローはネストされたビューの制限に達する可能性があります。
  • 一部の並列変換関数はサポートされていません。 トランスフォーマー・ステージの制限事項参照
IBM Db2 ELT
  • データ・ボリュームが大きいジョブは、エラー SQL0964C The transaction log for the database is full. で失敗する可能性があります。これを解決するには、データベース管理者がトランザクション・ログのサイズを増やすことができます。
  • 無効な日付が指定された場合に SQL のデータ変換関数が例外をスローする
  • 一部の並列変換関数はサポートされていません。 トランスフォーマー・ステージの制限事項参照
IBM Db2 最適化 ELT
  • デフォルトのスキーマ名はサポートされていません
    • 表名を指定する場合は、スキーマ名を SchemaName.TableName の形式で指定する必要があります。
Oracle ELT
  • 一部の並列変換関数はサポートされていません。 トランスフォーマー・ステージの制限事項参照

サポートされるステージ

次の表に、ELT 実行モードでサポートされるステージ、または ELT と ETL の混合でサポートされるステージ、および適用される制限を示します。 混合モードで実行中としてリストされているステージの場合、ELT ではプロパティーのサブセットがサポートされます。 プロパティーが ELT をサポートしない場合、コンパイルは ETL にフォールバックします。 コンパイルして実行できたコンポーネントについては、 DataStage キャンバス・コンソールのログを参照してください。
表 2. ELT 実行モードまたは混合 ELT と ETL モードでの制限付きステージ
ステージ モード 制限
Aggregator 混合
  • 集約タイプ:
    • 再計算はサポートされていません
  • 計算タイプ
    • 要約はサポートされていません
  • NLS ロケールおよび拡張プロパティーは無視されます
  • 丸めエラー処理のために、ETL モードと混合モードの間で 10 進数の小数部の構成要素にわずかな違いが生じることがあります。
コピー ELT
  • NLS ロケールおよび拡張プロパティーは無視されます
フィルター 混合
  • 述部 (where 節) はサポートされていません
  • ジョブ・パラメーター (where 節) はサポートされていません
  • 行を 1 回だけ出力
    • いいえ
  • リジェクトを出力
    • はい
  • NLS ロケールおよび拡張プロパティーは無視されます
Funnel ELT
  • NLS ロケールおよび拡張プロパティーは無視されます
結合 ELT
  • NLS ロケールおよび拡張プロパティーは無視されます
Lookup 混合
  • 制約条件:
    • すべての並列トランスフォーム関数がサポートされているわけではありません。
    • 関数IsValid,では、第一引数としてdecimal[x,y]だけがサポートされています。
    • ほとんどの機能は、 Google BigQuery および IBM Db2でサポートされています。 PostgreSQL および Snowflakeでは、以下の機能のみがサポートされます。

      • IsNull

      • IsNotNull

      • 比較

      • Abs

      • Acos

      • Asin

      • Atan

      • Atan2

      • Ceil

      • Cos

      • Cosh

      • Exp

      • Fabs

      • Floor

      • Llabs

      • Ln

      • Lg ( PostgreSQLのみ)

      • 最大

      • 最小

      • Mod

      • Neg

      • Pwr

      • Sin

      • Sinh

      • Sqrt

      • Tan

      • Tanh

      • AlNum

      • アルファ

      • LowerCase

      • UpperCase

      • 長さ

      • CompactWhiteSpace

      • StringNumConcatenate

      • 変更

      • CompareNoCase

      • CompareNum

      • CompareNumNoCase

      • DQuote

      • SQuote

      • Ereplace

      • FindReplace

      • 巻き戻し

      • Soundex ( Snowflakeのみ)

      • スペース

      • Str

      • StrCmp

      • StripWhitespace

      • トリム ( PostgreSQLのみ)

    • ルックアップの失敗「条件が満たされていません (Condition not met)」 を同じ値に設定する必要があります。
    • 失敗はサポートされていません
  • 範囲ルックアップは 1 次リンクと参照リンクの両方でサポートされていません。1 つのリンクでのみ範囲ルックアップを定義できます。
  • NLS ロケールおよび拡張プロパティーは無視されます
Remove Duplicates 混合
  • 現在は常に大/小文字を区別して重複を削除
  • 最初/最後を保持する重複はサポートされていません
  • NLS ロケールおよび拡張プロパティーは無視されます
Sort 混合
  • 大/小文字を区別しないソートはサポートされません
  • EBCDIC としてソートしない
  • キー変更列またはクラスター・キー変更列なし
  • 「ソートしない」は無視されます
  • 出力統計は無視されます
  • 継続的ソートは無視されます
  • ソート・ユーティリティー DataStage と Unix は両方とも通常のデータベース・ソートです。
  • NLS ロケールおよび拡張プロパティーは無視されます
Transformer 混合
  • ほとんどの機能は、Google BigQueryDb2Oracleでサポートされています。 以下の機能はサポートされていません:
    • ForceError
    • GetEnvironment
    • GetNumOfPartitions
    • GetPartitionNum
    • GetSavedInputRecord
    • NextSKChain
    • NextSurrogateKey
    • PrevSKChain
    • PrintMessage
    • PrintWarning
    • SaveInputRecord
    • SendCustomInstanceReport
    • SetCustomMetadataInfo
    • SendCustomReport
    • SetCustomSummaryInfo
    • SetUserStatus
  • ループ変数はサポートされていません
  • サロゲート・キーはサポートされていません
  • トリガー (ルーチン) はサポートされていません
  • 拡張ヌル処理設定はサポートされていません。
    • レガシーな NULL 処理
    • 未処理の NULL で異常終了

制限

ELT 実行モードには、以下の制限が適用されます。
  • ランタイム列伝搬が有効になっているフローはサポートされません。
  • 表のアクションが CREATE または REPLACE の場合、暗黙的なデータ切り捨ては実行されません。

ELT 実行モードの有効化

DataStageでELTのランモードを有効にする:
  1. DataStage フローを開きます。
  2. ツールバーの設定アイコン「設定アイコンのイメージ」をクリックします。
  3. 「実行」 タブをクリックします。
  4. 「抽出、ロード、変換 (ELT)」をクリックします。 次に、「保存」をクリックします。

マテリアライズ・ポリシーの選択

マテリアライズ・ポリシーを選択して、照会処理を定義します。 以下のオプションが選択可能です。
ネストされた SQL の生成
出力モデル (ターゲット表) のみがマテリアライズされます。 各出力モデルは、入力ノードから出力へのすべての変換を含む単一の照会によって表されます。
表としてリンク
すべての統合フロー・リンクは表としてマテリアライズされます。 これらの表は一時的なものであり、ターゲット表が作成されると削除されます。
ビューとしてリンク
すべての統合フロー・リンクは、ビューとしてマテリアライズされます。 これらのビューは一時的なものであり、ターゲット表が作成されると削除されます。
拡張
カーディナリティー・チェンジャーは表としてマテリアライズされます。 カーディナリティー・チェンジャーは、ルックアップ、結合、およびアグリゲーターなどのステージに基づいて接続されたノードのサブセットです。 これらのノードは、より効率的に構築し、反復計算を回避することで、リソースを節約するために結合されます。

ELT 実行モードのデータベース・コネクター権限の設定

ELT モードが正常に実行されるようにするには、 DataStage ELT プロセスで使用するデータベース・コネクターに対して特定の許可を設定する必要があります。 すべてのデータベース・コネクターに対して以下の許可を設定する必要があります。
  • SELECT ステートメントからのビューの作成
  • ビューの除去
  • SELECT ステートメントからの表の作成
  • テーブルのドロップ
  • NULL 制約および主キーを追加するための表の変更

コネクターがカスタム SQL ステートメントを使用して構成されている場合、カスタム SQL ステートメントで使用される SQL 操作には追加の許可が必要です。

許可は、 DataStage および Cloud Pak for Dataの有効範囲外のデータベース管理者によって、対応するデータベース内で設定される必要があります。

dsjob コマンドを使用したコンパイル

コマンド行を使用して、 DataStage フローをコンパイルできます。
cpdctl dsjob compile --project <project name> --enable-elt-mode

DataStage フローには、以下の 4 つのオブジェクトが含まれています。
  • PostgreSQL データ・ソース
  • Sort ステージ
  • Filter ステージ
  • PostgreSQL データ・ターゲット

ELT モードを有効にするには、実行設定を開いて選択します。

ジョブが正常にコンパイルされると、コンパイル・ログに「full pushdown」というメッセージが 1 つ表示されます。 このメッセージは、フロー全体が ELT モードでコンパイルされたことを示します。

ジョブを実行します。 ジョブの実行中に、 PostgreSQL ソース・データは、ソートとフィルタリングを適用する SQL ステートメントを使用して変換されます。 結果は、 PostgreSQL ターゲット・コネクターで定義された表として保持されます。

ジョブ実行が終了し、変換されたすべてのデータがターゲット・データベースに保持されます。