Kopiera data från Teradata Vantage med Azure Data Factory och Synapse Analytics
GÄLLER FÖR: Azure Data Factory Azure Synapse Analytics
Dricks
Prova Data Factory i Microsoft Fabric, en allt-i-ett-analyslösning för företag. Microsoft Fabric omfattar allt från dataflytt till datavetenskap, realtidsanalys, business intelligence och rapportering. Lär dig hur du startar en ny utvärderingsversion kostnadsfritt!
Den här artikeln beskriver hur du använder kopieringsaktiviteten i Azure Data Factory- och Synapse Analytics-pipelines för att kopiera data från Teradata Vantage. Den bygger på översikten över kopieringsaktiviteten.
Funktioner som stöds
Den här Teradata-anslutningsappen stöds för följande funktioner:
Funktioner som stöds | IR |
---|---|
Kopieringsaktivitet (källa/-) | (1) (2) |
Sökningsaktivitet | (1) (2) |
(1) Azure Integration Runtime (2) Lokalt installerad integrationskörning
En lista över datalager som stöds som källor/mottagare av kopieringsaktiviteten finns i tabellen Datalager som stöds.
Mer specifikt stöder den här Teradata-anslutningsappen:
- Teradata version 14.10, 15.0, 15.10, 16.0, 16.10 och 16.20.
- Kopiera data med hjälp av Basic-, Windows- eller LDAP-autentisering .
- Parallell kopiering från en Teradata-källa. Mer information finns i avsnittet Parallell kopia från Teradata .
Förutsättningar
Om ditt datalager finns i ett lokalt nätverk, ett virtuellt Azure-nätverk eller Amazon Virtual Private Cloud måste du konfigurera en lokalt installerad integrationskörning för att ansluta till det.
Om ditt datalager är en hanterad molndatatjänst kan du använda Azure Integration Runtime. Om åtkomsten är begränsad till IP-adresser som är godkända i brandväggsreglerna kan du lägga till Azure Integration Runtime-IP-adresser i listan över tillåtna.
Du kan också använda funktionen för integrering av hanterade virtuella nätverk i Azure Data Factory för att få åtkomst till det lokala nätverket utan att installera och konfigurera en lokalt installerad integrationskörning.
Mer information om de nätverkssäkerhetsmekanismer och alternativ som stöds av Data Factory finns i Strategier för dataåtkomst.
Om du använder integrationskörning med egen värd kan du notera att den innehåller en inbyggd Teradata-drivrutin från och med version 3.18. Du behöver inte installera någon drivrutin manuellt. Drivrutinen kräver "Visual C++ Redistributable 2012 Update 4" på den lokalt installerade integrationskörningsdatorn. Om du inte har installerat den än laddar du ned den härifrån.
Komma igång
Om du vill utföra kopieringsaktiviteten med en pipeline kan du använda något av följande verktyg eller SDK:er:
- Verktyget Kopiera data
- Azure-portalen
- The .NET SDK
- The Python SDK
- Azure PowerShell
- REST-API:et
- Azure Resource Manager-mallen
Skapa en länkad tjänst till Teradata med hjälp av användargränssnittet
Använd följande steg för att skapa en länkad tjänst till Teradata i azure-portalens användargränssnitt.
Bläddra till fliken Hantera i Din Azure Data Factory- eller Synapse-arbetsyta och välj Länkade tjänster och klicka sedan på Ny:
Sök efter Teradata och välj Teradata-anslutningsappen.
Konfigurera tjänstinformationen, testa anslutningen och skapa den nya länkade tjänsten.
Konfigurationsinformation för anslutningsprogram
Följande avsnitt innehåller information om egenskaper som används för att definiera Data Factory-entiteter som är specifika för Teradata-anslutningsappen.
Länkade tjänstegenskaper
Den länkade Teradata-tjänsten stöder följande egenskaper:
Property | Beskrivning | Obligatoriskt |
---|---|---|
type | Typegenskapen måste anges till Teradata. | Ja |
connectionString | Anger den information som behövs för att ansluta till Teradata-instansen. Se följande exempel. Du kan också placera ett lösenord i Azure Key Vault och hämta konfigurationen password från niska veze. Mer information finns i Lagra autentiseringsuppgifter i Azure Key Vault. |
Ja |
användarnamn | Ange ett användarnamn för att ansluta till Teradata. Gäller när du använder Windows-autentisering. | Nej |
password | Ange ett lösenord för det användarkonto som du angav för användarnamnet. Du kan också välja att referera till en hemlighet som lagras i Azure Key Vault. Gäller när du använder Windows-autentisering eller refererar till ett lösenord i Key Vault för grundläggande autentisering. |
Nej |
connectVia | Integration Runtime som ska användas för att ansluta till datalagret. Läs mer i avsnittet Förutsättningar . Om den inte anges använder den standardkörningen för Azure-integrering. | Nej |
Fler anslutningsegenskaper som du kan ange i niska veze per ditt ärende:
Property | Beskrivning | Standardvärde |
---|---|---|
TdmstPortNumber | Antalet portar som används för att komma åt Teradata-databasen. Ändra inte det här värdet om du inte instrueras att göra det av teknisk support. |
1025 |
UseDataEncryption | Anger om all kommunikation med Teradata-databasen ska krypteras. Tillåtna värden är 0 eller 1. - 0 (inaktiverad, standard): Krypterar endast autentiseringsinformation. - 1 (aktiverad): Krypterar alla data som skickas mellan drivrutinen och databasen. |
0 |
Teckenuppsättning | Teckenuppsättningen som ska användas för sessionen. T.ex. CharacterSet=UTF16 .Det här värdet kan vara en användardefinierad teckenuppsättning eller någon av följande fördefinierade teckenuppsättningar: -ASCII - UTF8 - UTF16 - LATIN1252_0A - LATIN9_0A - LATIN1_0A – Skift-JIS (Windows, DOS-kompatibel, KANJISJIS_0S) - EUC (Unix-kompatibel, KANJIEC_0U) – IBM-stordator (KANJIEBCDIC5035_0I) - KANJI932_1S0 - BIG5 (TCHBIG5_1R0) – GB (SCHGB2312_1T0) - SCHINESE936_6R0 - TCHINESE950_8R0 – NetworkKorean (HANGULKSC5601_2R4) - HANGUL949_7R0 - ARABIC1256_6A0 - CYRILLIC1251_2A0 - HEBREW1255_5A0 - LATIN1250_1A0 - LATIN1254_7A0 - LATIN1258_8A0 - THAI874_4A0 |
ASCII |
MaxRespSize | Den maximala storleken på svarsbufferten för SQL-begäranden i kilobyte (KB). T.ex. MaxRespSize=10485760 .För Teradata Database version 16.00 eller senare är det maximala värdet 7361536. För anslutningar som använder tidigare versioner är det maximala värdet 1048576. |
65536 |
MechanismName | Om du vill använda LDAP-protokollet för att autentisera anslutningen anger du MechanismName=LDAP . |
Ej tillämpligt |
Exempel med grundläggande autentisering
{
"name": "TeradataLinkedService",
"properties": {
"type": "Teradata",
"typeProperties": {
"connectionString": "DBCName=<server>;Uid=<username>;Pwd=<password>"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Exempel med Windows-autentisering
{
"name": "TeradataLinkedService",
"properties": {
"type": "Teradata",
"typeProperties": {
"connectionString": "DBCName=<server>",
"username": "<username>",
"password": "<password>"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Exempel med LDAP-autentisering
{
"name": "TeradataLinkedService",
"properties": {
"type": "Teradata",
"typeProperties": {
"connectionString": "DBCName=<server>;MechanismName=LDAP;Uid=<username>;Pwd=<password>"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Kommentar
Följande nyttolast stöds fortfarande. Framöver bör du dock använda den nya.
Tidigare nyttolast:
{
"name": "TeradataLinkedService",
"properties": {
"type": "Teradata",
"typeProperties": {
"server": "<server>",
"authenticationType": "<Basic/Windows>",
"username": "<username>",
"password": {
"type": "SecureString",
"value": "<password>"
}
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Egenskaper för datauppsättning
Det här avsnittet innehåller en lista över egenskaper som stöds av Teradata-datauppsättningen. En fullständig lista över avsnitt och egenskaper som är tillgängliga för att definiera datauppsättningar finns i Datauppsättningar.
Följande egenskaper stöds för att kopiera data från Teradata:
Property | Beskrivning | Obligatoriskt |
---|---|---|
type | Datamängdens typegenskap måste anges till TeradataTable . |
Ja |
database | Namnet på Teradata-instansen. | Nej (om "fråga" i aktivitetskällan har angetts) |
table | Namnet på tabellen i Teradata-instansen. | Nej (om "fråga" i aktivitetskällan har angetts) |
Exempel:
{
"name": "TeradataDataset",
"properties": {
"type": "TeradataTable",
"typeProperties": {},
"schema": [],
"linkedServiceName": {
"referenceName": "<Teradata linked service name>",
"type": "LinkedServiceReference"
}
}
}
Kommentar
RelationalTable
typdatauppsättning stöds fortfarande. Vi rekommenderar dock att du använder den nya datauppsättningen.
Tidigare nyttolast:
{
"name": "TeradataDataset",
"properties": {
"type": "RelationalTable",
"linkedServiceName": {
"referenceName": "<Teradata linked service name>",
"type": "LinkedServiceReference"
},
"typeProperties": {}
}
}
Kopiera egenskaper för aktivitet
Det här avsnittet innehåller en lista över egenskaper som stöds av Teradata-källan. En fullständig lista över avsnitt och egenskaper som är tillgängliga för att definiera aktiviteter finns i Pipelines.
Teradata som källa
Dricks
Om du vill läsa in data från Teradata effektivt med hjälp av datapartitionering kan du läsa mer i avsnittet Parallellkopia från Teradata .
Om du vill kopiera data från Teradata stöds följande egenskaper i avsnittet kopieringsaktivitetskälla:
Property | Beskrivning | Obligatoriskt |
---|---|---|
type | Typegenskapen för kopieringsaktivitetskällan måste vara inställd på TeradataSource . |
Ja |
query | Använd den anpassade SQL-frågan för att läsa data. Ett exempel är "SELECT * FROM MyTable" .När du aktiverar partitionerad belastning måste du koppla motsvarande inbyggda partitionsparametrar i frågan. Exempel finns i avsnittet Parallell kopia från Teradata . |
Nej (om tabellen i datamängden har angetts) |
partitionOptions | Anger de datapartitioneringsalternativ som används för att läsa in data från Teradata. Tillåt värden är: Ingen (standard), Hash och DynamicRange. När ett partitionsalternativ är aktiverat (dvs. inte None ) styrs graden av parallellitet för samtidig inläsning av data från Teradata av parallelCopies inställningen för kopieringsaktiviteten. |
Nej |
partitionSettings | Ange gruppen med inställningarna för datapartitionering. Använd när partitionsalternativet inte None är . |
Nej |
partitionColumnName | Ange namnet på källkolumnen som ska användas av intervallpartitionen eller Hash-partitionen för parallell kopiering. Om det inte anges identifieras tabellens primära index automatiskt och används som partitionskolumn. Använd när partitionsalternativet är Hash eller DynamicRange . Om du använder en fråga för att hämta källdata, hook ?AdfHashPartitionCondition eller ?AdfRangePartitionColumnName i WHERE-satsen. Se exemplet i avsnittet Parallell kopia från Teradata . |
Nej |
partitionUpperBound | Det maximala värdet för partitionskolumnen för att kopiera ut data. Använd när partitionsalternativet är DynamicRange . Om du använder frågan för att hämta källdata kopplar du ?AdfRangePartitionUpbound in WHERE-satsen. Ett exempel finns i avsnittet Parallell kopia från Teradata . |
Nej |
partitionLowerBound | Det minsta värdet för partitionskolumnen för att kopiera ut data. Använd när partitionsalternativet är DynamicRange . Om du använder en fråga för att hämta källdata kopplar ?AdfRangePartitionLowbound du in WHERE-satsen. Ett exempel finns i avsnittet Parallell kopia från Teradata . |
Nej |
Kommentar
RelationalSource
typkopieringskällan stöds fortfarande, men den stöder inte den nya inbyggda parallella belastningen från Teradata (partitionsalternativ). Vi rekommenderar dock att du använder den nya datauppsättningen.
Exempel: kopiera data med hjälp av en grundläggande fråga utan partition
"activities":[
{
"name": "CopyFromTeradata",
"type": "Copy",
"inputs": [
{
"referenceName": "<Teradata input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "TeradataSource",
"query": "SELECT * FROM MyTable"
},
"sink": {
"type": "<sink type>"
}
}
}
]
Parallell kopia från Teradata
Teradata-anslutningsappen tillhandahåller inbyggd datapartitionering för att kopiera data från Teradata parallellt. Du hittar alternativ för datapartitionering i källtabellen för kopieringsaktiviteten.
När du aktiverar partitionerad kopia kör tjänsten parallella frågor mot Teradata-källan för att läsa in data efter partitioner. Den parallella graden styrs av parallelCopies
inställningen för kopieringsaktiviteten. Om du till exempel anger parallelCopies
till fyra genererar och kör tjänsten samtidigt fyra frågor baserat på ditt angivna partitionsalternativ och inställningar, och varje fråga hämtar en del data från Teradata.
Du rekommenderas att aktivera parallell kopiering med datapartitionering, särskilt när du läser in stora mängder data från dina Teradata. Följande är föreslagna konfigurationer för olika scenarier. När du kopierar data till filbaserat datalager rekommenderar vi att du skriver till en mapp som flera filer (anger endast mappnamn), i vilket fall prestandan är bättre än att skriva till en enda fil.
Scenario | Föreslagna inställningar |
---|---|
Full belastning från en stor tabell. | Partitionsalternativ: Hash. Under körningen identifierar tjänsten automatiskt den primära indexkolumnen, tillämpar en hash mot den och kopierar data efter partitioner. |
Läs in stora mängder data med hjälp av en anpassad fråga. | Partitionsalternativ: Hash. Fråga: SELECT * FROM <TABLENAME> WHERE ?AdfHashPartitionCondition AND <your_additional_where_clause> .Partitionskolumn: Ange den kolumn som används för att tillämpa hash-partition. Om den inte anges identifierar tjänsten automatiskt PK-kolumnen i tabellen som du angav i Teradata-datauppsättningen. Under körningen ersätter tjänsten med hashpartitionslogiken ?AdfHashPartitionCondition och skickar till Teradata. |
Läs in stora mängder data med hjälp av en anpassad fråga med en heltalskolumn med jämnt distribuerat värde för intervallpartitionering. | Partitionsalternativ: Partition med dynamiskt intervall. Fråga: SELECT * FROM <TABLENAME> WHERE ?AdfRangePartitionColumnName <= ?AdfRangePartitionUpbound AND ?AdfRangePartitionColumnName >= ?AdfRangePartitionLowbound AND <your_additional_where_clause> .Partitionskolumn: Ange den kolumn som används för att partitionera data. Du kan partitionera mot kolumnen med heltalsdatatypen. Partitionens övre gräns och partitionens nedre gräns: Ange om du vill filtrera mot partitionskolumnen för att endast hämta data mellan det nedre och det övre intervallet. Under körningen ersätter ?AdfRangePartitionColumnName tjänsten , ?AdfRangePartitionUpbound och ?AdfRangePartitionLowbound med det faktiska kolumnnamnet och värdeintervallen för varje partition och skickar till Teradata. Om till exempel partitionskolumnen "ID" har angetts med den nedre gränsen som 1 och den övre gränsen som 80, med parallell kopiering inställd som 4, hämtar tjänsten data med 4 partitioner. Deras ID:n är mellan [1,20], [21, 40], [41, 60] respektive [61, 80]. |
Exempel: fråga med hashpartition
"source": {
"type": "TeradataSource",
"query": "SELECT * FROM <TABLENAME> WHERE ?AdfHashPartitionCondition AND <your_additional_where_clause>",
"partitionOption": "Hash",
"partitionSettings": {
"partitionColumnName": "<hash_partition_column_name>"
}
}
Exempel: fråga med partition för dynamiskt intervall
"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>"
}
}
Datatypsmappning för Teradata
När du kopierar data från Teradata gäller följande mappningar från Teradatas datatyper för de interna datatyper som används av tjänsten. Information om hur kopieringsaktiviteten mappar källschemat och datatypen till mottagaren finns i Mappningar av schema- och datatyper.
Teradata-datatyp | Datatyp för interimstjänst |
---|---|
BigInt | Int64 |
Blob | Byte[] |
Byte | Byte[] |
ByteInt | Int16 |
Char | String |
Clob | String |
Date | Datum/tid |
Decimal | Decimal |
Dubbel | Dubbel |
Grafisk | Stöds ej. Använd explicit cast i källfrågan. |
Integer | Int32 |
Intervalldag | Stöds ej. Använd explicit cast i källfrågan. |
Intervall dag till timme | Stöds ej. Använd explicit cast i källfrågan. |
Intervall dag till minut | Stöds ej. Använd explicit cast i källfrågan. |
Intervalldag till sekund | Stöds ej. Använd explicit cast i källfrågan. |
Intervalltimme | Stöds ej. Använd explicit cast i källfrågan. |
Intervall från timme till minut | Stöds ej. Använd explicit cast i källfrågan. |
Intervall timme till sekund | Stöds ej. Använd explicit cast i källfrågan. |
Intervallminut | Stöds ej. Använd explicit cast i källfrågan. |
Intervall minut till sekund | Stöds ej. Använd explicit cast i källfrågan. |
Intervallmånad | Stöds ej. Använd explicit cast i källfrågan. |
Intervall sekund | Stöds ej. Använd explicit cast i källfrågan. |
Intervallår | Stöds ej. Använd explicit cast i källfrågan. |
Intervall från år till månad | Stöds ej. Använd explicit cast i källfrågan. |
Antal | Dubbel |
Period (datum) | Stöds ej. Använd explicit cast i källfrågan. |
Period (tid) | Stöds ej. Använd explicit cast i källfrågan. |
Period (tid med tidszon) | Stöds ej. Använd explicit cast i källfrågan. |
Period (tidsstämpel) | Stöds ej. Använd explicit cast i källfrågan. |
Period (tidsstämpel med tidszon) | Stöds ej. Använd explicit cast i källfrågan. |
SmallInt | Int16 |
Tid | TimeSpan |
Tid med tidszon | TimeSpan |
Tidsstämpel | Datum/tid |
Tidsstämpel med tidszon | Datum/tid |
VarByte | Byte[] |
VarChar | String |
Vargraphic | Stöds ej. Använd explicit cast i källfrågan. |
Xml | Stöds ej. Använd explicit cast i källfrågan. |
Egenskaper för uppslagsaktivitet
Mer information om egenskaperna finns i Sökningsaktivitet.
Relaterat innehåll
En lista över datalager som stöds som källor och mottagare av kopieringsaktiviteten finns i Datalager som stöds.