Udostępnij za pośrednictwem


Minimalizuj problemy SQL w przypadku migracji Teradata

Ten artykuł jest częścią piątej części siedmioczęściowej serii, która zawiera wskazówki dotyczące migracji z usługi Teradata do usługi Azure Synapse Analytics. Celem tego artykułu jest najlepsze rozwiązania dotyczące minimalizowania problemów z programem SQL.

Przegląd

Charakterystyka środowisk Teradata

Wskazówka

Teradata zapoczątkowała w 1980 roku bazy danych SQL na dużą skalę przy użyciu MPP.

W 1984 roku teradata początkowo wydała swój produkt bazy danych. Wprowadzono techniki masowego przetwarzania równoległego (MPP) umożliwiające przetwarzanie danych na dużą skalę wydajniej niż istniejące technologie mainframe dostępne w tym czasie. Od tego czasu produkt ewoluował i ma wiele instalacji wśród dużych instytucji finansowych, telekomunikacji i firm detalicznych. Oryginalna implementacja używała zastrzeżonego sprzętu i była połączona z komputerami typu mainframe — zazwyczaj procesorów IBM lub IBM-kompatybilnych.

Chociaż najnowsze ogłoszenia obejmowały łączność sieciową i dostępność stosu technologii Teradata w chmurze (w tym na platformie Azure), większość istniejących instalacji jest w środowisku lokalnym, dlatego wielu użytkowników rozważa migrację niektórych lub wszystkich danych Teradata do usługi Azure Synapse Analytics, aby uzyskać korzyści wynikające z przejścia do nowoczesnego środowiska chmury.

Wskazówka

Wiele istniejących instalacji teradata to magazyny danych korzystające z modelu danych wymiarowych.

Technologia Teradata jest często używana do implementowania magazynu danych, obsługującego złożone zapytania analityczne na dużych woluminach danych przy użyciu języka SQL. Modele danych wymiarowych — schematy gwiazdy lub płatka śniegu — są wspólne, podobnie jak implementacja składnic danych dla poszczególnych działów.

To połączenie modeli danych SQL i wymiarowych upraszcza migrację do usługi Azure Synapse, ponieważ podstawowe pojęcia i umiejętności SQL można przenosić. Zalecaną metodą jest migracja istniejącego modelu danych as-is w celu zmniejszenia ryzyka i czasu. Nawet jeśli ostateczną intencją jest wprowadzenie zmian w modelu danych (na przykład przejście do modelu magazynu danych), należy przeprowadzić początkową migrację as-is, a następnie wprowadzić zmiany w środowisku chmury platformy Azure, wykorzystując wydajność, elastyczną skalowalność oraz korzyści kosztowe.

Chociaż język SQL został ustandaryzowany, w niektórych przypadkach poszczególne dostawcy zaimplementowali zastrzeżone rozszerzenia. W tym dokumencie przedstawiono potencjalne różnice w języku SQL, które mogą wystąpić podczas migracji ze starszego środowiska Teradata i przedstawiono obejścia.

Użyj instancji Teradata maszyny wirtualnej Azure w ramach migracji.

Wskazówka

Użyj maszyny wirtualnej platformy Azure, aby utworzyć tymczasowe wystąpienie Teradata, co przyspieszy migrację i zminimalizuje wpływ na system źródłowy.

Skorzystaj ze środowiska platformy Azure podczas uruchamiania migracji ze środowiska lokalnego teradata. Platforma Azure zapewnia przystępną cenowo chmurową pamięć masową i elastyczną skalowalność do utworzenia instancji Teradata na maszynie wirtualnej w środowisku Azure, umieszczonej w tym samym miejscu docelowym co środowisko Azure Synapse.

