Delen via


SQL-problemen voor Teradata-migraties minimaliseren

Dit artikel is deel vijf van een zevendelige reeks met richtlijnen voor het migreren van Teradata naar Azure Synapse Analytics. De focus van dit artikel ligt op best practices voor het minimaliseren van SQL-problemen.

Overzicht

Kenmerken van Teradata-omgevingen

Tip

Teradata was in de jaren '80 een pionier van grootschalige SQL-databases met BEHULP van MPP.

In 1984 bracht Teradata voor het eerst hun databaseproduct uit. Het introduceerde MPP-technieken (Massively Parallel Processing) om gegevensverwerking op een schaal efficiënter mogelijk te maken dan de bestaande mainframe-technologieën die op dat moment beschikbaar waren. Sindsdien heeft het product zich ontwikkeld en heeft het veel installaties onder grote financiële instellingen, telecommunicatie en detailhandelsbedrijven. De oorspronkelijke implementatie gebruikte eigen hardware en was een kanaal dat was gekoppeld aan mainframes, meestal IBM of IBM-compatibele processors.

Hoewel recentere aankondigingen betrekking hebben op netwerkconnectiviteit en de beschikbaarheid van de Teradata-technologiestack in de cloud (inclusief Azure), zijn de meeste bestaande installaties on-premises, dus veel gebruikers overwegen om een deel of al hun Teradata-gegevens te migreren naar Azure Synapse Analytics om de voordelen van een overstap naar een moderne cloudomgeving te verkrijgen.

Tip

Veel bestaande Teradata-installaties zijn datawarehouses die gebruikmaken van een dimensionaal gegevensmodel.

Teradata-technologie wordt vaak gebruikt voor het implementeren van een datawarehouse en ondersteunt complexe analysequery's op grote gegevensvolumes met behulp van SQL. Dimensionale gegevensmodellen, ster- of sneeuwvlokschema's, komen vaak voor, net als de implementatie van datamarts voor afzonderlijke afdelingen.

Deze combinatie van SQL- en dimensionale gegevensmodellen vereenvoudigt de migratie naar Azure Synapse, omdat de basisconcepten en SQL-vaardigheden overdraagbaar zijn. De aanbevolen aanpak is om het bestaande gegevensmodel as-is te migreren om risico's en tijd te verminderen. Zelfs als het uiteindelijk de bedoeling is om wijzigingen aan te brengen in het gegevensmodel (bijvoorbeeld door over te stappen op een gegevenskluismodel), voert u een initiële as-is-migratie uit en voert u vervolgens wijzigingen aan in de Azure-cloudomgeving, waarbij gebruik wordt gemaakt van de prestaties, elastische schaalbaarheid en kostenvoordelen.

Hoewel de SQL-taal is gestandaardiseerd, hebben afzonderlijke leveranciers in sommige gevallen eigen extensies geïmplementeerd. Dit document belicht mogelijke SQL-verschillen die u kunt tegenkomen tijdens het migreren vanuit een verouderde Teradata-omgeving en biedt tijdelijke oplossingen.

Een Azure VM Teradata-exemplaar gebruiken als onderdeel van een migratie

Tip

Gebruik een Virtuele Azure-machine om een tijdelijk Teradata-exemplaar te maken om de migratie te versnellen en de impact op het bronsysteem te minimaliseren.

Maak gebruik van de Azure-omgeving bij het uitvoeren van een migratie vanuit een on-premises Teradata-omgeving. Azure biedt betaalbare cloudopslag en elastische schaalbaarheid om een Teradata-exemplaar te maken binnen een VM in Azure, die is gekoppeld aan de doel-Azure Synapse-omgeving.

