Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Dit artikel is deel vijf van een zevendelige reeks die richtlijnen biedt voor het migreren van Teradata naar Azure Synapse Analytics. De focus van dit artikel is aanbevolen procedures voor het minimaliseren van SQL-problemen.
Overzicht
Kenmerken van Teradata-omgevingen
Aanbeveling
Teradata was een pionier in grootschalige SQL-databases met behulp van MPP in de jaren '80.
In 1984 bracht Teradata in eerste instantie hun databaseproduct uit. Het heeft MPP-technieken (Massively Parallel Processing) geïntroduceerd om gegevensverwerking op een grotere schaal mogelijk te maken dan de bestaande mainframetechnologieën die op dat moment beschikbaar zijn. Sindsdien is het product ontwikkeld en heeft veel installaties onder grote financiële instellingen, telecommunicatie en detailhandelsbedrijven. De oorspronkelijke implementatie gebruikte eigen hardware en was kanaal gekoppeld aan mainframes, meestal IBM- of IBM-compatibele processors.
Hoewel recentere aankondigingen netwerkconnectiviteit en de beschikbaarheid van de Teradata-technologiestack in de cloud (inclusief Azure) bevatten, zijn de meeste bestaande installaties on-premises, dus veel gebruikers overwegen om bepaalde of alle Teradata-gegevens te migreren naar Azure Synapse Analytics om de voordelen van een overstap naar een moderne cloudomgeving te verkrijgen.
Aanbeveling
Tal van bestaande Teradata-installaties zijn data-warehouses met behulp van een dimensionaal gegevensmodel.
Teradata-technologie wordt vaak gebruikt voor het implementeren van een datawarehouse, waarbij complexe analytische query's worden ondersteund op grote gegevensvolumes met behulp van SQL. Dimensionale gegevensmodellen, ster- of sneeuwvlokschema's, zijn gebruikelijk, 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 methode is het migreren van het bestaande gegevensmodel as-is om risico's en tijd te verminderen. Zelfs als de uiteindelijke bedoeling is om wijzigingen aan te brengen in het gegevensmodel (bijvoorbeeld overstappen op een gegevenskluismodel), voert u een eerste 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 markeert mogelijke SQL-verschillen die kunnen optreden tijdens het migreren vanuit een verouderde Teradata-omgeving en biedt tijdelijke oplossingen.
Een Azure VM Teradata-exemplaar gebruiken als onderdeel van een migratie
Aanbeveling
Gebruik een Azure-VM 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 VIRTUELE machine in Azure, samen met de Azure Synapse-doelomgeving.
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 naar het VM-exemplaar moeten worden gemigreerd, efficiënt te verplaatsen. Vervolgens kunnen alle migratietaken worden uitgevoerd in 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 en -hulpprogramma's zijn beschikbaar in de Azure-omgeving.
Eenmaal in de Azure-omgeving zijn er geen potentiële problemen met de beschikbaarheid van netwerkbandbreedte tussen het on-premises bronsysteem en het clouddoelsysteem.
Hulpprogramma's zoals Azure Data Factory kunnen hulpprogramma's zoals Teradata Parallel Transporter efficiënt aanroepen om gegevens snel en eenvoudig te migreren.
Het migratieproces wordt volledig ingedeeld en beheerd in de Azure-omgeving.
Azure Data Factory gebruiken om een migratie op basis van metagegevens te implementeren
Aanbeveling
Automatiseer het migratieproces met behulp van De mogelijkheden van Azure Data Factory.
Automatiseer en orchestrateer 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 bijna vol capaciteit is bereikt.
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, pijplijnen genoemd, maken en plannen 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 gegevenstabellen weer te geven die moeten worden gemigreerd en hun locatie, kunt u de Data Factory-faciliteiten gebruiken om delen van het migratieproces te beheren en te automatiseren. U kunt ook Azure Synapse Pipelines gebruiken.
SQL DDL-verschillen tussen Teradata en Azure Synapse
DDL (SQL Data Definition Language)
Aanbeveling
SQL DDL-opdrachten CREATE TABLE en CREATE VIEW standaardkernelementen hebben, 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 om de definitie van implementatiespecifieke functies zoals indexering, tabeldistributie en partitioneringsopties toe te staan.
In de volgende secties worden teradata-specifieke opties besproken die u kunt overwegen tijdens een migratie naar Azure Synapse.
Overwegingen voor tabellen
Aanbeveling
Gebruik bestaande indexen om een indicatie te geven van 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 bronomgeving van Teradata, kan dit erop wijzen dat er een niet-geclusterde index moet worden gemaakt in de gemigreerde Azure Synapse-database. Andere systeemeigen technieken voor prestatieoptimalisatie, zoals tabelreplicatie, zijn mogelijk meer van toepassing dan een rechte 'like-for-like'-index maken.
Niet-ondersteunde Teradata-tabeltypen
Aanbeveling
Standaardtabellen in Azure Synapse kunnen gemigreerde Teradata-tijdreeksen en tijdelijke tabellen ondersteunen.
Teradata bevat ondersteuning voor speciale tabeltypen voor tijdreeks- en tijdelijke gegevens. De syntaxis en enkele 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.
Niet-ondersteunde Teradata-gegevenstypen
Aanbeveling
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 kolomtype Teradata 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 |
| EEN | 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 |
| koolstofmonoxide | CLOB | CLOB-gegevenstype wordt niet rechtstreeks ondersteund, maar kan worden vervangen door VARCHAR. |
| curriculum vitae | VARCHAR | VARCHAR |
| D | Decimaal | Decimaal |
| DA | DATE | DATE |
| DH | INTERVAL 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 | Gegevenssetgegevenstype 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 | UREN TOT SECONDEN | 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 |
| JN | JSON | Het JSON-gegevenstype wordt momenteel niet rechtstreeks ondersteund in Azure Synapse, maar JSON-gegevens kunnen worden opgeslagen in een VARCHAR-veld. |
| MI | INTERVALMINUT | INTERVAL-gegevenstypen worden niet ondersteund in Azure Synapse, maar datumberekeningen kunnen worden uitgevoerd met de datumvergelijkingsfuncties (bijvoorbeeld DATEDIFF en DATEADD). |
| MO | INTERVAL MAAND | INTERVAL-gegevenstypen worden niet ondersteund in Azure Synapse, maar datumberekeningen kunnen worden uitgevoerd met de datumvergelijkingsfuncties (bijvoorbeeld DATEDIFF en DATEADD). |
| mw. | INTERVALMINUT TOT SECONDE | INTERVAL-gegevenstypen worden niet ondersteund in Azure Synapse, maar datumberekeningen kunnen worden uitgevoerd met de datumvergelijkingsfuncties (bijvoorbeeld DATEDIFF en DATEADD). |
| N | GETAL | NUMERIEK |
| PD | PERIODE(DATUM) | Kan worden geconverteerd naar VARCHAR of worden gesplitst in twee afzonderlijke datums |
| namiddag | PERIODE (TIJDSTEMPEL MET TIJDZONE) | Kan worden geconverteerd naar VARCHAR of opgesplitst in twee afzonderlijke tijdstempels (DATETIMEOFFSET) |
| Postscriptum | PERIODE(TIJDSTEMPEL) | Kan worden geconverteerd naar "VARCHAR" of opgesplitst in twee afzonderlijke tijdstempels ("DATETIMEOFFSET") |
| PT | PERIODE(TIJD) | Kan worden geconverteerd naar VARCHAR of worden gesplitst in twee afzonderlijke tijden |
| PZ | PERIODE (TIJD MET TIJDZONE) | Kan worden geconverteerd naar VARCHAR of worden gesplitst in twee afzonderlijke tijden, maar MET TIJDZONE wordt niet ondersteund voor TIME |
| SC | INTERVAL SECONDE | 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 'wandklok' tijd zonder een tijdzoneverschil. |
| 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 | INTERVALJAAR | 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 dit in het migratieplan moet worden toegestaan. Gebruik bijvoorbeeld een SQL-query zoals deze om te zoeken naar exemplaren van niet-ondersteunde gegevenstypen 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;
Aanbeveling
Hulpprogramma's en services van derden kunnen taken voor gegevenstoewijzing automatiseren.
Er zijn externe leveranciers die hulpprogramma's en services aanbieden om migratie te automatiseren, inclusief de toewijzing 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)
Aanbeveling
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 is 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 aangeeft, wordt echter onderhouden in systeemcatalogustabellen. Dit is de beste bron van deze informatie omdat deze gegarandeerd up-to-date en volledig is. Houd er rekening mee dat de door de gebruiker onderhouden documentatie mogelijk niet is gesynchroniseerd met de huidige tabeldefinities.
Verkrijg toegang tot deze informatie met weergaven op de catalogus, zoals DBC.ColumnsV, en genereer de equivalente DDL-instructies voor de overeenkomstige CREATE TABLE-tabellen in Azure Synapse.
Aanbeveling
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. 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.
SQL DML-verschillen tussen Teradata en Azure Synapse
SQL Data Manipulation Language (DML)
Aanbeveling
SQL DML-opdrachten SELECTen INSERTstandaardkernelementen hebben, UPDATE maar kunnen ook verschillende syntaxisopties implementeren.
De ANSI SQL-standaard definieert de basissyntaxis voor DML-opdrachten, zoals SELECT, INSERTUPDATEen DELETE. Zowel Teradata als Azure Synapse gebruiken deze opdrachten, maar in sommige gevallen zijn er implementatieverschillen.
In de volgende secties worden de teradata-specifieke DML-opdrachten besproken die u moet overwegen tijdens een migratie naar Azure Synapse.
Verschillen in SQL DML-syntaxis
Houd rekening met deze verschillen in de DML-syntaxis (SQL Data Manipulation Language) tussen Teradata SQL en Azure Synapse (T-SQL) tijdens de migratie:
QUALIFY: Teradata ondersteunt deQUALIFYoperator. Voorbeeld: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 heeft operators zoals
DATEADDenDATEDIFFdie kunnen worden gebruikt voorDATEofDATETIMEvelden. Teradata ondersteunt directe aftrekking op datums zoalsSELECT DATE1 - DATE2 FROM...Geef in
GROUP BYordinaal expliciet de naam van de T-SQL-kolom op.LIKE ANY: Teradata ondersteuntLIKE ANYsyntaxis zoals:SELECT * FROM CUSTOMER WHERE POSTCODE LIKE ANY ('CV1%', 'CV2%', 'CV3%');Het equivalent in de Azure Synapse-syntaxis is:
SELECT * FROM CUSTOMER WHERE (POSTCODE LIKE 'CV1%') OR (POSTCODE LIKE 'CV2%') OR (POSTCODE LIKE 'CV3%');Afhankelijk van systeeminstellingen kunnen tekenvergelijkingen in Teradata standaard niet hoofdlettergevoelig zijn. In Azure Synapse zijn tekenvergelijkingen altijd hoofdlettergevoelig.
UITLEG gebruiken om verouderde SQL te valideren
Aanbeveling
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 een aantal representatieve SQL-instructies uit de verouderde systeemquerylogboeken vast te leggen, deze query's vooraf te voegen met EXPLAIN en (ervan uitgaande dat een gemigreerd gegevensmodel met dezelfde tabel- en kolomnamen in Azure Synapse) deze instructies uitvoert EXPLAIN in Azure Synapse. Elke incompatibele SQL genereert een fout. Gebruik deze informatie om de schaal van de recoding-taak te bepalen. Deze benadering vereist niet dat gegevens in de Azure-omgeving worden geladen, alleen dat de relevante tabellen en weergaven zijn gemaakt.
Functies, opgeslagen procedures, triggers en reeksen
Aanbeveling
Als onderdeel van de voorbereidingsfase beoordeelt u het aantal en het type niet-gegevensobjecten dat wordt 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 afhandelen ervan. Wijs vervolgens een juiste toewijzing van resources toe aan 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.
Aanbeveling
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 ze zonder wijzigingen worden gemigreerd. Sommige systeemfuncties hebben mogelijk iets andere syntaxis, maar de vereiste wijzigingen kunnen worden geautomatiseerd. Systeemfuncties waarvoor 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 maakt gebruik van de populaire Transact-SQL taal om door de gebruiker gedefinieerde functies te implementeren.
Opgeslagen procedures
De meeste moderne databaseproducten maken het mogelijk om procedures op te slaan in de database. Teradata biedt hiervoor de SPL-taal. Een opgeslagen procedure bevat doorgaans SQL-instructies en een procedurele logica 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, moet u ze dienovereenkomstig opnieuw coderen.
Triggers
Azure Synapse biedt geen ondersteuning voor het maken van triggers, maar u kunt ze implementeren in Azure Data Factory.
Sequences
Azure Synapse-reeksen worden op een vergelijkbare manier verwerkt als Teradata, met behulp van IDENTITY om surrogaatsleutels of beheerde identiteit te maken.
Teradata naar T-SQL-toewijzing
In deze tabel ziet u de Teradata naar T-SQL-compatibele toewijzing van Azure Synapse SQL-gegevenstypen.
| Teradata-gegevenstype | Azure Synapse SQL-gegevenstype |
|---|---|
| Bigint | Bigint |
| Bool | Beetje |
| booleaans | bit |
| byteint | tinyint |
| char [(p)] | char [(p)] |
| karakter variabel [(p)] | varchar [(p)] |
| teken [(p)] | char [(p)] |
| teken varieert [(p)] | varchar [(p)] |
| Datum | date |
| datumtijd | datetime |
| dec [(p[,s])] | decimaal [(p[;s])] |
| decimaal [(p[;s])] | decimaal [(p[;s])] |
| Dubbele | drijvend(53) |
| dubbele precisie | drijvend(53) |
| float [(p)] | float [(p)] |
| float4 | drijvend(53) |
| float8 | drijvend(53) |
| Int | int |
| int1 | tinyint |
| int2 | smallint |
| int4 | Int |
| int8 | Bigint |
| geheel getal | integer |
| Interval | Niet ondersteund |
| nationaal teken varieert [(p)] | nvarchar [(p)] |
| nationaal karakter [(p)] | nchar [(p)] |
| nationaal karakter varieert [(p)] | nvarchar [(p)] |
| nchar [(p)] | nchar [(p)] |
| numeriek [(p[;s])] | numeric [(p[,s]) |
| nvarchar [(p)] | nvarchar [(p)] |
| Reëel | echt |
| Smallint | smallint |
| Tijd | time |
| tijd met tijdzone | datetimeoffset |
| tijd zonder tijdzone | time |
| Tijdspanne | Niet ondersteund |
| Tijdstempel | datetime2 |
| timetz | datetimeoffset |
| varchar [(p)] | varchar [(p)] |
Samenvatting
Typische bestaande 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 dimensional gegevensmodel. Deze factoren zorgen ervoor dat ze goede kandidaten zijn voor migratie naar Azure Synapse.
Volg deze aanbevelingen om de taak van het migreren van de werkelijke SQL-code te minimaliseren:
De eerste migratie van het datawarehouse moet worden uitgevoerd zoals het is om risico's en tijd te minimaliseren, zelfs als in de uiteindelijke omgeving een ander gegevensmodel, zoals een data vault, wordt opgenomen.
Overweeg het gebruik van een Teradata-exemplaar in een Azure-VM als een stap voor stap 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 aanpak te plannen om te beperken.
Automatiseer het proces waar mogelijk om fouten, risico's en tijd voor de migratie te minimaliseren.
Overweeg om gespecialiseerde Microsoft-partners en -services te gebruiken 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 teradata-datawarehousemigratie naar Azure Synapse Analytics.