W przypadku tego podejścia standardowe narzędzia Teradata, takie jak Teradata Parallel Data Transporter (lub narzędzia replikacji danych innych firm, takie jak Replikacja Attunity), mogą służyć do efektywnego przenoszenia podzestawu tabel Teradata, które mają zostać zmigrowane do wystąpienia maszyny wirtualnej, a następnie wszystkie zadania migracji mogą odbywać się w środowisku platformy Azure. Takie podejście ma kilka korzyści:

  • Po początkowej replikacji danych system źródłowy nie ma wpływu na zadania migracji.

  • Znane interfejsy, narzędzia i narzędzia pomocnicze Teradata są dostępne w środowisku platformy Azure.

  • W środowisku platformy Azure nie ma potencjalnych problemów z dostępnością przepustowości sieci między lokalnym systemem źródłowym a systemem docelowym chmury.

  • Narzędzia, takie jak Azure Data Factory, mogą wydajnie wywoływać narzędzia, takie jak Teradata Parallel Transporter, aby szybko i łatwo migrować dane.

  • Proces migracji jest zorganizowany i kontrolowany całkowicie w środowisku platformy Azure.

Wdrażanie migracji opartej na metadanych za pomocą usługi Azure Data Factory

Wskazówka

Automatyzacja procesu migracji przy użyciu funkcji usługi Azure Data Factory.

Automatyzuj i organizuj proces migracji, korzystając z możliwości w środowisku platformy Azure. Takie podejście minimalizuje również wpływ migracji na istniejące środowisko Teradata, które może już działać blisko pełnej pojemności.

Azure Data Factory to oparta na chmurze usługa integracji danych, która umożliwia tworzenie przepływów pracy opartych na danych w chmurze na potrzeby organizowania i automatyzowania przenoszenia danych i przekształcania danych. Za pomocą usługi Data Factory można tworzyć i planować oparte na danych przepływy pracy — nazywane potokami — które mogą pozyskiwać dane z różnych magazynów danych. Może przetwarzać i przekształcać dane przy użyciu usług obliczeniowych, takich jak Azure HDInsight Hadoop, Spark, Azure Data Lake Analytics i Azure Machine Learning.

Tworząc metadane, aby wyświetlić listę tabel danych, które mają zostać zmigrowane i ich lokalizację, można użyć obiektów usługi Data Factory do zarządzania i automatyzowania części procesu migracji. Możesz również użyć usługi Azure Synapse Pipelines.

Różnice języka SQL DDL między usługą Teradata i usługą Azure Synapse

SQL Data Definition Language (DDL)

Wskazówka

Polecenia SQL DDL CREATE TABLE i CREATE VIEW mają standardowe podstawowe elementy, ale są również używane do definiowania opcji specyficznych dla implementacji.

Standard ANSI SQL definiuje podstawową składnię poleceń DDL, takich jak CREATE TABLE i CREATE VIEW. Te polecenia są używane zarówno w usługach Teradata, jak i Azure Synapse, ale zostały one również rozszerzone, aby umożliwić definiowanie funkcji specyficznych dla implementacji, takich jak indeksowanie, dystrybucja tabel i opcje partycjonowania.

W poniższych sekcjach omówiono opcje specyficzne dla danych Teradata, które należy wziąć pod uwagę podczas migracji do usługi Azure Synapse.

Rozważania dotyczące tabeli

Wskazówka

Użyj istniejących indeksów, aby wskazać kandydatów do indeksowania w zmigrowanym magazynie.

Podczas migrowania tabel między różnymi technologiami tylko nieprzetworzone dane i jego metadane opisowe są fizycznie przenoszone między dwoma środowiskami. Inne elementy bazy danych z systemu źródłowego, takie jak indeksy i pliki dziennika, nie są bezpośrednio migrowane, ponieważ mogą nie być potrzebne lub mogą być implementowane inaczej w nowym środowisku docelowym. Na przykład nie ma odpowiednika MULTISET opcji w składni Teradata CREATE TABLE.

Ważne jest, aby zrozumieć, gdzie optymalizacje wydajności — takie jak indeksy — były używane w środowisku źródłowym. Wskazuje to, gdzie można dodać optymalizację wydajności w nowym środowisku docelowym. Jeśli na przykład w źródłowym środowisku Teradata utworzono nieunikalny indeks pomocniczy (NUSI), może to oznaczać, że w migrowanej bazie danych Usługi Azure Synapse powinien zostać utworzony indeks nieklastrowany. Inne natywne techniki optymalizacji wydajności, takie jak replikacja tabel, mogą być bardziej stosowane niż proste tworzenie indeksu "like-for-like".