Met deze aanpak kunnen standaardhulpprogramma's van Teradata, zoals Teradata Parallel Data Transporter (of hulpprogramma's voor gegevensreplicatie van derden, zoals Attunity Replication), worden gebruikt om de subset van Teradata-tabellen die moeten worden gemigreerd naar het VM-exemplaar efficiënt te verplaatsen. Vervolgens kunnen alle migratietaken plaatsvinden binnen de Azure-omgeving. Deze aanpak heeft verschillende voordelen:

  • Na de initiële replicatie van gegevens wordt het bronsysteem niet beïnvloed door de migratietaken.

  • De vertrouwde Teradata-interfaces, -hulpprogramma's en -hulpprogramma's zijn beschikbaar in de Azure-omgeving.

  • Eenmaal in de Azure-omgeving zijn er geen potentiële problemen met de beschikbaarheid van de netwerkbandbreedte tussen het on-premises bronsysteem en het clouddoelsysteem.

  • Hulpprogramma's zoals Azure Data Factory efficiënt hulpprogramma's zoals Teradata Parallel Transporter kunnen aanroepen om snel en eenvoudig gegevens te migreren.

  • Het migratieproces wordt volledig binnen de Azure-omgeving beheerd en beheerd.

Gebruik Azure Data Factory om een migratie op basis van metagegevens te implementeren

Tip

Automatiseer het migratieproces met behulp van Azure Data Factory mogelijkheden.

Automatiseer en beheer het migratieproces door gebruik te maken van de mogelijkheden in de Azure-omgeving. Deze aanpak minimaliseert ook de impact van de migratie op de bestaande Teradata-omgeving, die mogelijk al dicht bij de volledige capaciteit wordt uitgevoerd.

Azure Data Factory is een cloudservice voor gegevensintegratie waarmee gegevensgestuurde werkstromen in de cloud kunnen worden gemaakt voor het organiseren en automatiseren van gegevensverplaatsing en gegevenstransformatie. Met Data Factory kunt u gegevensgestuurde werkstromen maken en plannen, pijplijnen genoemd, die gegevens uit verschillende gegevensarchieven kunnen opnemen. Het kan gegevens verwerken en transformeren met behulp van rekenservices zoals Azure HDInsight Hadoop, Spark, Azure Data Lake Analytics en Azure Machine Learning.

Door metagegevens te maken om de te migreren gegevenstabellen en hun locatie weer te geven, kunt u de Data Factory-faciliteiten gebruiken om delen van het migratieproces te beheren en automatiseren. U kunt ook Azure Synapse Pipelines gebruiken.

SQL DDL-verschillen tussen Teradata en Azure Synapse

SQL Data Definition Language (DDL)

Tip

SQL DDL-opdrachten CREATE TABLE en CREATE VIEW hebben standaard kernelementen, maar worden ook gebruikt om implementatiespecifieke opties te definiëren.

De ANSI SQL-standaard definieert de basissyntaxis voor DDL-opdrachten zoals CREATE TABLE en CREATE VIEW. Deze opdrachten worden gebruikt in zowel Teradata als Azure Synapse, maar ze zijn ook uitgebreid voor het definiëren van implementatiespecifieke functies, zoals indexering, tabeldistributie en partitioneringsopties.

In de volgende secties worden teradata-specifieke opties besproken die u kunt overwegen tijdens een migratie naar Azure Synapse.

Tabeloverwegingen

Tip

Gebruik bestaande indexen om een indicatie te geven van de kandidaten voor indexering in het gemigreerde magazijn.

Bij het migreren van tabellen tussen verschillende technologieën worden alleen de onbewerkte gegevens en de beschrijvende metagegevens fysiek verplaatst tussen de twee omgevingen. Andere database-elementen van het bronsysteem, zoals indexen en logboekbestanden, worden niet rechtstreeks gemigreerd, omdat deze mogelijk niet nodig zijn of anders kunnen worden geïmplementeerd in de nieuwe doelomgeving. Er is bijvoorbeeld geen equivalent van de optie in de MULTISET syntaxis van CREATE TABLE Teradata.

