Minimalizuj problemy z bazą danych SQL na potrzeby 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 są najlepsze rozwiązania dotyczące minimalizowania problemów z programem SQL.

Omówienie

Charakterystyka środowisk Teradata

Porada

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

W 1984 roku teradata początkowo wydała swój produkt bazy danych. Wprowadzono techniki masowego przetwarzania równoległego (MPP), aby umożliwić 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 podłączona do komputerów mainframe — zazwyczaj procesorów zgodnych z ibm lub IBM.

Chociaż najnowsze ogłoszenia obejmowały łączność sieciową i dostępność stosu technologii Teradata w chmurze (w tym platformy Azure), większość istniejących instalacji jest lokalnych, 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.

Porada

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 ilościach 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 Azure Synapse, ponieważ podstawowe pojęcia i umiejętności SQL można przenosić. Zalecanym podejściem jest przeprowadzenie migracji istniejącego modelu danych w miarę upływu czasu i ograniczenia ryzyka. Nawet jeśli ostateczną intencją jest wprowadzenie zmian w modelu danych (na przykład przejście do modelu magazynu danych), przeprowadzenie początkowej migracji zgodnie z rzeczywistym użyciem, a następnie wprowadzenie zmian w środowisku chmury platformy Azure, wykorzystanie wydajności, elastycznej skalowalności i korzyści związanych z kosztami.

Język SQL został ustandaryzowany, ale w niektórych przypadkach 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 tego problemu.

Używanie wystąpienia teradata maszyny wirtualnej platformy Azure w ramach migracji

Porada

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

Korzystaj ze środowiska platformy Azure podczas uruchamiania migracji ze środowiska lokalnego teradata. Platforma Azure zapewnia przystępny cenowo magazyn w chmurze i elastyczną skalowalność, aby utworzyć wystąpienie teradata na maszynie wirtualnej na platformie Azure, po połączeniu z docelowym środowiskiem 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 Attunity Replication), mogą służyć do wydajnego 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 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 aranżowany i kontrolowany całkowicie w środowisku platformy Azure.

Używanie Azure Data Factory do implementowania migracji opartej na metadanych

Porada

Automatyzacja procesu migracji przy użyciu funkcji 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 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 umożliwiające wyświetlenie listy tabel danych do zmigrowania i ich lokalizacji, 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ć Azure Synapse Pipelines.

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

SQL Data Definition Language (DDL)

Porada

Polecenia CREATE TABLE języka SQL DDL 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 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 Azure Synapse.

Zagadnienia dotyczące tabel

Porada

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 ich opisowe metadane 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. Na przykład jeśli w środowisku źródłowym Teradata został utworzony nieu unikatowo indeks pomocniczy (NUSI), może to wskazywać, że w migrowanej bazie danych Azure Synapse powinien zostać utworzony indeks nieklasterowany. Inne natywne techniki optymalizacji wydajności, takie jak replikacja tabel, mogą być bardziej odpowiednie niż proste tworzenie indeksu "like-for-like".

Nieobsługiwane typy tabel Teradata

Porada

Standardowe tabele w Azure Synapse mogą obsługiwać zmigrowane tabele czasowe i tabele czasowe teradata.

Teradata obejmuje obsługę specjalnych typów tabel dla szeregów czasowych i danych czasowych. Składnia i niektóre funkcje tych typów tabel nie są bezpośrednio obsługiwane w 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 środowisku źródłowym Teradata i ma zostać zmigrowana, należy dodać to dodatkowe filtrowanie do odpowiednich zapytań czasowych.

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

Nieobsługiwane typy danych Teradata

Porada

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