Nieobsługiwane typy tabel Teradata

Wskazówka

Standardowe tabele w usłudze Azure Synapse mogą obsługiwać zmigrowane tabele temporalne oraz szereg czasowy Teradata.

Teradata obejmuje obsługę specjalnych typów tabel dla szeregów czasowych i danych czasowych. Składnia i niektóre funkcje dla tych typów tabel nie są bezpośrednio obsługiwane w usłudze Azure Synapse, ale dane można migrować do standardowej tabeli z odpowiednimi typami danych i indeksowaniem lub partycjonowaniem w kolumnie daty/godziny.

Teradata implementuje funkcję zapytania czasowego za pośrednictwem ponownego zapisywania zapytań w celu dodania dodatkowych filtrów w zapytaniu czasowym w celu ograniczenia odpowiedniego zakresu dat. Jeśli ta funkcja jest obecnie używana w źródłowym środowisku Teradata i ma zostać zmigrowana, należy dodać to dodatkowe filtrowanie do odpowiednich zapytań czasowych.

Środowisko platformy Azure zawiera również określone funkcje złożonej analizy danych szeregów czasowych na dużą skalę nazywane analizą szeregów czasowych — ma to na celu zastosowanie aplikacji do analizy danych IoT i może być bardziej odpowiednie dla tego przypadku użycia.

Nieobsługiwane typy danych Teradata

Wskazówka

Oceń wpływ nieobsługiwanych typów danych w ramach fazy przygotowania.

Większość typów danych Teradata ma bezpośredni odpowiednik w usłudze Azure Synapse. W poniższej tabeli przedstawiono typy danych Teradata, które nie są obsługiwane w usłudze Azure Synapse wraz z zalecanym mapowaniem. W tabeli typ kolumny Teradata jest typem przechowywanym w katalogu systemowym — na przykład w pliku DBC.ColumnsV.

