次の方法で共有


コピー アクティビティで Teradata を構成する (プレビュー)

この記事では、データ パイプラインでコピー アクティビティを使用して Teradata との間でデータをコピーする方法について説明します。

サポートされている構成

コピー アクティビティの下の各タブの構成については、それぞれ次のセクションを参照してください。

全般

[ 全般 ] タブの構成については、[ 全般] に移動します。

情報源

ヒント

データのパーティション分割を使用して Teradata からデータを効率的に読み込む方法の詳細については、「Teradata からの並列コピー」セクションを参照してください。

コピー アクティビティの [ ソース ] タブの Teradata では、次のプロパティがサポートされています。

[ソース] タブとプロパティのリストを示すスクリーンショット。

次のプロパティは必須です。

  • 接続: 接続リストから Teradata 接続を選択します。 接続が存在しない場合は、新しい Teradata 接続を作成します。

  • クエリを使用する: テーブル またはクエリを選択 します

    • [テーブル] を選択した場合:

      • テーブル: データを読み取る Teradata 内のテーブルの名前を指定します。 ドロップダウン リストからテーブルを選択するか、手動 で Enter キーを押してスキーマとテーブル名を入力します。
    • [クエリ] を選択した場合:

      • クエリ: データを読み取るカスタム SQL クエリを指定します。

        クエリを示すスクリーンショット。

[詳細設定] では、次のフィールドを指定できます。

  • パーティション オプション: Teradata からデータを読み込むのに使用するデータパーティション分割オプションを指定します。 許可する値は、 なし (既定値)、 DynamicRangeHash です。 パーティション オプションが有効になっている場合 (つまり、 Noneではなく)、Teradata から同時にデータを読み込む並列処理の次数は、[コピー アクティビティの設定] タブ のコピー並列処理の次数 によって制御されます。

    • なし: パーティションを使用しない場合は、この設定を選択します。

    • ダイナミック レンジ: 並列が有効なクエリを使用する場合は、範囲パーティション パラメーター (?DfDynamicRangePartitionCondition) が必要です。 サンプル クエリ: SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition

      • パーティション列名: 並列コピーの範囲パーティション分割で使用されるソース列の名前 整数型または date/date time 型 (intsmallintbigintdatesmalldatetimedatetimedatetime2、または datetimeoffset) で指定します。 指定しない場合、テーブルのインデックスまたは主キーが自動検出され、パーティション列として使用されます。

      • パーティションの上限: パーティション範囲分割のパーティション列の最大値を指定します。 この値は、テーブル内の行をフィルター処理するためではなく、パーティションのストライドを決定するために使用されます。 テーブルまたはクエリ結果のすべての行がパーティション分割され、コピーされます。

      • パーティションの下限: パーティション範囲分割のパーティション列の最小値を指定します。 この値は、テーブル内の行をフィルター処理するためではなく、パーティションのストライドを決定するために使用されます。 テーブルまたはクエリ結果のすべての行がパーティション分割され、コピーされます。

        ダイナミック レンジを示すスクリーンショット。

    • ハッシュ: 並列が有効なクエリを使用する場合は、ハッシュ パーティション パラメーター (?AdfHashPartitionCondition) が必要です。 サンプル クエリ: select * from <TableName> where ?AdfHashPartitionCondition

      • パーティション列名: 並列コピーの範囲パーティション分割で使用されるソース列の名前 整数型または date/date time 型 (intsmallintbigintdatesmalldatetimedatetimedatetime2、または datetimeoffset) で指定します。 指定しない場合、テーブルのインデックスまたは主キーが自動検出され、パーティション列として使用されます。

        ハッシュを示すスクリーンショット。

  • 追加の列: ソース ファイルの相対パスまたは静的な値を格納するデータ列を追加します。 エクスプレッションは後者に対応しています。

行き先

コピー アクティビティの [宛先 ] タブの Teradata では、次のプロパティがサポートされています。

移動先タブを示すスクリーンショット。

次のプロパティは必須です。

  • 接続: 接続リストから Teradata 接続を選択します。 接続が存在しない場合は、新しい Teradata 接続を作成します。

  • テーブル: データを書き込む Teradata 内のテーブルの名前を指定します。 ドロップダウン リストからテーブルを選択するか、手動 で Enter キーを押してスキーマとテーブル名を入力します。

[詳細設定] では、次のフィールドを指定できます。

  • 追加の Teradata 形式オプション: COPY ステートメントでデータを読み込むための追加の形式オプションを指定します。 例 :DATE_FORMAT、TIME_FORMAT、TIMESTAMP_FORMAT。 詳細については、「 Teradata DATE 形式」を参照してください。 このプロパティは、DelimitedText 形式のソースから Teradata への直接コピーでのみ機能します。

Teradata への直接コピー