Het is belangrijk om te begrijpen waar prestatieoptimalisaties, zoals indexen, zijn gebruikt in de bronomgeving. Dit geeft aan waar prestatieoptimalisatie kan worden toegevoegd in de nieuwe doelomgeving. Als er bijvoorbeeld een niet-unieke secundaire index (NUSI) is gemaakt in de teradata-bronomgeving, kan dit erop wijzen dat er een niet-geclusterde index moet worden gemaakt in de gemigreerde Azure Synapse-database. Andere systeemeigen optimalisatietechnieken voor prestaties, zoals tabelreplicatie, zijn mogelijk meer van toepassing dan het maken van een rechte 'like-for-like'-index.

Niet-ondersteunde Teradata-tabeltypen

Tip

Standaardtabellen in Azure Synapse kunnen gemigreerde Teradata-tijdreeksen en tijdelijke tabellen ondersteunen.

Teradata biedt ondersteuning voor speciale tabeltypen voor tijdreeksen en tijdelijke gegevens. De syntaxis en sommige functies voor deze tabeltypen worden niet rechtstreeks ondersteund in Azure Synapse, maar de gegevens kunnen worden gemigreerd naar een standaardtabel met de juiste gegevenstypen en indexering of partitionering op de datum-/tijdkolom.

Teradata implementeert de tijdelijke queryfunctionaliteit via het herschrijven van query's om extra filters toe te voegen binnen een tijdelijke query om het toepasselijke datumbereik te beperken. Als deze functionaliteit momenteel wordt gebruikt in de teradata-bronomgeving en moet worden gemigreerd, moet deze extra filtering worden toegevoegd aan de relevante tijdelijke query's.

De Azure-omgeving bevat ook specifieke functies voor complexe analyses van tijdreeksgegevens op schaal, time series insights genoemd. Dit is gericht op IoT-gegevensanalysetoepassingen en is mogelijk geschikter voor deze use-case.

Niet-ondersteunde Teradata-gegevenstypen

Tip

Beoordeel de impact van niet-ondersteunde gegevenstypen als onderdeel van de voorbereidingsfase.

De meeste Teradata-gegevenstypen hebben een direct equivalent in Azure Synapse. In de volgende tabel ziet u de Teradata-gegevenstypen die niet worden ondersteund in Azure Synapse, samen met de aanbevolen toewijzing. In de tabel is het teradata-kolomtype het type dat is opgeslagen in de systeemcatalogus, bijvoorbeeld in DBC.ColumnsV.