Typ kolumny Teradata Typ danych Teradata Typ danych usługi Azure Synapse
++ TD_ANYTYPE Nieobsługiwane w usłudze Azure Synapse
A1 TABLICA Nieobsługiwane w usłudze Azure Synapse
AN TABLICA Nie obsługiwane w usłudze Azure Synapse
AT CZAS CZAS
BF BAJT BINARNY
Bo BLOB (Baza Danych Obiektów Binarowych) Typ danych obiektu BLOB nie jest obsługiwany bezpośrednio, ale można go zastąpić plikiem BINARY.
BV VARBYTE BINARNY
CF VARCHAR CHAR
Kobalt CLOB Typ danych CLOB nie jest obsługiwany bezpośrednio, ale można go zamienić na VARCHAR.
Życiorys zawodowy VARCHAR VARCHAR
D DZIESIĘTNA DZIESIĘTNA
DA DATE DATE
DH INTERWAŁ OD DNIA DO GODZINY Typy danych INTERVAL nie są obsługiwane w usłudze Azure Synapse, ale obliczenia dat można wykonywać przy użyciu funkcji porównania dat (na przykład DATEDIFF i DATEADD).
dm INTERWAŁ OD DNIA DO MINUTY Typy danych INTERVAL nie są obsługiwane w usłudze Azure Synapse, ale obliczenia dat można wykonywać przy użyciu funkcji porównania dat (na przykład DATEDIFF i DATEADD).
DS INTERWAŁ OD DNIA DO SEKUNDY Typy danych INTERVAL nie są obsługiwane w usłudze Azure Synapse, ale obliczenia dat można wykonywać przy użyciu funkcji porównania dat (na przykład DATEDIFF i DATEADD).
DT zbiór danych Typ danych DATASET jest obsługiwany w usłudze Azure Synapse.
DY DZIEŃ PRZERWY Typy danych INTERVAL nie są obsługiwane w usłudze Azure Synapse, ale obliczenia dat można wykonywać przy użyciu funkcji porównania dat (na przykład DATEDIFF i DATEADD).
F PŁYWAĆ PŁYWAĆ
HM INTERWAŁ OD GODZINY DO MINUTY Typy danych INTERVAL nie są obsługiwane w usłudze Azure Synapse, ale obliczenia dat można wykonywać przy użyciu funkcji porównania dat (na przykład DATEDIFF i DATEADD).
Zasoby Ludzkie GODZINOWY INTERWAŁ Typy danych INTERVAL nie są obsługiwane w usłudze Azure Synapse, ale obliczenia dat można wykonywać przy użyciu funkcji porównania dat (na przykład DATEDIFF i DATEADD).
HS INTERWAŁ OD GODZINY DO SEKUNDY Typy danych INTERVAL nie są obsługiwane w usłudze Azure Synapse, ale obliczenia dat można wykonywać przy użyciu funkcji porównania dat (na przykład DATEDIFF i DATEADD).
I1 BYTEINT TINYINT
I2 SMALLINT SMALLINT
I8 BIGINT BIGINT
Ja LICZBA CAŁKOWITA INT
JN JSON (JavaScript Object Notation) Typ danych JSON nie jest obecnie bezpośrednio obsługiwany w usłudze Azure Synapse, ale dane JSON mogą być przechowywane w polu VARCHAR.
MI MINUTA INTERWAŁU Typy danych INTERVAL nie są obsługiwane w usłudze Azure Synapse, ale obliczenia dat można wykonywać przy użyciu funkcji porównania dat (na przykład DATEDIFF i DATEADD).
MO INTERWAŁ MIESIĄCA Typy danych INTERVAL nie są obsługiwane w usłudze Azure Synapse, ale obliczenia dat można wykonywać przy użyciu funkcji porównania dat (na przykład DATEDIFF i DATEADD).
MS INTERWAŁ OD MINUTY DO SEKUNDY Typy danych INTERVAL nie są obsługiwane w usłudze Azure Synapse, ale obliczenia dat można wykonywać przy użyciu funkcji porównania dat (na przykład DATEDIFF i DATEADD).
N NUMER LICZBOWY
PD PERIOD(DATE) Można przekonwertować na VARCHAR lub podzielić na dwie oddzielne daty
po południu OKRES CZASOWY (ZNACZNIK CZASU ZE STREFĄ CZASOWĄ) Można przekonwertować na typ VARCHAR lub podzielić na dwa oddzielne znaczniki czasu (DATETIMEOFFSET)
Postscriptum PERIOD(TIMESTAMP) Można przekonwertować na VARCHAR lub podzielić na dwa oddzielne znaczniki czasu (DATETIMEOFFSET)
PT OKRES(CZAS) Można przekonwertować na VARCHAR lub podzielić na dwie oddzielne wartości czasowe
PZ OKRES (CZAS ZE STREFĄ CZASOWĄ) Można przekonwertować na VARCHAR lub podzielić na dwa oddzielne punkty czasowe, ale z STREFĄ CZASOWĄ nie jest obsługiwane dla CZAS.
SC INTERWAŁ SEKUND Typy danych INTERVAL nie są obsługiwane w usłudze Azure Synapse, ale obliczenia dat można wykonywać przy użyciu funkcji porównania dat (na przykład DATEDIFF i DATEADD).
SZ SYGNATURA CZASOWA ZE STREFĄ CZASOWĄ Przesunięcie daty i czasu (DATETIMEOFFSET)
TS TIMESTAMP DATA/GODZINA lub DATETIME2
TZ CZAS Z UWZGLĘDNIENIEM STREFY CZASOWEJ Czas bez strefy czasowej nie jest obsługiwany, ponieważ czas jest przechowywany przy użyciu czasu lokalnego, bez przesunięcia strefy czasowej.
XM XML Typ danych XML nie jest obecnie bezpośrednio obsługiwany w usłudze Azure Synapse, ale dane XML mogą być przechowywane w polu VARCHAR.
YM INTERWAŁ OD ROKU DO MIESIĄCA Typy danych INTERVAL nie są obsługiwane w usłudze Azure Synapse, ale obliczenia dat można wykonywać przy użyciu funkcji porównania dat (na przykład DATEDIFF i DATEADD).
YR INTERWAŁ ROK Typy danych INTERVAL nie są obsługiwane w usłudze Azure Synapse, ale obliczenia dat można wykonywać przy użyciu funkcji porównania dat (na przykład DATEDIFF i DATEADD).

