Gegevens kopiëren uit Teradata Vantage met behulp van Azure Data Factory en Synapse Analytics
VAN TOEPASSING OP: Azure Data Factory Azure Synapse Analytics
Tip
Probeer Data Factory uit in Microsoft Fabric, een alles-in-één analyseoplossing voor ondernemingen. Microsoft Fabric omvat alles, van gegevensverplaatsing tot gegevenswetenschap, realtime analyses, business intelligence en rapportage. Meer informatie over het gratis starten van een nieuwe proefversie .
In dit artikel wordt beschreven hoe u de kopieeractiviteit in Azure Data Factory- en Synapse Analytics-pijplijnen gebruikt om gegevens te kopiëren uit Teradata Vantage. Het is gebaseerd op het overzicht van de kopieeractiviteit.
Ondersteunde mogelijkheden
Deze Teradata-connector wordt ondersteund voor de volgende mogelijkheden:
Ondersteunde mogelijkheden | IR |
---|---|
Copy-activiteit (bron/-) | (1) (2) |
Activiteit Lookup | (1) (2) |
(1) Azure Integration Runtime (2) Zelf-hostende Integration Runtime
Zie de tabel Ondersteunde gegevensarchieven voor een lijst met gegevensarchieven die worden ondersteund als bronnen/sinks door de kopieeractiviteit.
Deze Teradata-connector ondersteunt met name:
- Teradata versie 14.10, 15.0, 15.10, 16.0, 16.10 en 16.20.
- Gegevens kopiëren met behulp van Basic-, Windows- of LDAP-verificatie .
- Parallel kopiëren vanuit een Teradata-bron. Zie de sectie Parallel kopiëren uit Teradata voor meer informatie.
Vereisten
Als uw gegevensarchief zich in een on-premises netwerk, een virtueel Azure-netwerk of een virtuele particuliere cloud van Amazon bevindt, moet u een zelf-hostende Integration Runtime configureren om er verbinding mee te maken.
Als uw gegevensarchief een beheerde cloudgegevensservice is, kunt u De Azure Integration Runtime gebruiken. Als de toegang is beperkt tot IP-adressen die zijn goedgekeurd in de firewallregels, kunt u IP-adressen van Azure Integration Runtime toevoegen aan de acceptatielijst.
U kunt ook de beheerde functie voor integratieruntime voor virtuele netwerken in Azure Data Factory gebruiken om toegang te krijgen tot het on-premises netwerk zonder een zelf-hostende Integration Runtime te installeren en te configureren.
Zie Strategieën voor gegevenstoegang voor meer informatie over de netwerkbeveiligingsmechanismen en -opties die door Data Factory worden ondersteund.
Als u zelf-hostende Integration Runtime gebruikt, moet u er rekening mee houden dat het een ingebouwd Teradata-stuurprogramma biedt vanaf versie 3.18. U hoeft geen stuurprogramma handmatig te installeren. Voor het stuurprogramma is Visual C++ Redistributable 2012 Update 4 vereist op de zelf-hostende Integration Runtime-machine. Als u deze nog niet hebt geïnstalleerd, downloadt u deze hier.
Aan de slag
Als u de kopieeractiviteit wilt uitvoeren met een pijplijn, kunt u een van de volgende hulpprogramma's of SDK's gebruiken:
- Het hulpprogramma voor het kopiëren van gegevens
- Azure Portal
- De .NET-SDK
- De Python-SDK
- Azure PowerShell
- De REST API
- Een Azure Resource Manager-sjabloon
Een gekoppelde service maken voor Teradata met behulp van de gebruikersinterface
Gebruik de volgende stappen om een gekoppelde service te maken voor Teradata in de gebruikersinterface van Azure Portal.
Blader naar het tabblad Beheren in uw Azure Data Factory- of Synapse-werkruimte en selecteer Gekoppelde services en klik vervolgens op Nieuw:
Zoek naar Teradata en selecteer de Teradata-connector.
Configureer de servicedetails, test de verbinding en maak de nieuwe gekoppelde service.
Configuratiedetails van connector
De volgende secties bevatten details over eigenschappen die worden gebruikt voor het definiëren van Data Factory-entiteiten die specifiek zijn voor de Teradata-connector.
Eigenschappen van gekoppelde service
De gekoppelde Teradata-service ondersteunt de volgende eigenschappen:
Eigenschappen | Beschrijving | Vereist |
---|---|---|
type | De typeeigenschap moet worden ingesteld op Teradata. | Ja |
connectionString | Hiermee geeft u de informatie op die nodig is om verbinding te maken met het Teradata-exemplaar. Raadpleeg de volgende voorbeelden. U kunt ook een wachtwoord in Azure Key Vault plaatsen en de password configuratie uit de verbindingsreeks halen. Raadpleeg De referenties van de Store in Azure Key Vault met meer informatie. |
Ja |
gebruikersnaam | Geef een gebruikersnaam op om verbinding te maken met Teradata. Is van toepassing wanneer u Windows-verificatie gebruikt. | Nee |
password | Geef een wachtwoord op voor het gebruikersaccount dat u hebt opgegeven voor de gebruikersnaam. U kunt er ook voor kiezen om te verwijzen naar een geheim dat is opgeslagen in Azure Key Vault. Is van toepassing wanneer u Windows-verificatie gebruikt of verwijst naar een wachtwoord in Key Vault voor basisverificatie. |
Nee |
connectVia | De Integration Runtime die moet worden gebruikt om verbinding te maken met het gegevensarchief. Meer informatie vindt u in de sectie Vereisten . Als dit niet is opgegeven, wordt de standaard Azure Integration Runtime gebruikt. | Nee |
Meer verbindingseigenschappen die u kunt instellen in verbindingsreeks per geval:
Eigenschappen | Beschrijving | Default value |
---|---|---|
TdmstPortNumber | Het nummer van de poort die wordt gebruikt voor toegang tot de Teradata-database. Wijzig deze waarde niet, tenzij hiervoor wordt aangegeven door technische ondersteuning. |
1025 |
UseDataEncryption | Hiermee geeft u op of alle communicatie met de Teradata-database moet worden versleuteld. Toegestane waarden zijn 0 of 1. - 0 (uitgeschakeld, standaard): versleutelt alleen verificatiegegevens. - 1 (ingeschakeld): versleutelt alle gegevens die worden doorgegeven tussen het stuurprogramma en de database. |
0 |
CharacterSet | De tekenset die moet worden gebruikt voor de sessie. CharacterSet=UTF16 Bijvoorbeeld.Deze waarde kan een door de gebruiker gedefinieerde tekenset zijn of een van de volgende vooraf gedefinieerde tekensets: -ASCII - UTF8 - UTF16 - LATIN1252_0A - LATIN9_0A - LATIN1_0A - Shift-JIS (Windows, DOS compatibel, KANJISJIS_0S) - EUC (Unix-compatibel, KANJIEC_0U) - IBM Mainframe (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 | De maximale grootte van de reactiebuffer voor SQL-aanvragen, in kilobytes (KB's). MaxRespSize=10485760 Bijvoorbeeld.Voor Teradata Database versie 16.00 of hoger is de maximumwaarde 7361536. Voor verbindingen die eerdere versies gebruiken, is de maximumwaarde 1048576. |
65536 |
MechanismName | Als u het LDAP-protocol wilt gebruiken om de verbinding te verifiëren, geeft u MechanismName=LDAP op. |
N.v.t. |
Voorbeeld van basisverificatie
{
"name": "TeradataLinkedService",
"properties": {
"type": "Teradata",
"typeProperties": {
"connectionString": "DBCName=<server>;Uid=<username>;Pwd=<password>"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Voorbeeld van Windows-verificatie
{
"name": "TeradataLinkedService",
"properties": {
"type": "Teradata",
"typeProperties": {
"connectionString": "DBCName=<server>",
"username": "<username>",
"password": "<password>"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Voorbeeld van LDAP-verificatie
{
"name": "TeradataLinkedService",
"properties": {
"type": "Teradata",
"typeProperties": {
"connectionString": "DBCName=<server>;MechanismName=LDAP;Uid=<username>;Pwd=<password>"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Notitie
De volgende nettolading wordt nog steeds ondersteund. In de toekomst moet u echter de nieuwe gebruiken.
Vorige nettolading:
{
"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"
}
}
}
Eigenschappen van gegevensset
Deze sectie bevat een lijst met eigenschappen die worden ondersteund door de Teradata-gegevensset. Zie Gegevenssets voor een volledige lijst met secties en eigenschappen die beschikbaar zijn voor het definiëren van gegevenssets.
Als u gegevens uit Teradata wilt kopiëren, worden de volgende eigenschappen ondersteund:
Eigenschappen | Beschrijving | Vereist |
---|---|---|
type | De typeeigenschap van de gegevensset moet worden ingesteld op TeradataTable . |
Ja |
database | De naam van het Teradata-exemplaar. | Nee (als 'query' in de activiteitsbron is opgegeven) |
table | De naam van de tabel in het Teradata-exemplaar. | Nee (als 'query' in de activiteitsbron is opgegeven) |
Voorbeeld:
{
"name": "TeradataDataset",
"properties": {
"type": "TeradataTable",
"typeProperties": {},
"schema": [],
"linkedServiceName": {
"referenceName": "<Teradata linked service name>",
"type": "LinkedServiceReference"
}
}
}
Notitie
RelationalTable
type gegevensset wordt nog steeds ondersteund. U wordt echter aangeraden de nieuwe gegevensset te gebruiken.
Vorige nettolading:
{
"name": "TeradataDataset",
"properties": {
"type": "RelationalTable",
"linkedServiceName": {
"referenceName": "<Teradata linked service name>",
"type": "LinkedServiceReference"
},
"typeProperties": {}
}
}
Eigenschappen van de kopieeractiviteit
Deze sectie bevat een lijst met eigenschappen die worden ondersteund door de Teradata-bron. Zie Pijplijnen voor een volledige lijst met secties en eigenschappen die beschikbaar zijn voor het definiëren van activiteiten.
Teradata als bron
Tip
Als u gegevens efficiënt wilt laden vanuit Teradata met behulp van gegevenspartitionering, vindt u meer informatie in de sectie Parallel kopiëren uit Teradata .
Als u gegevens uit Teradata wilt kopiëren, worden de volgende eigenschappen ondersteund in de sectie bron van de kopieeractiviteit:
Eigenschappen | Beschrijving | Vereist |
---|---|---|
type | De typeeigenschap van de bron van de kopieeractiviteit moet worden ingesteld op TeradataSource . |
Ja |
query | Gebruik de aangepaste SQL-query om gegevens te lezen. Een voorbeeld is "SELECT * FROM MyTable" .Wanneer u gepartitioneerde belasting inschakelt, moet u eventuele bijbehorende ingebouwde partitieparameters in uw query koppelen. Zie de sectie Parallel kopiëren uit Teradata voor voorbeelden. |
Nee (als tabel in de gegevensset is opgegeven) |
partitionOptions | Hiermee geeft u de opties voor gegevenspartitionering op die worden gebruikt voor het laden van gegevens uit Teradata. Toegestane waarden zijn: Geen (standaard), Hash en DynamicRange. Wanneer een partitieoptie is ingeschakeld (dat wil niet None ), wordt de mate van parallelle uitvoering om gegevens uit Teradata gelijktijdig te laden, bepaald door de parallelCopies instelling voor de kopieeractiviteit. |
Nee |
partitionSettings | Geef de groep van de instellingen voor gegevenspartitionering op. Toepassen wanneer de partitieoptie niet None is. |
Nee |
partitionColumnName | Geef de naam op van de bronkolom die wordt gebruikt door bereikpartitie of Hash-partitie voor parallelle kopie. Als deze niet is opgegeven, wordt de primaire index van de tabel automatisch gedetecteerd en gebruikt als de partitiekolom. Toepassen wanneer de partitieoptie is Hash of DynamicRange . Als u een query gebruikt om de brongegevens op te halen, hook ?AdfHashPartitionCondition of ?AdfRangePartitionColumnName in WHERE-component. Zie het voorbeeld in de sectie Parallel kopiëren uit Teradata . |
Nee |
partitionUpperBound | De maximale waarde van de partitiekolom om gegevens te kopiëren. Toepassen wanneer de partitieoptie is DynamicRange . Als u een query gebruikt om brongegevens op te halen, koppelt ?AdfRangePartitionUpbound u deze in de WHERE-component. Zie de sectie Parallel kopiëren uit Teradata voor een voorbeeld. |
Nee |
partitionLowerBound | De minimale waarde van de partitiekolom om gegevens te kopiëren. Toepassen wanneer de partitieoptie is DynamicRange . Als u een query gebruikt om de brongegevens op te halen, koppelt u deze ?AdfRangePartitionLowbound aan de WHERE-component. Zie de sectie Parallel kopiëren uit Teradata voor een voorbeeld. |
Nr. |
Notitie
RelationalSource
type kopieerbron wordt nog steeds ondersteund, maar biedt geen ondersteuning voor de nieuwe ingebouwde parallelle belasting van Teradata (partitieopties). U wordt echter aangeraden de nieuwe gegevensset te gebruiken.
Voorbeeld: gegevens kopiëren met behulp van een eenvoudige query zonder partitie
"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>"
}
}
}
]
Parallelle kopie van Teradata
De Teradata-connector biedt ingebouwde gegevenspartitionering om gegevens uit Teradata parallel te kopiëren. U vindt opties voor gegevenspartitionering in de brontabel van de kopieeractiviteit.
Wanneer u gepartitioneerde kopieën inschakelt, voert de service parallelle query's uit op uw Teradata-bron om gegevens te laden op partities. De parallelle graad wordt bepaald door de parallelCopies
instelling voor de kopieeractiviteit. Als u bijvoorbeeld instelt op parallelCopies
vier, genereert de service gelijktijdig vier query's en voert deze uit op basis van de opgegeven partitieoptie en -instellingen en haalt elke query een deel van de gegevens op uit uw Teradata.
U wordt aangeraden om parallel kopiëren met gegevenspartitionering in te schakelen, met name wanneer u grote hoeveelheden gegevens uit uw Teradata laadt. Hier volgen voorgestelde configuraties voor verschillende scenario's. Wanneer u gegevens kopieert naar een bestandsgegevensarchief, is het raadzaam om naar een map te schrijven als meerdere bestanden (alleen mapnaam opgeven), in welk geval de prestaties beter zijn dan schrijven naar één bestand.
Scenario | Voorgestelde instellingen |
---|---|
Volledige belasting van grote tabel. | Partitieoptie: Hash. Tijdens de uitvoering detecteert de service automatisch de primaire indexkolom, past er een hash op toe en kopieert de gegevens per partitie. |
Laad een grote hoeveelheid gegevens met behulp van een aangepaste query. | Partitieoptie: Hash. Query: SELECT * FROM <TABLENAME> WHERE ?AdfHashPartitionCondition AND <your_additional_where_clause> .Partitiekolom: Geef de kolom op die wordt gebruikt voor het toepassen van een hash-partitie. Als dit niet is opgegeven, detecteert de service automatisch de PK-kolom van de tabel die u hebt opgegeven in de Teradata-gegevensset. Tijdens de uitvoering wordt de service vervangen door ?AdfHashPartitionCondition de hashpartitielogica en verzonden naar Teradata. |
Laad een grote hoeveelheid gegevens met behulp van een aangepaste query, met een kolom met een geheel getal met gelijkmatig verdeelde waarde voor bereikpartitionering. | Partitieopties: partitie dynamisch bereik. Query: SELECT * FROM <TABLENAME> WHERE ?AdfRangePartitionColumnName <= ?AdfRangePartitionUpbound AND ?AdfRangePartitionColumnName >= ?AdfRangePartitionLowbound AND <your_additional_where_clause> .Partitiekolom: Geef de kolom op die wordt gebruikt om gegevens te partitioneren. U kunt partitioneren op basis van de kolom met een gegevenstype geheel getal. Bovengrens en partitieondergrens partitioneren: geef op of u wilt filteren op basis van de partitiekolom om alleen gegevens op te halen tussen het onderste en bovenste bereik. Tijdens de uitvoering vervangt ?AdfRangePartitionColumnName de service, ?AdfRangePartitionUpbound en ?AdfRangePartitionLowbound door de werkelijke kolomnaam en waardebereiken voor elke partitie en verzendt deze naar Teradata. Als de partitiekolom 'ID' bijvoorbeeld is ingesteld met de ondergrens 1 en de bovengrens als 80, waarbij parallelle kopie is ingesteld als 4, haalt de service gegevens op met 4 partities. Hun id's liggen tussen [1.20], [21, 40], [41, 60] en [61, 80], respectievelijk. |
Voorbeeld: query met hashpartitie
"source": {
"type": "TeradataSource",
"query": "SELECT * FROM <TABLENAME> WHERE ?AdfHashPartitionCondition AND <your_additional_where_clause>",
"partitionOption": "Hash",
"partitionSettings": {
"partitionColumnName": "<hash_partition_column_name>"
}
}
Voorbeeld: query met partitie dynamisch bereik
"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>"
}
}
Toewijzing van gegevenstypen voor Teradata
Wanneer u gegevens kopieert uit Teradata, zijn de volgende toewijzingen van de gegevenstypen van Teradata van toepassing op de interne gegevenstypen die door de service worden gebruikt. Zie Schema- en gegevenstypetoewijzingen voor meer informatie over hoe de kopieeractiviteit het bronschema en het gegevenstype toewijst aan de sink.
Teradata-gegevenstype | Tussentijdse servicegegevenstype |
---|---|
BigInt | Int64 |
Blob | Byte[] |
Byte | Byte[] |
ByteInt | Int16 |
Char | String |
Clob | String |
Datum | Datum en tijd |
Decimal | Decimal |
Dubbel | Dubbel |
Grafisch | Wordt niet ondersteund. Expliciete cast toepassen in de bronquery. |
Geheel getal | Int32 |
Intervaldag | Wordt niet ondersteund. Expliciete cast toepassen in de bronquery. |
Intervaldag tot uur | Wordt niet ondersteund. Expliciete cast toepassen in de bronquery. |
Intervaldag tot minuut | Wordt niet ondersteund. Expliciete cast toepassen in de bronquery. |
Intervaldag tot seconde | Wordt niet ondersteund. Expliciete cast toepassen in de bronquery. |
Intervaluur | Wordt niet ondersteund. Expliciete cast toepassen in de bronquery. |
Interval van uur tot minuut | Wordt niet ondersteund. Expliciete cast toepassen in de bronquery. |
Interval van uur tot seconde | Wordt niet ondersteund. Expliciete cast toepassen in de bronquery. |
Intervalminut | Wordt niet ondersteund. Expliciete cast toepassen in de bronquery. |
Interval van minuut tot seconde | Wordt niet ondersteund. Expliciete cast toepassen in de bronquery. |
Intervalmaand | Wordt niet ondersteund. Expliciete cast toepassen in de bronquery. |
Interval seconde | Wordt niet ondersteund. Expliciete cast toepassen in de bronquery. |
Intervaljaar | Wordt niet ondersteund. Expliciete cast toepassen in de bronquery. |
Intervaljaar tot maand | Wordt niet ondersteund. Expliciete cast toepassen in de bronquery. |
Aantal | Dubbel |
Periode (datum) | Wordt niet ondersteund. Expliciete cast toepassen in de bronquery. |
Periode (tijd) | Wordt niet ondersteund. Expliciete cast toepassen in de bronquery. |
Periode (tijd met tijdzone) | Wordt niet ondersteund. Expliciete cast toepassen in de bronquery. |
Periode (tijdstempel) | Wordt niet ondersteund. Expliciete cast toepassen in de bronquery. |
Periode (tijdstempel met tijdzone) | Wordt niet ondersteund. Expliciete cast toepassen in de bronquery. |
SmallInt | Int16 |
Tijd | TimeSpan |
Tijd met tijdzone | TimeSpan |
Tijdstempel | Datum en tijd |
Tijdstempel met tijdzone | Datum en tijd |
VarByte | Byte[] |
VarChar | String |
VarGraphic | Wordt niet ondersteund. Expliciete cast toepassen in de bronquery. |
Xml | Wordt niet ondersteund. Expliciete cast toepassen in de bronquery. |
Eigenschappen van opzoekactiviteit
Als u meer wilt weten over de eigenschappen, controleert u de lookup-activiteit.
Gerelateerde inhoud
Zie Ondersteunde gegevensarchieven voor een lijst met gegevensarchieven die worden ondersteund als bronnen en sinks door de kopieeractiviteit.