Teradata-kolomtype Teradata-gegevenstype Azure Synapse gegevenstype
++ TD_ANYTYPE Niet ondersteund in Azure Synapse
A1 ARRAY Niet ondersteund in Azure Synapse
AN ARRAY Niet ondersteund in Azure Synapse
AT TIME TIME
BF BYTE BINARY
BO BLOB Blob-gegevenstype wordt niet rechtstreeks ondersteund, maar kan worden vervangen door BINARY.
BV VARBYTE BINARY
CF VARCHAR CHAR
CO CLOB CLOB-gegevenstype wordt niet rechtstreeks ondersteund, maar kan worden vervangen door VARCHAR.
CV VARCHAR VARCHAR
D DECIMAL DECIMAL
DA DATE DATE
DH INTERVAL VAN DAG TOT UUR INTERVAL-gegevenstypen worden niet ondersteund in Azure Synapse, maar datumberekeningen kunnen worden uitgevoerd met de datumvergelijkingsfuncties (bijvoorbeeld DATEDIFF en DATEADD).
DM INTERVAL VAN DAG TOT MINUUT INTERVAL-gegevenstypen worden niet ondersteund in Azure Synapse, maar datumberekeningen kunnen worden uitgevoerd met de datumvergelijkingsfuncties (bijvoorbeeld DATEDIFF en DATEADD).
DS INTERVAL VAN DAG TOT SECONDE INTERVAL-gegevenstypen worden niet ondersteund in Azure Synapse, maar datumberekeningen kunnen worden uitgevoerd met de datumvergelijkingsfuncties (bijvoorbeeld DATEDIFF en DATEADD).
DT DATASET Gegevenstype GEGEVENSSET wordt ondersteund in Azure Synapse.
DY INTERVALDAG INTERVAL-gegevenstypen worden niet ondersteund in Azure Synapse, maar datumberekeningen kunnen worden uitgevoerd met de datumvergelijkingsfuncties (bijvoorbeeld DATEDIFF en DATEADD).
F FLOAT FLOAT
HM INTERVAL VAN UUR TOT MINUUT INTERVAL-gegevenstypen worden niet ondersteund in Azure Synapse, maar datumberekeningen kunnen worden uitgevoerd met de datumvergelijkingsfuncties (bijvoorbeeld DATEDIFF en DATEADD).
HR INTERVAL UUR INTERVAL-gegevenstypen worden niet ondersteund in Azure Synapse, maar datumberekeningen kunnen worden uitgevoerd met de datumvergelijkingsfuncties (bijvoorbeeld DATEDIFF en DATEADD).
HS INTERVAL VAN UUR TOT SECONDE INTERVAL-gegevenstypen worden niet ondersteund in Azure Synapse, maar datumberekeningen kunnen worden uitgevoerd met de datumvergelijkingsfuncties (bijvoorbeeld DATEDIFF en DATEADD).
I1 BYTEINT TINYINT
I2 SMALLINT SMALLINT
I8 BIGINT BIGINT
I INTEGER INT
JOHANNES JSON JSON-gegevenstype wordt momenteel niet rechtstreeks ondersteund in Azure Synapse, maar JSON-gegevens kunnen worden opgeslagen in een VARCHAR-veld.
MI INTERVAL MINUUT INTERVAL-gegevenstypen worden niet ondersteund in Azure Synapse, maar datumberekeningen kunnen worden uitgevoerd met de datumvergelijkingsfuncties (bijvoorbeeld DATEDIFF en DATEADD).
MO INTERVALMAAND INTERVAL-gegevenstypen worden niet ondersteund in Azure Synapse, maar datumberekeningen kunnen worden uitgevoerd met de datumvergelijkingsfuncties (bijvoorbeeld DATEDIFF en DATEADD).
MS INTERVAL VAN MINUUT TOT SECONDE INTERVAL-gegevenstypen worden niet ondersteund in Azure Synapse, maar datumberekeningen kunnen worden uitgevoerd met de datumvergelijkingsfuncties (bijvoorbeeld DATEDIFF en DATEADD).
N NUMMER NUMERIEKE
PD PERIODE(DATUM) Kan worden geconverteerd naar VARCHAR of gesplitst in twee afzonderlijke datums
PM PERIODE (TIJDSTEMPEL MET TIJDZONE) Kan worden geconverteerd naar VARCHAR of gesplitst in twee afzonderlijke tijdstempels (DATETIMEOFFSET)
PS PERIOD(TIMESTAMP) Kan worden geconverteerd naar VARCHAR of gesplitst in twee afzonderlijke tijdstempels (DATETIMEOFFSET)
PT PERIOD(TIME) Kan worden geconverteerd naar VARCHAR of splitsen in twee afzonderlijke tijden
PZ PERIODE (TIJD MET TIJDZONE) Kan worden geconverteerd naar VARCHAR of splitsen in twee afzonderlijke tijden, maar MET TIJDZONE wordt niet ondersteund voor TIME
SC INTERVAL SECOND INTERVAL-gegevenstypen worden niet ondersteund in Azure Synapse, maar datumberekeningen kunnen worden uitgevoerd met de datumvergelijkingsfuncties (bijvoorbeeld DATEDIFF en DATEADD).
SZ TIJDSTEMPEL MET TIJDZONE DATETIMEOFFSET
TS TIMESTAMP DATETIME of DATETIME2
TZ TIJD MET TIJDZONE TIME WITH TIME ZONE wordt niet ondersteund omdat TIME alleen wordt opgeslagen met behulp van 'wandklok'-tijd zonder tijdzone-verschuiving.
XM XML Het XML-gegevenstype wordt momenteel niet rechtstreeks ondersteund in Azure Synapse, maar XML-gegevens kunnen worden opgeslagen in een VARCHAR-veld.
YM INTERVAL VAN JAAR TOT MAAND INTERVAL-gegevenstypen worden niet ondersteund in Azure Synapse, maar datumberekeningen kunnen worden uitgevoerd met de datumvergelijkingsfuncties (bijvoorbeeld DATEDIFF en DATEADD).
JAAR INTERVAL JAAR INTERVAL-gegevenstypen worden niet ondersteund in Azure Synapse, maar datumberekeningen kunnen worden uitgevoerd met de datumvergelijkingsfuncties (bijvoorbeeld DATEDIFF en DATEADD).