Użyj metadanych z tabel wykazu Teradata, aby określić, czy którykolwiek z tych typów danych ma zostać zmigrowany i czy zezwolić na to w planie migracji. Na przykład użyj zapytania SQL, takiego jak ten, aby znaleźć wszelkie wystąpienia nieobsługiwanych typów danych, które wymagają uwagi.

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;

Wskazówka

Narzędzia i usługi innych firm mogą automatyzować zadania mapowania danych.

Istnieją dostawcy zewnętrzni, którzy oferują narzędzia i usługi do automatyzacji migracji, w tym mapowanie typów danych. Jeśli narzędzie ETL innej firmy, takie jak Informatica lub Talend, jest już używane w środowisku Teradata, te narzędzia mogą implementować wszelkie wymagane przekształcenia danych.

Generowanie języka DDL (Data Definition Language)

Wskazówka

Użyj istniejących metadanych teradata, aby zautomatyzować generowanie elementów CREATE TABLE i CREATE VIEW DDL dla usługi Azure Synapse.

Edytuj istniejące skrypty Teradata CREATE TABLE i CREATE VIEW, aby utworzyć równoważne definicje z zmodyfikowanymi typami danych, w razie potrzeby opisanymi wcześniej. Zazwyczaj obejmuje to usunięcie dodatkowych klauzul specyficznych dla teradata, takich jak FALLBACK lub MULTISET.

Jednak wszystkie informacje, które określają bieżące definicje tabel i widoków w istniejącym środowisku Teradata, są przechowywane w tabelach wykazu systemu. Jest to najlepsze źródło tych informacji, ponieważ gwarantowane jest, że są aktualne i kompletne. Należy pamiętać, że dokumentacja przechowywana przez użytkownika może nie być zsynchronizowana z bieżącymi definicjami tabeli.

Uzyskaj dostęp do tych informacji za pośrednictwem widoków w katalogu, takich jak DBC.ColumnsV i wygeneruj równoważne CREATE TABLE instrukcje DDL dla równoważnych tabel w usłudze Azure Synapse.

Wskazówka

Narzędzia i usługi innych firm mogą automatyzować zadania mapowania danych.

Istnieją partnerzy firmy Microsoft , którzy oferują narzędzia i usługi do automatyzacji migracji, w tym mapowanie typu danych. Ponadto jeśli narzędzie ETL innej firmy, takie jak Informatica lub Talend, jest już używane w środowisku Teradata, to narzędzie może zaimplementować wszelkie wymagane przekształcenia danych.

Różnice języka DML SQL między usługą Teradata i usługą Azure Synapse

Sql Data Manipulation Language (DML)

Wskazówka

Polecenia SELECT, DML SQL, INSERT i UPDATE mają standardowe podstawowe elementy, ale mogą również implementować różne opcje składni.

Standard ANSI SQL definiuje podstawową składnię poleceń DML, takich jak SELECT, INSERT, UPDATEi DELETE. Zarówno teradata, jak i azure Synapse używają tych poleceń, ale w niektórych przypadkach istnieją różnice w implementacji.

W poniższych sekcjach omówiono polecenia DML specyficzne dla danych Teradata, które należy wziąć pod uwagę podczas migracji do usługi Azure Synapse.

Różnice składni języka SQL DML