Większość typów danych Teradata ma bezpośredni odpowiednik w Azure Synapse. W poniższej tabeli przedstawiono typy danych Teradata, które nie są obsługiwane w 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 Azure Synapse typ danych
++ TD_ANYTYPE Nieobsługiwane w Azure Synapse
A1 TABLICY Nieobsługiwane w Azure Synapse
AN TABLICY Nieobsługiwane w Azure Synapse
AT CZAS CZAS
BF BYTE BINARNYM
BO BLOB Typ danych obiektu BLOB nie jest obsługiwany bezpośrednio, ale można go zastąpić plikiem BINARY.
BV VARBYTE BINARNYM
CF VARCHAR CHAR
CO CLOB Typ danych CLOB nie jest obsługiwany bezpośrednio, ale można go zastąpić funkcją VARCHAR.
CV VARCHAR VARCHAR
D DZIESIĘTNYCH DZIESIĘTNYCH
DA DATE DATE
DH INTERWAŁ OD DNIA DO GODZINY Typy danych INTERVAL nie są obsługiwane w 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 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 Azure Synapse, ale obliczenia dat można wykonywać przy użyciu funkcji porównania dat (na przykład DATEDIFF i DATEADD).
DT DATASET Typ danych zestawu danych jest obsługiwany w Azure Synapse.
DY DZIEŃ INTERWAŁU Typy danych INTERVAL nie są obsługiwane w Azure Synapse, ale obliczenia dat można wykonywać przy użyciu funkcji porównania dat (na przykład DATEDIFF i DATEADD).
F FLOAT FLOAT
HM INTERWAŁ OD GODZINY DO MINUTY Typy danych INTERVAL nie są obsługiwane w Azure Synapse, ale obliczenia dat można wykonywać przy użyciu funkcji porównania dat (na przykład DATEDIFF i DATEADD).
HR GODZINA INTERWAŁU Typy danych INTERVAL nie są obsługiwane w 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 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
I LICZBA CAŁKOWITA INT
J JSON Typ danych JSON nie jest obecnie bezpośrednio obsługiwany w Azure Synapse, ale dane JSON mogą być przechowywane w polu VARCHAR.
MI MINUTA INTERWAŁU Typy danych INTERVAL nie są obsługiwane w 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 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 Azure Synapse, ale obliczenia dat można wykonywać przy użyciu funkcji porównania dat (na przykład DATEDIFF i DATEADD).
N NUMER LICZBOWE
PD PERIOD(DATE) Można przekonwertować na varCHAR lub podzielić na dwie oddzielne daty
PM PERIOD (SYGNATURA CZASOWA ZE STREFĄ CZASOWĄ) Można przekonwertować na VARCHAR lub podzielić na dwa oddzielne znaczniki czasu (DATETIMEOFFSET)
PS PERIOD(TIMESTAMP) Można przekonwertować na VARCHAR lub podzielić na dwa oddzielne znaczniki czasu (DATETIMEOFFSET)
PT PERIOD(TIME) Można przekonwertować na varCHAR lub podzielić na dwa oddzielne razy
PZ OKRES (CZAS ZE STREFĄ CZASOWĄ) Można przekonwertować na funkcję VARCHAR lub podzielić na dwa oddzielne czasy, ale funkcja WITH TIME ZONE nie jest obsługiwana w przypadku funkcji TIME
SC INTERWAŁ SEKUNDOWY Typy danych INTERVAL nie są obsługiwane w 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Ą DATETIMEOFFSET
ZW TIMESTAMP DATA/GODZINA LUB DATA/GODZINA2
TZ CZAS ZE STREFĄ CZASOWĄ CZAS ZE STREFĄ CZASOWĄ nie jest obsługiwany, ponieważ czas jest przechowywany przy użyciu godziny "zegara ściany" tylko bez przesunięcia strefy czasowej.
XM XML Typ danych XML nie jest obecnie bezpośrednio obsługiwany w 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 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 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 to, 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;

Porada

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

Istnieją zewnętrzni dostawcy, 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)

Porada

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

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

Jednak wszystkie informacje określające 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 tabel.

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

Porada

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 typów 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 teradata i Azure Synapse

SQL Data Manipulation Language (DML)

Porada

Polecenia SELECTDML SQL , INSERTi 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żywać tych poleceń, ale w niektórych przypadkach istnieją różnice w implementacji.

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

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

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

  • QUALIFY: Teradata obsługuje QUALIFY operator . 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 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: Azure Synapse zawiera operatory, takie jak DATEADD iDATEDIFF, których można używać w DATE polach lub DATETIME . Usługa Teradata obsługuje odejmowanie bezpośrednie w datach, takich jak SELECT DATE1 - DATE2 FROM...

  • W GROUP BY obszarze porządkowym jawnie podaj nazwę kolumny języka T-SQL.

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

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

    Odpowiednikiem w składni 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 Azure Synapse w porównaniach znaków jest zawsze rozróżniana wielkość liter.