Gebruik de metagegevens uit de Teradata-catalogustabellen om te bepalen of een van deze gegevenstypen moet worden gemigreerd en om dit toe te staan in het migratieplan. Gebruik bijvoorbeeld een SQL-query zoals deze om eventuele exemplaren van niet-ondersteunde gegevenstypen te vinden die aandacht vereisen.

SELECT
ColumnType, CASE
WHEN ColumnType = '++' THEN 'TD_ANYTYPE' 
WHEN ColumnType = 'A1' THEN 'ARRAY' WHEN 
ColumnType = 'AN' THEN 'ARRAY' WHEN 
ColumnType = 'BO' THEN 'BLOB'
WHEN ColumnType = 'CO' THEN 'CLOB'
WHEN ColumnType = 'DH' THEN 'INTERVAL DAY TO HOUR' WHEN 
ColumnType = 'DM' THEN 'INTERVAL DAY TO MINUTE' WHEN 
ColumnType = 'DS' THEN 'INTERVAL DAY TO SECOND' WHEN
ColumnType = 'DT' THEN 'DATASET'
WHEN ColumnType = 'DY' THEN 'INTERVAL DAY'
WHEN ColumnType = 'HM' THEN 'INTERVAL HOUR TO MINUTE' WHEN
ColumnType = 'HR' THEN 'INTERVAL HOUR'
WHEN ColumnType = 'HS' THEN 'INTERVAL HOUR TO SECOND' WHEN
ColumnType = 'JN' THEN 'JSON'
WHEN ColumnType = 'MI' THEN 'INTERVAL MINUTE' WHEN 
ColumnType = 'MO' THEN 'INTERVAL MONTH'
WHEN ColumnType = 'MS' THEN 'INTERVAL MINUTE TO SECOND' WHEN
ColumnType = 'PD' THEN 'PERIOD(DATE)'
WHEN ColumnType = 'PM' THEN 'PERIOD (TIMESTAMP WITH TIME ZONE)'
WHEN ColumnType = 'PS' THEN 'PERIOD(TIMESTAMP)' WHEN 
ColumnType = 'PT' THEN 'PERIOD(TIME)'
WHEN ColumnType = 'PZ' THEN 'PERIOD (TIME WITH TIME ZONE)' WHEN
ColumnType = 'SC' THEN 'INTERVAL SECOND'
WHEN ColumnType = 'SZ' THEN 'TIMESTAMP WITH TIME ZONE' WHEN
ColumnType = 'XM' THEN 'XML'
WHEN ColumnType = 'YM' THEN 'INTERVAL YEAR TO MONTH' WHEN
ColumnType = 'YR' THEN 'INTERVAL YEAR'
END AS Data_Type,
COUNT (*) AS Data_Type_Count FROM
DBC.ColumnsV
WHERE DatabaseName IN ('UserDB1', 'UserDB2', 'UserDB3') -- select databases to be migrated
GROUP BY 1,2
ORDER BY 1;

Tip

Hulpprogramma's en services van derden kunnen taken voor gegevenstoewijzing automatiseren.

