Hi, I'm Ask INFA!
What would you like to know?
ASK INFAPreview
Please to access Ask INFA.

目次

Search

  1. はじめに
  2. マッピング
  3. マッピングチュートリアル
  4. パラメータ
  5. CLAIREの推奨事項
  6. データカタログ検出

マッピング

マッピング

ソースパーティションのオーバーライド

ソースパーティションのオーバーライド

パラメータ化されたソース接続またはソースオブジェクトでパーティションを使用する場合は、パラメータファイルを使用してパーティションをオーバーライドできます。パーティションをオーバーライドするには、新しいパーティション設定を定義するJSONファイルを作成し、そのファイルをパラメータファイルで指定します。
フラットファイル接続とリレーショナル接続のパーティションをオーバーライドすることができます。
  1. マッピングで、ソース接続パラメータまたはソースオブジェクトパラメータのいずれかを実行時にオーバーライドできることを確認します。
  2. マッピングまたは
    マッピング
    タスクでデフォルトのパーティションを設定します。
  3. 新しいパーティション設定を定義するJSONファイルを作成します。ソーストランスフォーメーションごとに、次の構造を持つオブジェクトを追加します。
    { "name": "$<Source transformation name>$", "partitions": { <partition details> } }
    マップレット内のソーストランスフォーメーションのパーティションを設定する場合は、トランスフォーメーション名の前に
    Mapplet_
    を含めます。例:
    "name": "$Mapplet_MySource$"
  4. パーティション化の方法に基づいてパーティションの詳細を追加します。
    必要に応じて、パーティション化の方法をオーバーライドすることもできます。JSONファイルで設定するメソッドは、マッピングまたは
    マッピング
    タスクのメソッドと一致している必要はありません。
    • 固定パーティション化の場合は、次の形式でパーティションの数を定義します。
      "partitions": { "type": "PASS_THROUGH", "numOfPartitions": <number of partitions> }
    • キー範囲のパーティション化の場合は、ソーステーブル名、パーティションキーフィールド名、およびキー範囲を次の形式で指定します。
      "partitions": { "type": "KEY_RANGE", "tableName": "<source table name>", "columnName": "<partition key field name>", "ranges": [ { "start": <value A>, "end": <value B> } ] }
      開始値と終了値を持つ必要な数のオブジェクトを
      ranges
      配列に含めます。最初のキー範囲に未定義の最小値を使用するには、開始値を空の文字列に設定します。最後のキー範囲に未定義の最大値を使用するには、終了値を空の文字列に設定します。
    • パススルーパーティション化の場合は、それぞれのパーティションのSQLクエリまたはソースフィルタを次の形式で定義します。
      "partitions": { "type": "PASS_THROUGH_STRATEGY", "passThroughAttributes": [ [ { "name": <either "SQL Query" or "Source Filter">, "value": <query or filter string> } ] ] }
      必要な数のクエリまたはフィルタオブジェクトを
      passThroughAttributes
      配列に含めます。
    パーティション化の詳細については、『トランスフォーメーション
    』の「ソーストランスフォーメーション」の章にある「パーティション」を参照してください。
  5. JSONファイルをパラメータファイルと同じディレクトリに保存します。
  6. パラメータファイルで、次のパラメータと値を使用してJSONファイルを指定します。
    $$mtTaskOverride.path=FILE:<file name>
    パラメータファイルでセクションを使用する場合は、このパラメータをタスクセクションに追加します。このパラメータをグローバルセクション、タスクフローセクション、または線形タスクフローセクションで定義した場合、
    データ統合
    ではそのパラメータが無視されます。
  7. パーティション設定を変更する場合は、JSONファイルを更新します。
JSONファイルの例
次の例は、ソーストランスフォーメーション
Source1
の固定パーティションとソーストランスフォーメーション
Source2
のパススルーパーティションをオーバーライドするJSONファイルを示しています。
[ { "name": "$Source1$", "partitions": { "type": "PASS_THROUGH", "numOfPartitions": 3 } }, { "name": "$Source2$", "partitions": { "type": "PASS_THROUGH_STRATEGY", "passThroughAttributes": [ [ { "name": "SQL Query", "value": "SELECT * FROM DEPT_DATA WHERE DEPTNO>20" } ], [ { "name": "Source Filter", "value": "LOC='DALLAS'" } ], [ { "name": "SQL Query", "value": "SELECT * FROM DEPT_DATA WHERE DNAME='RESEARCH'" } ] ] } } ]