ソース データ ストアと形式がこのセクションで説明する条件を満たしている場合は、コピー アクティビティを使用してソースから Teradata に直接コピーできます。 次の条件が満たされていない場合は、サービスが設定をチェックして、Copy アクティビティの実行は失敗します。

  • ソース接続は、アカウント キーShared Access Signature 認証を使用した Azure Blob StorageAzure Data Lake Storage Gen2 です。

  • ソース データ形式ParquetDelimitedText で、次の構成があります。

    • Parquet 形式の場合、圧縮コーデックは None または Snappy です

    • DelimitedText 形式の場合:

      • rowDelimiter\nです。
      • compression圧縮なしまたはgzipのどちらかを指定できます。 gzip 圧縮が選択されている場合、ファイルは拡張子.gzで終わる必要があります。
      • encodingName は既定値のままにするか、 UTF-8 に設定します。
      • quoteChar二重引用符"または空の文字列です。
      • escapeChar二重引用符"または空の文字列です。
      • nullValueNull または 空の文字列です。
  • Copy アクティビティ ソース内:

    • Azure Data Lake Storage Gen2 を使用する場合は、静的パスのみが許可されます。
    • Azure Blob Storage を使用する場合は、静的パスと prefix のみが許可されます。

    静的パスは、Teradata にコピーされるときにプレフィックスとして機能します。

Teradata への準備されたコピー

前のセクションで説明したように、ソース データ ストアまたは形式が Teradata COPY コマンドとネイティブに互換性がない場合は、中間 Azure Blob Storage インスタンスを使用して組み込みのステージング コピーを有効にします。 ステージング コピー機能はスループットも優れています。 サービスは、Teradata のデータ形式の要件を満たすようにデータを自動的に変換します。 その後、COPY コマンドを呼び出して、Teradata にデータを読み込みます。 最後に、BLOB ストレージから一時データをクリーンアップします。

この機能を使用するには、Azure ストレージ アカウントを中間ステージングとして参照する Azure Blob Storage 接続 を作成します。 次に、コピー アクティビティに enableStaging プロパティと stagingSettings プロパティを指定します。

ステージング Azure Blob Storage 接続では、Teradata COPY コマンドで必要に応じて 、アカウント キー または Shared Access Signature 認証を使用する必要があります。

地図作成

[マッピング] タブの構成については、「[マッピング] タブでマッピングを構成する」を参照してください。

設定

設定 タブの構成については、設定タブのの下で他の設定を構成するに移動します。

Teradata からの並列コピー

Teradata コネクタは、Teradata からデータを並列でコピーするために、組み込みのデータ パーティション分割を提供します。 データ パーティション分割オプションは、コピー アクティビティの [ソース] テーブルにあります。

パーティション分割されたコピーを有効にすると、サービスによって Teradata ソースに対する並列クエリが実行され、パーティションごとにデータが読み込まれます。 並列度は、[コピー アクティビティの設定] タブ の [コピーの並列処理の次数 ] によって制御されます。たとえば、 コピーの並列処理の次数 を 4 に設定すると、サービスは、指定したパーティション オプションと設定に基づいて 4 つのクエリを同時に生成して実行し、各クエリは Teradata からデータの一部を取得します。

特に、Teradata から大量のデータを読み込む場合は、データのパーティション分割を使用した並列コピーを有効にすることをお勧めします。 さまざまなシナリオで推奨される構成を次に示します。 ファイル ベースのデータ ストアにデータをコピーする場合は、フォルダーに複数のファイルとして書き込む (フォルダー名のみを指定する) ことをお勧めします。この場合、パフォーマンスは 1 つのファイルに書き込むよりも優れています。

シナリオ 推奨される設定
大きなテーブル全体を読み込む。 パーティション オプション: Hash。

実行中に、サービスによって自動的にプライマリ インデックス列が検出され、それにハッシュが適用されて、データがパーティションごとにコピーされます。
カスタム クエリを使用して大量のデータを読み込む。 パーティション オプション: Hash。
クエリ: SELECT * FROM <TABLENAME> WHERE ?AdfHashPartitionCondition AND <your_additional_where_clause>.
パーティション列: ハッシュ パーティションの適用に使用される列を指定します。 指定しない場合、Teradata データで指定したテーブルの PK 列が自動的に検出されます。

実行中に、サービスによって ?AdfHashPartitionCondition がハッシュ パーティション ロジックに置き換えられ、Teradata に送信されます。
カスタム クエリを使用して大量のデータを読み込む (範囲パーティション分割のために値が均等に分散されている整数列がある場合)。 パーティション オプション: ダイナミック レンジ パーティション。
クエリ: SELECT * FROM <TABLENAME> WHERE ?AdfRangePartitionColumnName <= ?AdfRangePartitionUpbound AND ?AdfRangePartitionColumnName >= ?AdfRangePartitionLowbound AND <your_additional_where_clause>.
パーティション列の: データのパーティション分割に使用する列を指定します。 整数データ型の列に対してパーティション分割を実行できます。
パーティションの上限パーティションの下限: パーティション列に対してフィルター処理を実行して、下限から上限までの範囲内のデータのみを取得する場合に指定します。

実行中に、サービスによって ?AdfRangePartitionColumnName?AdfRangePartitionUpbound?AdfRangePartitionLowbound が各パーティションの実際の列名および値の範囲に置き換えられ、Teradata に送信されます。
たとえば、パーティション列 "ID" で下限が 1、上限が 80 に設定され、並列コピーが 4 に設定されている場合、サービスは 4 つのパーティションでデータを取得します。 これらの ID の範囲はそれぞれ [1, 20]、[21, 40]、[41, 60]、[61, 80] です。