Er zijn externe leveranciers die hulpprogramma's en services aanbieden voor het automatiseren van migratie, inclusief het toewijzen van gegevenstypen. Als een ETL-hulpprogramma van derden, zoals Informatica of Talend, al in gebruik is in de Teradata-omgeving, kunnen deze hulpprogramma's alle vereiste gegevenstransformaties implementeren.

DDL-generatie (Data Definition Language)

Tip

Gebruik bestaande Teradata-metagegevens om het genereren van CREATE TABLE en CREATE VIEW DDL voor Azure Synapse te automatiseren.

Bewerk bestaande Teradata CREATE TABLE en CREATE VIEW scripts om de equivalente definities te maken met gewijzigde gegevenstypen zoals eerder beschreven, indien nodig. Dit omvat meestal het verwijderen van extra Teradata-specifieke componenten, zoals FALLBACK of MULTISET.

Alle informatie die de huidige definities van tabellen en weergaven in de bestaande Teradata-omgeving specificeert, wordt echter bewaard in systeemcatalogustabellen. Dit is de beste bron van deze informatie, omdat deze gegarandeerd up-to-date en volledig is. Houd er rekening mee dat door de gebruiker onderhouden documentatie mogelijk niet is gesynchroniseerd met de huidige tabeldefinities.

Open deze informatie via weergaven in de catalogus, zoals DBC.ColumnsV en genereer de equivalente CREATE TABLE DDL-instructies voor de equivalente tabellen in Azure Synapse.

Tip

Hulpprogramma's en services van derden kunnen taken voor gegevenstoewijzing automatiseren.

Er zijn Microsoft-partners die hulpprogramma's en services bieden voor het automatiseren van migratie, waaronder toewijzing van gegevenstypen. En als een ETL-hulpprogramma van derden, zoals Informatica of Talend, al in gebruik is in de Teradata-omgeving, kan dat hulpprogramma alle vereiste gegevenstransformaties implementeren.

VERSCHILLEN in SQL DML tussen Teradata en Azure Synapse

SQL Data Manipulation Language (DML)

Tip

SQL DML-opdrachten SELECT, INSERTen UPDATE hebben standaard kernelementen, maar kunnen ook verschillende syntaxisopties implementeren.

De ANSI SQL-standaard definieert de basissyntaxis voor DML-opdrachten zoals SELECT, INSERT, UPDATEen DELETE. Zowel Teradata als Azure Synapse deze opdrachten gebruiken, maar in sommige gevallen zijn er implementatieverschillen.

In de volgende secties worden de teradata-specifieke DML-opdrachten besproken waarmee u rekening moet houden tijdens een migratie naar Azure Synapse.

Verschillen in SQL DML-syntaxis

Houd rekening met deze verschillen in DML-syntaxis (SQL Data Manipulation Language) tussen Teradata SQL en Azure Synapse (T-SQL) bij het migreren:

  • QUALIFY: Teradata ondersteunt de QUALIFY operator. Bijvoorbeeld:

    SELECT col1
    FROM tab1
    WHERE col1='XYZ'
    QUALIFY ROW_NUMBER () OVER (PARTITION by
    col1 ORDER BY col1) = 1;
    

    De equivalente Azure Synapse syntaxis is:

    SELECT * FROM (
    SELECT col1, ROW_NUMBER () OVER (PARTITION by col1 ORDER BY col1) rn
    FROM tab1 WHERE col1='XYZ'
    ) WHERE rn = 1;
    
  • Datumberekening: Azure Synapse bevat operatoren zoals DATEADD en DATEDIFF die kunnen worden gebruikt voor DATE velden of DATETIME velden. Teradata ondersteunt directe aftrekking op datums, zoals SELECT DATE1 - DATE2 FROM...

  • Geef GROUP BY in rangtelwoord expliciet de naam van de T-SQL-kolom op.

  • LIKE ANY: Teradata ondersteunt LIKE ANY syntaxis zoals:

    SELECT * FROM CUSTOMER
    WHERE POSTCODE LIKE ANY
    ('CV1%', 'CV2%', 'CV3%');
    

    Het equivalent in Azure Synapse syntaxis is:

    SELECT * FROM CUSTOMER
    WHERE
    (POSTCODE LIKE 'CV1%') OR (POSTCODE LIKE 'CV2%') OR (POSTCODE LIKE 'CV3%');
    
  • Afhankelijk van de systeeminstellingen zijn tekenvergelijkingen in Teradata mogelijk standaard niet hoofdlettergevoelig. In Azure Synapse zijn tekenvergelijkingen altijd hoofdlettergevoelig.

