Skip to content

Commit 1e4e5c8

Browse files
authored
Merge pull request #292535 from Clare-Zheng82/1230-Add_Teradata_v2
[New feature] Add Teradata v2 content
2 parents 8fd1b9e + ce4ca75 commit 1e4e5c8

File tree

2 files changed

+119
-46
lines changed

2 files changed

+119
-46
lines changed

articles/data-factory/connector-teradata.md

Lines changed: 119 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,12 @@ author: jianleishen
66
ms.subservice: data-movement
77
ms.custom: synapse
88
ms.topic: conceptual
9-
ms.date: 10/20/2023
9+
ms.date: 01/02/2025
1010
ms.author: jianleishen
1111
---
1212

1313
# Copy data from Teradata Vantage using Azure Data Factory and Synapse Analytics
1414

15-
> * [Current version](connector-teradata.md)
16-
1715
[!INCLUDE[appliesto-adf-asa-md](includes/appliesto-adf-asa-md.md)]
1816

1917
This article outlines how to use the copy activity in Azure Data Factory and Synapse Analytics pipelines to copy data from Teradata Vantage. It builds on the [copy activity overview](copy-activity-overview.md).
@@ -41,6 +39,11 @@ Specifically, this Teradata connector supports:
4139

4240
[!INCLUDE [data-factory-v2-integration-runtime-requirements](includes/data-factory-v2-integration-runtime-requirements.md)]
4341

