# Teradata

Teradata は、Qlik Talend Cloud データ レプリケーション プロジェクトにおいて、ターゲットとしてのみ利用できます。この接続では、データのロードに Teradata Parallel Transporter (TPT) API を使用し、メタデータ クエリ、DDL リクエスト、Teradata エラー テーブルからの情報の取得に ODBC を使用します。

## 接続の設定

レプリケーション タスクを作成する前に、Teradata ターゲットへの接続を作成してテストします。

1. [接続] で、[接続を作成] をクリックします。
2. Teradata ターゲット コネクタを選択します。
3. [Teradata 接続プロパティ](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/TargetConnections/teradata-target.htm#ConnectionProperties)で説明されている接続プロパティを入力します。
4. [接続をテスト] をクリックし、報告されたエラーを解決します。
5. 接続を保存します。

## Teradata 接続プロパティ

Teradata ターゲット接続の次のプロパティを設定します。

Teradata ターゲット接続プロパティ

| セクション | プロパティ | 説明 |
| --- | --- | --- |
| データ ターゲット | データ ゲートウェイ (必須) | Teradata サーバーに接続でき、必要な Teradata クライアント コンポーネントがインストールされているデータ ゲートウェイを選択します。 |
| 接続プロパティ | Teradata サーバー (必須) | Teradata サーバー名または IP アドレスを入力します。選択したデータ ゲートウェイからサーバーに接続できることを確認してください。 |
| アカウントのプロパティ | ユーザー (必須) | Teradata データベースのユーザー名を入力します。これはデータベースの資格情報であり、アカウント文字列ではありません。 |
| パスワード (必須) | Teradata サーバー データベース ユーザーのパスワードを入力します。これはデータベースの資格情報であり、アカウント文字列ではありません。 |  |
| アカウント文字列 | Teradata データベース管理者がユーザーに割り当てたアカウント文字列を入力します。これはデータベース サーバーのログイン アカウントであり、 [ユーザー] および [パスワード] の資格情報とは異なります。 |  |
| データベースのプロパティ | データベース名を手動で入力 | データベース名を入力するには、このオプションを選択します。 |
| デフォルトのデータベース (必須) | データがレプリケートされる Teradata データベースを入力します。データベースは、指定されたユーザーがアクセス可能である必要があります。 |  |
| データベースのロード | クリックして、指定されたユーザーが利用可能なデータベースを検出します。リストは、正常な接続とユーザーのデータベース権限に依存します。 |  |
| 追加の接続プロパティ | ODBC プロパティ | 追加の ODBC 接続プロパティを [名前] と [値] のペアとして入力します。Teradata または ODBC の管理者にプロパティ名と値を確認します。 |

## 前提条件

ターゲット接続を作成する前に、接続に必要な Teradata 環境とアクセスを準備します。

* Teradata サーバーがネットワークにインストールされており、選択したデータ ゲートウェイを実行しているコンピューターからアクセス可能であることを確認してください。
* データ ゲートウェイに Teradata ODBC ドライバーおよび必要な Teradata クライアント コンポーネントをインストールして設定します。別のコンピュータにインストールされたドライバーが、ゲートウェイで使用可能であるとは想定しないでください。
* Teradata データベース管理者に、データベース ユーザーを作成または特定し、必要に応じてそのユーザーのパスワードおよびアカウント文字列を提供するよう依頼します。

Teradata ターゲット機能を環境に適応させる場合は、タスクに次の権限が必要かどうかを Teradata データベース管理者に確認します。特に明記されていない限り、権限はターゲット データベースに適用されます。これらは、すべての Qlik Talend Cloud タスクにおける最小限の権限であるとは限りません。

* `GRANT SELECT ON <database>`
* `GRANT INSERT ON <database>`
* `GRANT DELETE ON <database>`
* `GRANT UPDATE ON <database>`
* `GRANT EXECUTE ON <database>`
* `GRANT EXECUTE FUNCTION ON <database>`
* `GRANT EXECUTE PROCEDURE ON <database>`
* `GRANT CREATE TABLE ON <database>`
* `GRANT DROP TABLE ON <database>`
* `GRANT CREATE VIEW ON <database>`
* `GRANT DROP VIEW ON <database>`
* `GRANT NONTEMPORAL ON <database>`
* `GRANT CHECKPOINT ON <database>`

データベース ユーザーは、ストリーム処理のために次の権限も必要になる場合があります。

* `GRANT CREATE MACRO ON <database>`

## Teradata データベースへのアクセスを提供する

接続の [ユーザー] プロパティに入力されたユーザーは、Teradata データベースにユーザーとして登録されている必要があります。Teradata ターゲット接続およびデータベースを構成する前に、Teradata データベース管理者がこの同じユーザーにアクセス権を付与する必要があります。この登録済みユーザーの資格情報を、接続の [ユーザー] および [パスワード] プロパティで使用します。

必要な権限付与については、 [[前提条件](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/TargetConnections/teradata-target.htm#Prerequisites)] の既存の権限付与リストを参照してください。

## hosts ファイルの編集

選択したデータ ゲートウェイが Teradata データベースにアクセスできるようにするには、データ ゲートウェイ マシンの hosts ファイルに Teradata のマッピングを追加します。

1. 選択したデータ ゲートウェイ マシンで、Windows または Linux の hosts ファイルを開きます。デフォルトのパスは次のとおりです:

   * Windows: `~:\Windows\System32\drivers\etc\hosts`
   * Linux: `/etc/hosts`

2. 次の形式で Teradata マッピングを追加します。データベース名の後にサフィックス `cop1` を含めます。

   `<Teradata Database IP address/hostname> <Teradata Database name>cop1`

   例: `123.123.123.1 teradatadbonecop1`

   hosts ファイル内のデータベース名が [デフォルト データベース] 接続プロパティと一致していることを確認してください。

3. 変更を保存します。

## 接続エラーのトラブルシューティング

接続テストが失敗した場合は、報告されたエラーを確認し、再度接続をテストする前に次のアイテムを確認してください。

* **ゲートウェイまたはネットワーク:** 選択したデータ ゲートウェイが実行されており、Teradata サーバーに接続できることを確認します。サーバー名または IP アドレス、ゲートウェイとサーバー間のネットワークルールを確認します。
* **ドライバーまたはクライアント:** 選択したゲートウェイに Teradata ODBC ドライバーおよび必要なクライアント コンポーネントがインストールされ、構成されていることを確認します。ローカル コンピューターにインストールされているドライバーは、リモート ゲートウェイでは使用されません。
* **資格情報または権限:** 大文字と小文字が区別される [ユーザー] と [パスワード]、オプションの [アカウント文字列]、および必要なデータベース権限について、DBA に確認します。
* **データベースの検出:** データベースのロードでデータベースが返されない場合やエラーが発生する場合は、まず接続をテストし、ユーザーがデータベースを検出してアクセスできることを確認します。必要に応じて、 [データベース名を手動で入力] を使用して既知のデータベースを入力できます。
* **ODBC プロパティ:** すべての [名前] と [値] のペアについて、スペル、サポートされている値、ドライバー構成との競合を確認してください。接続テストが失敗する原因となっているオプション プロパティを削除するか、ODBC 管理者に確認を依頼します。

## データ型。

次の表に、Qlik Talend Cloud データ型から Teradata データ型へのデフォルトのマッピングを示します。

情報メモ

Teradata では、 [バッチ最適化の適用] モードでのバイナリ データ型への変更の適用はサポートされていません。

Teradata ターゲット データ型のマッピング

| Qlik Talend Cloud データ型 | Teradata データ型 |
| --- | --- |
| BOOLEAN | BYTEINT |
| BYTES | VARBYTE (サイズ)。最大サイズは 640,000 バイトです。 |
| DATE | DATE |
| TIME | TIME (精度) |
| DATETIME | TIMESTAMP (精度) |
| INT1 | BYTEINT |
| INT2 | SMALLINT |
| INT4 | INTEGER |
| INT8 | BIGINT |
| NUMERIC | スケールが 0 から 37 の場合、NUMERIC (精度、スケール)。スケールが 38 以上の場合は VARCHAR (45)。 |
| REAL4 | FLOATTeradata の FLOAT は、REAL およ びDOUBLE PRECISION と同等です。 |
| REAL8 | FLOAT |
| STRING | VARCHAR (size)、最大 64,000 バイト。サブタイプが JSON の場合、代わりに JSON が使用されます。 |
| UINT1 | BYTEINT |
| UINT2 | SMALLINT |
| UINT4 | INTEGER |
| UINT8 | BIGINT |
| WSTRING | VARCHAR (size)、最大 640,000 バイト。サブタイプが JSON の場合、代わりに JSON が使用されます。 |
| BLOB | VARBYTE(${MAX\_LOB\_SIZE})。MAX\_LOB\_SIZE は、制限付きサイズ LOB 処理に指定される最大 LOB サイズです。 |
| [](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/TargetConnections/teradata-target.htm)CLOB | VARCHAR(${MAX\_LOB\_SIZE})。Unicode の大文字と小文字を区別しない文字セットを使用します。MAX\_LOB\_SIZE は、限定サイズ LOB 処理に指定された最大 LOB サイズです。サブタイプが JSON の場合、代わりに JSON が使用されます。 |
| NCLOB | 大文字と小文字を区別しない文字セットを使用する VARCHAR(${MAX\_LOB\_SIZE})。MAX\_LOB\_SIZE は、限定サイズ LOB 処理に指定された最大 LOB サイズです。サブタイプが JSON の場合、代わりに JSON が使用されます。 |

情報メモ

**LOB の制限事項:** Teradata は完全な LOB データ型をサポートしていません。ターゲットは、代わりに制限付きサイズの LOB マッピングを使用します。Teradata の行の合計サイズは 64 KB を超えることができないため、最大 LOB サイズを設定する際は、すべての列のサイズを含めてください。

CLOB 列および NCLOB 列の場合、NLS をサポートするために、デフォルトで文字長が 3 倍になります。これにより、結果として生じる Teradata の列および行のサイズが増加する可能性があります。

Teradata の PERIOD データ型はサポートされていません。

## 制限と考慮事項

* 利用可能なレプリケーション モードは、[フル ロード]、 [変更の適用]、および [変更の保存] です。
* [変更の適用] または [変更の保存] を使用するタスクでは、DDL 操作および自動スキーマの進化はサポートされていません。この制限は、 [フル ロード] のみのタスクには適用されません。
* [ロード] モードの場合、ターゲット テーブルは空であり、かつセカンダリ インデックスが設定されていない必要があります。タスクで継続的な DML 処理または同時テーブル クエリが必要な場合は、 [ストリーム] を選択します。

## 関連情報

* [レプリケーション プロジェクトの作成](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Replicating/data-replication-task.htm)