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
aktiviteten Kopiera (källa/-) ① ②
Sökningsaktivitet ① ②

(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 aktiviteten Kopiera med en pipeline kan du använda något av följande verktyg eller SDK:er:

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.

  1. 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:

  2. Sök efter Teradata och välj Teradata-anslutningsappen.

    Select the Teradata connector.

  3. Konfigurera tjänstinformationen, testa anslutningen och skapa den nya länkade tjänsten.

    Configure a linked service to Teradata.

Anslut eller konfigurationsinformation

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 anslutningssträng. 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 anslutningssträng per ditt ärende:

Property Beskrivning Default value
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
partition Inställningar 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.

Screenshot of partition options

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 ?AdfRangePartitionColumnNametjänsten , ?AdfRangePartitionUpboundoch ?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.

En lista över datalager som stöds som källor och mottagare av kopieringsaktiviteten finns i Datalager som stöds.