例: ハッシュ パーティションを使用してクエリを実行する

"source": {
    "type": "TeradataSource",
    "query": "SELECT * FROM <TABLENAME> WHERE ?AdfHashPartitionCondition AND <your_additional_where_clause>",
    "partitionOption": "Hash",
    "partitionSettings": {
        "partitionColumnName": "<hash_partition_column_name>"
    }
}

例: 動的範囲パーティションを使用してクエリを実行する

"source": {
    "type": "TeradataSource",
    "query": "SELECT * FROM <TABLENAME> WHERE ?AdfRangePartitionColumnName <= ?AdfRangePartitionUpbound AND ?AdfRangePartitionColumnName >= ?AdfRangePartitionLowbound AND <your_additional_where_clause>",
    "partitionOption": "DynamicRange",
    "partitionSettings": {
        "partitionColumnName": "<dynamic_range_partition_column_name>",
        "partitionUpperBound": "<upper_value_of_partition_column>",
        "partitionLowerBound": "<lower_value_of_partition_column>"
    }
}

表の概要

次の表に、Teradata のコピー アクティビティの詳細を示します。

ソース情報

名前 説明 価値 必須 JSON スクリプト プロパティ
接続 ソース データ ストアへの接続。 < 実際の Teradata 接続 > イエス connection
クエリ を使用する Teradata からデータを読み取る方法。 テーブルを適用して指定したテーブルからデータを読み取るか、クエリを使用してデータを読み取るためにクエリを適用します。 テーブル
クエリ
いいえ /
テーブルの場合
スキーマ名 スキーマの名前。 < あなたのスキーマ名 > いいえ スキーマ
テーブル名 テーブルの名前。 < あなたのテーブル名 > いいえ table
クエリの場合
クエリ カスタム SQL クエリを使用してデータを読み取ります。 < SQL クエリ > いいえ 問い合わせ
パーティション オプション Teradata からデータを読み込むのに使用されるデータパーティション分割オプション。 なし
ダイナミック レンジ
ハッシュ
いいえ /
ダイナミック レンジの場合
パーティション列名 並列コピーの範囲パーティション分割で使用される、ソース列の名前を 整数型または date/datetime 型 (intsmallintbigintdatesmalldatetimedatetimedatetime2、または datetimeoffset) で指定します。
指定しない場合、テーブルのインデックスまたは主キーが自動検出され、パーティション列として使用されます。
< 実際のパーティション列の名前 > いいえ パーティションカラム名
パーティションの上限 パーティション範囲分割のパーティション列の最大値を指定します。 この値は、テーブル内の行をフィルター処理するためではなく、パーティションのストライドを決定するために使用されます。 テーブルまたはクエリ結果のすべての行がパーティション分割され、コピーされます。 < 実際のパーティションの上限> いいえ partitionUpperBound
パーティションの下限 パーティション範囲分割のパーティション列の最小値を指定します。 この値は、テーブル内の行をフィルター処理するためではなく、パーティションのストライドを決定するために使用されます。 テーブルまたはクエリ結果のすべての行がパーティション分割され、コピーされます。 < ユーザーのパーティションの下限 > いいえ partitionLowerBound
ハッシュの場合
パーティション列名 並列コピーの範囲パーティション分割で使用される、ソース列の名前を 整数型または date/datetime 型 (intsmallintbigintdatesmalldatetimedatetimedatetime2、または datetimeoffset) で指定します。
指定しない場合、テーブルのインデックスまたは主キーが自動検出され、パーティション列として使用されます。
< 実際のパーティション列の名前 > いいえ パーティションカラム名
追加の列 ソース ファイルの相対パスまたは静的値を格納するデータ列を追加します。 エクスプレッションは後者に対応しています。 •名前
• 価値
いいえ additionalColumns:
•名前
•価値

宛先情報

名前 説明 価値 必須 JSON スクリプト プロパティ
接続 コピー先データ ストアへの接続。 < 実際の Teradata 接続 > イエス connection
テーブル データを書き込む対象のデータ テーブル。 < あなたのテーブル名 > イエス /
スキーマ名 スキーマの名前。 < あなたのスキーマ名 > いいえ スキーマ
テーブル名 テーブルの名前。 < 実際のテーブル名 > いいえ table
追加の Teradata 形式オプション COPY ステートメントでデータの読み込みに使用する追加の形式オプションを指定します。 例 :DATE_FORMAT、TIME_FORMAT、TIMESTAMP_FORMAT。 詳細については、「 Teradata DATE 形式」を参照してください。 このプロパティは、DelimitedText 形式のソースから Teradata への直接コピーでのみ機能します。 • DATE_FORMAT
• TIME_FORMAT
• TIMESTAMP_FORMAT
いいえ 追加フォーマットオプション:
• DATE_FORMAT
• TIME_FORMAT
• TIMESTAMP_FORMAT