Używanie narzędzia EXPLAIN do weryfikowania starszej wersji bazy danych SQL

Porada

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

Jednym ze sposobów testowania starszej wersji bazy danych Teradata SQL pod kątem zgodności z Azure Synapse jest przechwycenie niektórych reprezentatywnych instrukcji SQL ze starszych dzienników zapytań systemowych, prefiks tych zapytań przy użyciu funkcji EXPLAIN i (przy założeniu, że model danych podobnych do podobnych w Azure Synapse z tymi samymi nazwami tabel i kolumn) uruchamia te EXPLAIN instrukcje w Azure Synapse. Każdy niezgodny program SQL zgłosi błąd — użyj tych informacji, aby określić skalę zadania odzyskiwania. 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

Porada

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 należy migrować 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 należy zmigrować 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ą funkcje zaimplementowane jako funkcje lub procedury składowane w środowisku Teradata. W tym przypadku często wydajniejsze jest korzystanie z wbudowanych obiektów platformy Azure, a nie ponownego odzyskiwania funkcji Teradata.

Porada

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 odpowiedników, takich jak dowolne funkcje zdefiniowane przez użytkownika, mogą wymagać ponownego zakodowania przy użyciu języków dostępnych w środowisku docelowym. Azure Synapse używa popularnego języka Transact-SQL do implementowania funkcji zdefiniowanych przez użytkownika.

Procedury składowane

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 zwykle 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.

Wyzwalacze

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

Sekwencje

Azure Synapse sekwencje są obsługiwane w podobny sposób do teradata, używając tożsamości do tworzenia kluczy zastępczych lub tożsamości zarządzanej.

Mapowanie teradata na język T-SQL

W tej tabeli przedstawiono dane Teradata zgodne z językiem T-SQL z mapowaniem typu danych SQL Azure Synapse:

Typ danych Teradata Azure Synapse typ danych SQL
 bigint  bigint
 bool  bit
 boolean  bit
 byteint  tinyint
 char [(p)]  char [(p)]
 char różniące się [(p)]  varchar [(p)]
 znak [(p)]  char [(p)]
 znak różnicowy [(p)]  varchar [(p)]
 data  data
 datetime  datetime
 dec [(p[,s])]  dziesiętne [(p[,s])]
 dziesiętne [(p[,s])]  dziesiętne [(p[,s])]
 double  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
 interval Nieobsługiwany
 znak krajowy różniące się [(p)] nvarchar [(p)]
 znak krajowy [(p)] nchar [(p)]
 charakter krajowy o różnym charakterze [(p)]  nvarchar [(p)]
 nchar [(p)]  nchar [(p)]
 numeryczne [(p[,s])]  numeryczne [(p[,s])
 nvarchar [(p)]  nvarchar [(p)]
 liczba rzeczywista  liczba rzeczywista
 smallint  smallint
 time  time
 czas ze strefą czasową  datetimeoffset
 czas bez strefy czasowej  time
 zakres czasu  Nieobsługiwany
 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 Azure Synapse. Używają języka SQL do obsługi zapytań analitycznych na dużych woluminach danych i są w jakiejś formie modelu danych wymiarowych. Czynniki te sprawiają, że są dobrymi kandydatami do migracji do Azure Synapse.

Aby zminimalizować zadanie migracji rzeczywistego kodu SQL, postępuj zgodnie z następującymi zaleceniami:

  • Początkowa migracja magazynu danych powinna być tak samo jak w celu zminimalizowania ryzyka i czasu, nawet jeśli ostateczne środowisko końcowe będzie zawierać inny model danych, taki jak magazyn danych.

  • Rozważ użycie wystąpienia teradata na maszynie wirtualnej platformy Azure jako etapowego procesu migracji.

  • Zapoznaj się z różnicami między implementacją sql teradata i 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 ograniczenia.

  • Automatyzuj proces wszędzie tam, gdzie 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.