EXPLAIN gebruiken om verouderde SQL te valideren

Tip

Gebruik echte query's uit de bestaande systeemquerylogboeken om potentiële migratieproblemen te vinden.

Een manier om verouderde Teradata SQL te testen op compatibiliteit met Azure Synapse is door enkele representatieve SQL-instructies uit de verouderde systeemquerylogboeken vast te leggen, deze query's vooraf te laten gaan door EXPLAIN en (ervan uitgaande dat een 'like-for-like' gemigreerd gegevensmodel in Azure Synapse met dezelfde tabel- en kolomnamen) deze EXPLAIN instructies in Azure Synapse uit te voeren. Elke incompatibele SQL genereert een fout. Gebruik deze informatie om de schaal van de heroderende taak te bepalen. Voor deze aanpak is niet vereist dat gegevens in de Azure-omgeving worden geladen, maar alleen dat de relevante tabellen en weergaven zijn gemaakt.

Functies, opgeslagen procedures, triggers en reeksen

Tip

Als onderdeel van de voorbereidingsfase evalueert u het aantal en het type niet-gegevensobjecten die worden gemigreerd.

Wanneer u migreert vanuit een verouderde datawarehouse-omgeving, zoals Teradata, zijn er vaak andere elementen dan eenvoudige tabellen en weergaven die moeten worden gemigreerd naar de nieuwe doelomgeving. Voorbeelden hiervan zijn functies, opgeslagen procedures, triggers en reeksen.

Maak als onderdeel van de voorbereidingsfase een inventaris van de objecten die moeten worden gemigreerd en definieer de methoden voor het verwerken ervan. Wijs vervolgens een geschikte toewijzing van resources toe in het projectplan.

Er zijn mogelijk faciliteiten in de Azure-omgeving die de functionaliteit vervangen die is geïmplementeerd als functies of opgeslagen procedures in de Teradata-omgeving. In dit geval is het vaak efficiënter om de ingebouwde Azure-faciliteiten te gebruiken in plaats van de Teradata-functies opnieuw te gebruiken.

Tip

Producten en services van derden kunnen de migratie van niet-gegevenselementen automatiseren.

Microsoft-partners bieden hulpprogramma's en services waarmee de migratie kan worden geautomatiseerd.

Zie de volgende secties voor meer informatie over elk van deze elementen.

Functions

Net als bij de meeste databaseproducten ondersteunt Teradata systeemfuncties en door de gebruiker gedefinieerde functies binnen de SQL-implementatie. Wanneer u migreert naar een ander databaseplatform, zoals Azure Synapse, zijn algemene systeemfuncties beschikbaar en kunnen deze zonder wijzigingen worden gemigreerd. Sommige systeemfuncties hebben mogelijk iets andere syntaxis, maar de vereiste wijzigingen kunnen worden geautomatiseerd. Systeemfuncties waarvoor er geen equivalent is, zoals willekeurige door de gebruiker gedefinieerde functies, moeten mogelijk opnieuw worden gecodeerd met behulp van de talen die beschikbaar zijn in de doelomgeving. Azure Synapse gebruikt de populaire Transact-SQL-taal om door de gebruiker gedefinieerde functies te implementeren.

Opgeslagen procedures

De meeste moderne databaseproducten maken het mogelijk om procedures in de database op te slaan. Teradata biedt hiervoor de SPL-taal. Een opgeslagen procedure bevat doorgaans SQL-instructies en bepaalde procedurelogica, en kan gegevens of een status retourneren.