Należy pamiętać o tych różnicach w składni języka DML (SQL Data Manipulation Language) między usługą Teradata SQL i usługą Azure Synapse (T-SQL) podczas migracji:

  • QUALIFY: Teradata obsługuje operatora QUALIFY. Na przykład:

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

    Równoważna składnia usługi Azure Synapse to:

    SELECT * FROM (
    SELECT col1, ROW_NUMBER () OVER (PARTITION by col1 ORDER BY col1) rn
    FROM tab1 WHERE col1='XYZ'
    ) WHERE rn = 1;
    
  • Arytmetyka dat: usługa Azure Synapse zawiera operatory, takie jak DATEADD i DATEDIFF, których można używać na polach DATE lub DATETIME. Teradata obsługuje odejmowanie bezpośrednie w datach, takich jak SELECT DATE1 - DATE2 FROM...

  • W GROUP BY porządku jawnie podaj nazwę kolumny T-SQL.

  • LIKE ANY: Teradata obsługuje LIKE ANY składnię, taką jak:

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

    Odpowiednikiem składni usługi Azure Synapse jest:

    SELECT * FROM CUSTOMER
    WHERE
    (POSTCODE LIKE 'CV1%') OR (POSTCODE LIKE 'CV2%') OR (POSTCODE LIKE 'CV3%');
    
  • W zależności od ustawień systemowych porównania znaków w usłudze Teradata mogą być domyślnie niewrażliwe na wielkość liter. W usłudze Azure Synapse porównania znaków są zawsze rozróżniane pod względem wielkości liter.

Używanie narzędzia EXPLAIN do sprawdzania poprawności starszej wersji bazy danych SQL

Wskazówka

Użyj rzeczywistych zapytań z istniejących dzienników zapytań systemowych, aby znaleźć potencjalne problemy z migracją.

Jednym ze sposobów testowania starszych instrukcji SQL Teradata pod kątem zgodności z usługą Azure Synapse jest przechwycenie niektórych reprezentatywnych instrukcji SQL ze starszego systemu, poprzedzenie tych zapytań instrukcją EXPLAIN i, zakładając, że w Azure Synapse został zmigrowany porównywalny model danych z tymi samymi nazwami tabel i kolumn, uruchomienie tych EXPLAIN instrukcji w usłudze Azure Synapse. Każdy niezgodny program SQL zgłosi błąd — użyj tych informacji, aby określić skalę zadania recodowania. Takie podejście nie wymaga załadowania danych do środowiska platformy Azure, tylko że zostały utworzone odpowiednie tabele i widoki.

Funkcje, procedury składowane, wyzwalacze i sekwencje

Wskazówka

W ramach fazy przygotowania oceń liczbę i typ migrowanych obiektów innych niż dane.

Podczas migracji z dojrzałego starszego środowiska magazynu danych, takiego jak Teradata, często istnieją elementy inne niż proste tabele i widoki, które muszą zostać zmigrowane do nowego środowiska docelowego. Przykłady obejmują funkcje, procedury składowane, wyzwalacze i sekwencje.

W ramach fazy przygotowania utwórz spis obiektów, które muszą zostać zmigrowane i zdefiniuj metody ich obsługi. Następnie przypisz odpowiednią alokację zasobów w planie projektu.

W środowisku platformy Azure mogą istnieć obiekty, które zastępują funkcjonalność zaimplementowaną jako funkcje lub procedury składowane w środowisku Teradata. W tym przypadku często wydajniejsze jest użycie wbudowanych obiektów platformy Azure zamiast recodowania funkcji Teradata.

Wskazówka

Produkty i usługi innych firm mogą zautomatyzować migrację elementów innych niż dane.

Partnerzy firmy Microsoft oferują narzędzia i usługi, które mogą zautomatyzować migrację.

Więcej informacji na temat każdego z tych elementów można znaleźć w poniższych sekcjach.

Funkcje

Podobnie jak w przypadku większości produktów baz danych, teradata obsługuje funkcje systemowe i funkcje zdefiniowane przez użytkownika w ramach implementacji SQL. Podczas migracji do innej platformy bazy danych, takiej jak Azure Synapse, dostępne są typowe funkcje systemowe i można je migrować bez zmian. Niektóre funkcje systemowe mogą mieć nieco inną składnię, ale wymagane zmiany można zautomatyzować. Funkcje systemowe, w których nie ma odpowiednika, takich jak dowolne funkcje zdefiniowane przez użytkownika, mogą wymagać ponownego zakodowania przy użyciu języków dostępnych w środowisku docelowym. Usługa Azure Synapse używa popularnego języka Transact-SQL do implementowania funkcji zdefiniowanych przez użytkownika.

Procedury przechowywane

Większość nowoczesnych produktów baz danych umożliwia przechowywanie procedur w bazie danych. Teradata udostępnia język SPL w tym celu. Procedura składowana zazwyczaj zawiera instrukcje SQL i pewną logikę proceduralną oraz może zwracać dane lub stan.

