Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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
, UPDATE
i 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 operatoraQUALIFY
. 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
iDATEDIFF
, których można używać na polachDATE
lubDATETIME
. Teradata obsługuje odejmowanie bezpośrednie w datach, takich jakSELECT DATE1 - DATE2 FROM...
W
GROUP BY
porządku jawnie podaj nazwę kolumny T-SQL.LIKE ANY
: Teradata obsługujeLIKE 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.