De toegewezen SQL-pools van Azure Synapse Analytics ondersteunen ook opgeslagen procedures met behulp van T-SQL, dus als u opgeslagen procedures moet migreren, codeer deze dan dienovereenkomstig.

Triggers

Azure Synapse biedt geen ondersteuning voor het maken van triggers, maar u kunt ze wel implementeren binnen Azure Data Factory.

Reeksen

Azure Synapse reeksen worden op dezelfde manier verwerkt als Teradata, waarbij IDENTITEIT wordt gebruikt om surrogaatsleutels of beheerde identiteit te maken.

Toewijzing van Teradata naar T-SQL

In deze tabel ziet u de teradata-naar-T-SQL-compatibiliteit met Azure Synapse SQL-gegevenstypetoewijzing:

Teradata-gegevenstype Azure Synapse SQL-gegevenstype
 bigint  bigint
 booleaans  bit
 booleaans  bit
 byteint  tinyint
 teken [(p)]  teken [(p)]
 teken varieert [(p)]  varchar [(p)]
 teken [(p)]  teken [(p)]
 teken varieert [(p)]  varchar [(p)]
 datum  datum
 datum/tijd  datum/tijd
 dec [(p[,s])]  decimaal [(p[,s])]
 decimaal [(p[,s])]  decimaal [(p[,s])]
 double  float(53)
 dubbele precisie  float(53)
 float [(p)]  float [(p)]
 float4  float(53)
 float8  float(53)
 int  int
 int1 tinyint
 int2 smallint
 int4 int
 int8 bigint
 geheel getal geheel getal
 interval Niet ondersteund
 nationale tekens variërend [(p)] nvarchar [(p)]
 nationaal karakter [(p)] nchar [(p)]
 nationaal karakter varieert [(p)]  nvarchar [(p)]
 nchar [(p)]  nchar [(p)]
 numeriek [(p[,s])]  numeriek [(p[,s])
 nvarchar [(p)]  nvarchar [(p)]
 werkelijk  werkelijk
 smallint  smallint
 tijd  tijd
 tijd met tijdzone  datetimeoffset
 tijd zonder tijdzone  tijd
 tijdsbestek   Niet ondersteund
 tijdstempel  datetime2
 timetz  datetimeoffset
 varchar [(p)]  varchar [(p)]

Samenvatting

Typische bestaande verouderde Teradata-installaties worden geïmplementeerd op een manier die migratie naar Azure Synapse eenvoudig maakt. Ze gebruiken SQL voor analytische query's op grote gegevensvolumes en hebben een vorm van dimensionale gegevensmodellen. Deze factoren maken ze goede kandidaten voor migratie naar Azure Synapse.

Volg deze aanbevelingen om de migratie van de werkelijke SQL-code te minimaliseren:

  • De initiële migratie van het datawarehouse moet zijn zoals het is om risico's en tijd tot een minimum te beperken, zelfs als in de uiteindelijke omgeving een ander gegevensmodel, zoals de gegevenskluis, wordt opgenomen.

  • Overweeg het gebruik van een Teradata-exemplaar in een Virtuele Azure-machine als stapsteen als onderdeel van het migratieproces.

  • Inzicht in de verschillen tussen teradata SQL-implementatie en Azure Synapse.

  • Gebruik metagegevens en querylogboeken uit de bestaande Teradata-implementatie om de impact van de verschillen te beoordelen en een oplossing te plannen.

  • Automatiseer het proces waar mogelijk om fouten, risico's en tijd voor de migratie te minimaliseren.

  • Overweeg het gebruik van gespecialiseerde Microsoft-partners en -services om de migratie te stroomlijnen.

Volgende stappen

Zie het volgende artikel in deze reeks voor meer informatie over hulpprogramma's van Microsoft en derden: Hulpprogramma's voor migratie van Teradata-datawarehouse naar Azure Synapse Analytics.