42+
### For version 2.0 (Preview)
43+
44+
You need to [install .NET Data Provider](https://downloads.teradata.com/download/connectivity/net-data-provider-teradata) with version 20.00.03.00 or above on your self-hosted integration runtime if you use it.
45+
### For version 1.0
46+
4447
If you use Self-hosted Integration Runtime, note it provides a built-in Teradata driver starting from version 3.18. You don't need to manually install any driver. The driver requires "Visual C++ Redistributable 2012 Update 4" on the self-hosted integration runtime machine. If you don't yet have it installed, download it from [here](https://www.microsoft.com/en-sg/download/details.aspx?id=30679).
4548

4649
## Getting started
@@ -75,7 +78,60 @@ The following sections provide details about properties that are used to define
7578

7679
## Linked service properties
7780

78-
The Teradata linked service supports the following properties:
81+
The Teradata connector now supports version 2.0 (Preview). Refer to this [section](#upgrade-the-teradata-connector) to upgrade your Teradata connector version from version 1.0. For the property details, see the corresponding sections.
82+
83+
- [Version 2.0 (Preview)](#version-20-preview)
84+
- [Version 1.0](#version-10)
85+
86+
### Version 2.0 (Preview)
87+
88+
The Teradata linked service supports the following properties when apply version 2.0 (Preview):
89+
90+
| Property | Description | Required |
91+
|:--- |:--- |:--- |
92+
| type | The type property must be set to **Teradata**. | Yes |
93+
| version | The version that you specify. The value is `2.0`. | Yes |
94+
| server | The Teradata server name. | Yes |
95+
| authenticationType | The authentication type to connect to Teradata. Valid values including **Basic**, **Windows**, and **LDAP** | Yes |
96+
| username | Specify a user name to connect to Teradata. | Yes |
97+
| password | Specify a password for the user account you specified for the user name. You can also choose to [reference a secret stored in Azure Key Vault](store-credentials-in-key-vault.md). | Yes |
98+
| connectVia | The [Integration Runtime](concepts-integration-runtime.md) to be used to connect to the data store. Learn more from [Prerequisites](#prerequisites) section. If not specified, it uses the default Azure Integration Runtime. |No |
99+
100+
More connection properties you can set in connection string per your case:
101+
102+
| Property | Description | Default value |
103+
|:--- |:--- |:--- |
104+
| sslMode | The SSL mode for connections to the database. Valid values including `Disable`, `Allow`, `Prefer`, `Require`, `Verify-CA`, `Verify-Full`. | `Verify-Full` |
105+
| portNumber |The port numbers when connecting to server through non-HTTPS/TLS connections. | 1025|
106+
| httpsPortNumber |The port numbers when connecting to server through HTTPS/TLS connections. |443 |
107+
| UseDataEncryption | Specifies whether to encrypt all communication with the Teradata database. Allowed values are 0 or 1.<br><br/>- **0 (disabled)**: Encrypts authentication information only.<br/>- **1 (enabled, default)**: Encrypts all data that is passed between the driver and the database. This setting is ignored for HTTPS/TLS connections.| `1` |
108+
| CharacterSet | The character set to use for the session. For example, `CharacterSet=UTF16`.<br><br/>This value can be a user-defined character set, or one of the following predefined character sets: <br/>- ASCII<br/>- ARABIC1256_6A0<br/>- CYRILLIC1251_2A0<br/>- HANGUL949_7R0<br/>- HEBREW1255_5A0<br/>- KANJI932_1S0<br/>- KANJISJIS_0S<br/>- LATIN1250_1A0<br/>- LATIN1252_3A0<br/>- LATIN1254_7A0<br/>- LATIN1258_8A0<br/>- SCHINESE936_6R0<br/>- TCHINESE950_8R0<br/>- THAI874_4A0<br/>- UTF8<br/>- UTF16 | `ASCII` |
109+
| MaxRespSize |The maximum size of the response buffer for SQL requests, in bytes. For example, `MaxRespSize=10485760`.<br/><br/>Range of permissible values are from `4096` to `16775168`. The default value is `524288`. | `524288` |
110+
111+
**Example**
112+
113+
```json
114+
{
115+
"name": "TeradataLinkedService",
116+
"properties": {
117+
"type": "Teradata",
118+
"version": "2.0",
119+
"typeProperties": {
120+
"server": "<server name>",
121+
"username": "<user name>",
122+
"password": "<password>",
123+
"authenticationType": "<authentication type>"
124+
},
125+
"connectVia": {
126+
"referenceName": "<name of Integration Runtime>",
127+
"type": "IntegrationRuntimeReference"
128+
}
129+
}
130+
}
131+
```
132+
### Version 1.0
133+
134+
The Teradata linked service supports the following properties when apply version 1.0:
79135

80136
| Property | Description | Required |
81137
|:--- |:--- |:--- |
@@ -299,7 +355,7 @@ You are suggested to enable parallel copy with data partitioning especially when
299355
| ------------------------------------------------------------ | ------------------------------------------------------------ |
300356
| Full load from large table. | **Partition option**: Hash. <br><br/>During execution, the service automatically detects the primary index column, applies a hash against it, and copies data by partitions. |
301357
| Load large amount of data by using a custom query. | **Partition option**: Hash.<br>**Query**: `SELECT * FROM <TABLENAME> WHERE ?AdfHashPartitionCondition AND <your_additional_where_clause>`.<br>**Partition column**: Specify the column used for apply hash partition. If not specified, the service automatically detects the PK column of the table you specified in the Teradata dataset.<br><br>During execution, the service replaces `?AdfHashPartitionCondition` with the hash partition logic, and sends to Teradata. |
302-
| Load large amount of data by using a custom query, having an integer column with evenly distributed value for range partitioning. | **Partition options**: Dynamic range partition.<br>**Query**: `SELECT * FROM <TABLENAME> WHERE ?AdfRangePartitionColumnName <= ?AdfRangePartitionUpbound AND ?AdfRangePartitionColumnName >= ?AdfRangePartitionLowbound AND <your_additional_where_clause>`.<br>**Partition column**: Specify the column used to partition data. You can partition against the column with integer data type.<br>**Partition upper bound** and **partition lower bound**: Specify if you want to filter against the partition column to retrieve data only between the lower and upper range.<br><br>During execution, the service replaces `?AdfRangePartitionColumnName`, `?AdfRangePartitionUpbound`, and `?AdfRangePartitionLowbound` with the actual column name and value ranges for each partition, and sends to Teradata. <br>For example, if your partition column "ID" set with the lower bound as 1 and the upper bound as 80, with parallel copy set as 4, the service retrieves data by 4 partitions. Their IDs are between [1,20], [21, 40], [41, 60], and [61, 80], respectively. |
358+
| Load large amount of data by using a custom query, having an integer column with evenly distributed value for range partitioning. | **Partition options**: Dynamic range partition.<br>**Query**: `SELECT * FROM <TABLENAME> WHERE ?AdfRangePartitionColumnName <= ?AdfRangePartitionUpbound AND ?AdfRangePartitionColumnName >= ?AdfRangePartitionLowbound AND <your_additional_where_clause>`.<br>**Partition column**: Specify the column used to partition data. You can partition against the column with integer data type.<br>**Partition upper bound** and **partition lower bound**: Specify if you want to filter against the partition column to retrieve data only between the lower and upper range.<br><br>During execution, the service replaces `?AdfRangePartitionColumnName`, `?AdfRangePartitionUpbound`, and `?AdfRangePartitionLowbound` with the actual column name and value ranges for each partition, and sends to Teradata. <br>For example, if your partition column "ID" is set with the lower bound as 1 and the upper bound as 80, with parallel copy set as 4, the service retrieves data by 4 partitions. Their IDs are between [1,20], [21, 40], [41, 60], and [61, 80], respectively. |
303359

304360
**Example: query with hash partition**
305361

@@ -333,53 +389,70 @@ You are suggested to enable parallel copy with data partitioning especially when
333389

334390
When you copy data from Teradata, the following mappings apply from Teradata's data types to the internal data types used by the service. To learn about how the copy activity maps the source schema and data type to the sink, see [Schema and data type mappings](copy-activity-schema-and-type-mapping.md).
335391

336-
| Teradata data type | Interim service data type |
337-
|:--- |:--- |
338-
| BigInt |Int64 |
339-
| Blob |Byte[] |
340-
| Byte |Byte[] |
341-
| ByteInt |Int16 |
342-
| Char |String |
343-
| Clob |String |
344-
| Date |DateTime |
345-
| Decimal |Decimal |
346-
| Double |Double |
347-
| Graphic |Not supported. Apply explicit cast in source query. |
348-
| Integer |Int32 |
349-
| Interval Day |Not supported. Apply explicit cast in source query. |
350-
| Interval Day To Hour |Not supported. Apply explicit cast in source query. |
351-
| Interval Day To Minute |Not supported. Apply explicit cast in source query. |
352-
| Interval Day To Second |Not supported. Apply explicit cast in source query. |
353-
| Interval Hour |Not supported. Apply explicit cast in source query. |
354-
| Interval Hour To Minute |Not supported. Apply explicit cast in source query. |
355-
| Interval Hour To Second |Not supported. Apply explicit cast in source query. |
356-
| Interval Minute |Not supported. Apply explicit cast in source query. |
357-
| Interval Minute To Second |Not supported. Apply explicit cast in source query. |
358-
| Interval Month |Not supported. Apply explicit cast in source query. |
359-
| Interval Second |Not supported. Apply explicit cast in source query. |
360-
| Interval Year |Not supported. Apply explicit cast in source query. |
361-
| Interval Year To Month |Not supported. Apply explicit cast in source query. |
362-
| Number |Double |
363-
| Period (Date) |Not supported. Apply explicit cast in source query. |
364-
| Period (Time) |Not supported. Apply explicit cast in source query. |
365-
| Period (Time With Time Zone) |Not supported. Apply explicit cast in source query. |
366-
| Period (Timestamp) |Not supported. Apply explicit cast in source query. |
367-
| Period (Timestamp With Time Zone) |Not supported. Apply explicit cast in source query. |
368-
| SmallInt |Int16 |
369-
| Time |TimeSpan |
370-
| Time With Time Zone |TimeSpan |
371-
| Timestamp |DateTime |
372-
| Timestamp With Time Zone |DateTime |
373-
| VarByte |Byte[] |
374-
| VarChar |String |
375-
| VarGraphic |Not supported. Apply explicit cast in source query. |
376-
| Xml |Not supported. Apply explicit cast in source query. |
392+
| Teradata data type | Interim service data type (for version 2.0 (Preview)) | Interim service data type (for version 1.0) |
393+
|:--- |:--- |:--- |
394+
| BigInt | Int64 | Int64 |
395+
| Blob | Byte[] | Byte[] |
396+
| Byte | Byte[] | Byte[] |
397+
| ByteInt | Int16 | Int16 |
398+
| Char | String | String |
399+
| Clob | String | String |
400+
| Date | Date | DateTime |
401+
| Decimal | Decimal   | Decimal |
402+
| Double | Double | Double |
403+
| Graphic | String | Not supported. Apply explicit cast in source query. |
404+
| Integer | Int32 | Int32 |
405+
| Interval Day  | TimeSpan | Not supported. Apply explicit cast in source query. |
406+
| Interval Day To Hour | TimeSpan | Not supported. Apply explicit cast in source query. |
407+
| Interval Day To Minute | TimeSpan | Not supported. Apply explicit cast in source query. |
408+
| Interval Day To Second | TimeSpan | Not supported. Apply explicit cast in source query. |
409+
| Interval Hour | TimeSpan | Not supported. Apply explicit cast in source query. |
410+
| Interval Hour To Minute | TimeSpan | Not supported. Apply explicit cast in source query. |
411+
| Interval Hour To Second | TimeSpan | Not supported. Apply explicit cast in source query. |
412+
| Interval Minute | TimeSpan | Not supported. Apply explicit cast in source query. |
413+
| Interval Minute To Second | TimeSpan | Not supported. Apply explicit cast in source query. |
414+
| Interval Month | String | Not supported. Apply explicit cast in source query. |
415+
| Interval Second | TimeSpan | Not supported. Apply explicit cast in source query. |
416+
| Interval Year | String | Not supported. Apply explicit cast in source query. |
417+
| Interval Year To Month | String | Not supported. Apply explicit cast in source query. |
418+
| Number | Double | Double |
419+
| Period (Date) | String | Not supported. Apply explicit cast in source query. |
420+
| Period (Time) | String | Not supported. Apply explicit cast in source query. |
421+
| Period (Time With Time Zone) | String | Not supported. Apply explicit cast in source query. |
422+
| Period (Timestamp) | String | Not supported. Apply explicit cast in source query. |
423+
| Period (Timestamp With Time Zone) | String | Not supported. Apply explicit cast in source query. |
424+
| SmallInt | Int16 | Int16 |
425+
| Time | Time | TimeSpan |
426+
| Time With Time Zone | String   | TimeSpan |
427+
| Timestamp | DateTime | DateTime |
428+
| Timestamp With Time Zone | DateTimeOffset | DateTime |
429+
| VarByte | Byte[] | Byte[] |
430+
| VarChar | String | String |
431+
| VarGraphic | String | Not supported. Apply explicit cast in source query. |
432+
| Xml | String | Not supported. Apply explicit cast in source query. |
377433

378434

379435
## Lookup activity properties
380436

381437
To learn details about the properties, check [Lookup activity](control-flow-lookup-activity.md).
382438

439+
## Upgrade the Teradata connector
440+
441+
Here are steps that help you upgrade the Teradata connector:
442+
443+
1. In **Edit linked service** page, select 2.0 version and configure the linked service by referring to [linked service version 2.0 (Preview) properties](#version-20-preview).
444+
445+
2. The data type mapping for the Teradata linked service version 2.0 (Preview) is different from that for the version 1.0. To learn the latest data type mapping, see [Data type mapping for Teradata](#data-type-mapping-for-teradata).
446+
447+
448+
## Differences between Teradata connector version 2.0 (Preview) and version 1.0
449+
450+
The Teradata connector version 2.0 (Preview) offers new functionalities and is compatible with most features of version 1.0. The following table shows the feature differences between version 2.0 (Preview) and version 1.0.
451+
452+
| Version 2.0 (Preview) | Version 1.0 |
453+
| :----------- | :------- |
454+
| The following mappings are used from Teradata data types to interim service data type.<br><br>Date -> Date<br>Time With Time Zone -> String <br>Timestamp With Time Zone -> DateTimeOffset <br>Graphic -> String<br>Interval Day -> TimeSpan<br>Interval Day To Hour -> TimeSpan<br>Interval Day To Minute -> TimeSpan<br>Interval Day To Second -> TimeSpan<br>Interval Hour -> TimeSpan<br>Interval Hour To Minute -> TimeSpan<br>Interval Hour To Second -> TimeSpan<br>Interval Minute -> TimeSpan<br>Interval Minute To Second -> TimeSpan<br>Interval Month -> String<br>Interval Second -> TimeSpan<br>Interval Year -> String<br>Interval Year To Month -> String<br>Number -> Double<br>Period (Date) -> String<br>Period (Time) -> String<br>Period (Time With Time Zone) -> String<br>Period (Timestamp) -> String<br>Period (Timestamp With Time Zone) -> String<br>VarGraphic -> String<br>Xml -> String | The following mappings are used from Teradata data types to interim service data type.<br><br>Date -> DateTime<br>Time With Time Zone -> TimeSpan <br>Timestamp With Time Zone -> DateTime <br>Other mappings supported by version 2.0 (Preview) listed left are not supported by version 1.0. Please apply an explicit cast in the source query. |
455+
383456

384457
## Related content
385458
For a list of data stores supported as sources and sinks by the copy activity, see [Supported data stores](copy-activity-overview.md#supported-data-stores-and-formats).
4.57 KB
Loading

0 commit comments

Comments
 (0)