Dedykowane pule SQL usługi Azure Synapse Analytics obsługują również procedury składowane przy użyciu języka T-SQL, więc jeśli musisz przeprowadzić migrację procedur składowanych, zakoduj je odpowiednio.

Wyzwalaczy

Usługa Azure Synapse nie obsługuje tworzenia wyzwalaczy, ale można je zaimplementować w usłudze Azure Data Factory.

Sekwencje

Sekwencje w usłudze Azure Synapse są obsługiwane w podobny sposób jak w Teradata, używając funkcji IDENTITY do tworzenia kluczy zastępczych lub tożsamości zarządzanej.

Mapowanie Teradata na T-SQL

W tej tabeli pokazano mapowanie typów danych z Teradata do T-SQL, zgodne z SQL usługi Azure Synapse.

Typ danych Teradata Typ danych usługi Azure Synapse SQL
 bigint  bigint
 Bool  bit
 boolean  bit
 byteint  tinyint
 char [(p)]  char [(p)]
 znak zmienny [(p)]  varchar [(p)]
 znak [(p)]  char [(p)]
 znak różny [(p)]  varchar [(p)]
 data  termin
 znacznik czasu  data i godzina
 dec [(p[,s])]  dziesiętne [(p[,s])]
 dziesiętne [(p[,s])]  liczby dziesiętne [(p[,s])]
 podwójny  float(53)
 podwójna precyzja  float(53)
 float [(p)]  float [(p)]
 float4  float(53)
 float8  float(53)
 Int  Int
 int1 tinyint
 int2 smallint
 int4 Int
 int8 bigint
 liczba całkowita liczba całkowita
 interwał Nieobsługiwane
 charakter narodowy zmienny [(p)] nvarchar [(p)]
 znak krajowy [(p)] nchar [(p)]
 zróżnicowany charakter narodowy [(p)]  nvarchar [(p)]
 nchar [(p)]  nchar [(p)]
 numeryczne [(p[,s])]  numeryczne [(p[,s])
 nvarchar [(p)]  nvarchar [(p)]
 prawdziwy  prawdziwy
 smallint  smallint
 czas  Czas
 czas z uwzględnieniem strefy czasowej  datetimeoffset
 czas bez strefy czasowej  Czas
 przedział czasu  Nieobsługiwane
 Sygnatura czasowa  datetime2
 timetz  datetimeoffset
 varchar [(p)]  varchar [(p)]

Podsumowanie

Typowe istniejące starsze instalacje teradata są implementowane w sposób, który ułatwia migrację do usługi Azure Synapse. Używają języka SQL do obsługi zapytań analitycznych na dużych woluminach danych, które są częścią jakiegoś modelu danych wymiarowych. Te czynniki sprawiają, że są dobrymi kandydatami do migracji do usługi Azure Synapse.

Aby zminimalizować zadanie migracji rzeczywistego kodu SQL, wykonaj następujące zalecenia:

  • Początkowa migracja magazynu danych powinna być as-is w celu zminimalizowania ryzyka i czasu, nawet jeśli ostateczne środowisko będzie zawierać inny model danych, taki jak data vault.

  • Rozważ użycie wystąpienia Teradata na maszynie wirtualnej platformy Azure jako etapu przejściowego w ramach procesu migracji.

  • Poznaj różnice między implementacją sql teradata i usługą Azure Synapse.

  • Użyj dzienników metadanych i zapytań z istniejącej implementacji Teradata, aby ocenić wpływ różnic i zaplanować podejście do złagodzenia.

  • Automatyzuj proces wszędzie tam, gdzie jest to możliwe, aby zminimalizować błędy, ryzyko i czas migracji.

  • Rozważ skorzystanie ze specjalistycznych partnerów i usług firmy Microsoft w celu usprawnienia migracji.

Następne kroki

Aby dowiedzieć się więcej o narzędziach firmy Microsoft i innych firm, zobacz następny artykuł z tej serii: Narzędzia do migracji magazynu danych Teradata do usługi Azure Synapse Analytics.