Minimalizowanie problemów z bazą danych SQL na potrzeby migracji oracle

Ten artykuł jest częścią pięciu z siedmiu części serii, która zawiera wskazówki dotyczące sposobu migracji z bazy danych Oracle do usługi Azure Synapse Analytics. W tym artykule opisano najlepsze rozwiązania dotyczące minimalizowania problemów z programem SQL.

Omówienie

Charakterystyka środowisk Oracle

Początkowy produkt bazy danych Oracle, wydany w 1979 roku, był komercyjną relacyjną bazą danych SQL dla aplikacji przetwarzania transakcji online (OLTP) — o znacznie niższych stawkach transakcji niż obecnie. Od tej początkowej wersji środowisko Oracle ewoluowało, aby stać się znacznie bardziej złożone i obejmuje wiele funkcji. Funkcje obejmują architektury serwerów klienckich, rozproszone bazy danych, przetwarzanie równoległe, analizę danych, wysoką dostępność, magazynowanie danych, techniki magazynowania danych w pamięci i obsługę wystąpień opartych na chmurze.

Porada

Oracle zapoczątkowała koncepcję "urządzenia magazynu danych" na początku 2000 roku.

Ze względu na koszt i złożoność konserwacji i uaktualniania starszych lokalnych środowisk Oracle wielu istniejących użytkowników Oracle chce korzystać z innowacji oferowanych przez środowiska w chmurze. Nowoczesne środowiska w chmurze, takie jak chmura, IaaS i PaaS, umożliwiają delegowanie zadań, takich jak konserwacja infrastruktury i tworzenie platformy u dostawcy usług w chmurze.

Wiele magazynów danych, które obsługują złożone zapytania analityczne SQL na dużych woluminach danych, korzystają z technologii Oracle. Te magazyny danych często mają model danych wymiarowych, takich jak schematy gwiazdy lub płatka śniegu, i używają marty danych dla poszczególnych działów.

Porada

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

Połączenie modeli danych SQL i wymiarowych w programie Oracle upraszcza migrację do Azure Synapse, ponieważ koncepcje dotyczące języka SQL i podstawowego modelu danych można przenieść. Firma Microsoft zaleca przeniesienie istniejącego modelu danych zgodnie z oczekiwaniami na platformę Azure w celu zmniejszenia ryzyka, nakładu pracy i czasu migracji. Mimo że plan migracji może obejmować zmianę bazowego modelu danych, na przykład przejście z modelu Inmon do magazynu danych, warto początkowo przeprowadzić migrację zgodnie z rzeczywistym działaniem. Po początkowej migracji możesz wprowadzić zmiany w środowisku chmury platformy Azure, aby skorzystać z jej wydajności, elastycznej skalowalności, wbudowanych funkcji i korzyści związanych z kosztami.

Chociaż język SQL jest ustandaryzowany, indywidualni dostawcy czasami implementują zastrzeżone rozszerzenia. W związku z tym podczas migracji można znaleźć różnice w języku SQL, które wymagają obejść w Azure Synapse.

Implementowanie migracji opartej na metadanych przy użyciu obiektów platformy Azure

Proces migracji można zautomatyzować i zorganizować przy użyciu możliwości środowiska platformy Azure. Takie podejście minimalizuje trafienie wydajności w istniejącym środowisku Oracle, które może już działać blisko pojemności.

Azure Data Factory to oparta na chmurze usługa integracji danych, która obsługuje tworzenie przepływów pracy opartych na danych w chmurze w celu 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 (potoki), które pozyskiwają dane z różnych magazynów danych. Usługa Data Factory 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.

Platforma Azure obejmuje również usługi Azure Database Migration Services , które ułatwiają planowanie i przeprowadzanie migracji ze środowisk, takich jak Oracle. Asystent migracji do programu SQL Server (SSMA) for Oracle może zautomatyzować migrację baz danych Oracle, w tym w niektórych przypadkach funkcje i kod proceduralny.

Porada

Automatyzowanie procesu migracji przy użyciu funkcji Azure Data Factory.

Gdy planujesz używać obiektów platformy Azure, takich jak Data Factory, do zarządzania procesem migracji, najpierw utwórz metadane zawierające listę wszystkich tabel danych, które muszą zostać zmigrowane i ich lokalizację.

Różnice języka SQL DDL między bazą danych Oracle i Azure Synapse

Standard SQL ANSI definiuje podstawową składnię poleceń języka DDL (Data Definition Language). Niektóre polecenia DDL, takie jak i , są wspólne zarówno dla oracle, jak CREATE TABLE i CREATE VIEWAzure Synapse, ale zostały rozszerzone w celu zapewnienia funkcji specyficznych dla implementacji, takich jak indeksowanie, dystrybucja tabel i opcje partycjonowania.

Porada

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

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

Zagadnienia dotyczące tabeli/widoku

Podczas migracji tabel między różnymi środowiskami zazwyczaj tylko nieprzetworzone dane i metadane, które opisują je fizycznie. Inne elementy bazy danych z systemu źródłowego, takie jak indeksy i pliki dziennika, zwykle nie są migrowane, ponieważ mogą być niepotrzebne lub zaimplementowane inaczej w nowym środowisku. Na przykład TEMPORARY opcja w składni Oracle CREATE TABLE jest równoważna prefiksowaniu nazwy tabeli z znakiem # w Azure Synapse.

Optymalizacje wydajności w środowisku źródłowym, takie jak indeksy, wskazują, gdzie można dodać optymalizację wydajności w nowym środowisku docelowym. Jeśli na przykład indeksy mapowane bitowo są często używane w zapytaniach w źródłowym środowisku Oracle, sugeruje to, że indeks nieklasowany powinien zostać utworzony w Azure Synapse. Inne natywne techniki optymalizacji wydajności, takie jak replikacja tabeli, mogą być bardziej odpowiednie niż proste tworzenie indeksu przypominającego na przykład. Program SSMA for Oracle może udostępniać zalecenia dotyczące migracji dla dystrybucji i indeksowania tabel.

Porada

Istniejące indeksy wskazują kandydatów do indeksowania w zmigrowanym magazynie.

Definicje widoku SQL zawierają instrukcje języka DML (SQL Data Manipulation Language), które definiują widok, zazwyczaj z co najmniej jedną SELECT instrukcją. Podczas migracji instrukcji CREATE VIEW należy wziąć pod uwagę różnice DML między oracle i Azure Synapse.

Nieobsługiwane typy obiektów bazy danych Oracle

Funkcje specyficzne dla oracle mogą być często zastępowane przez funkcje Azure Synapse. Jednak niektóre obiekty bazy danych Oracle nie są bezpośrednio obsługiwane w Azure Synapse. Poniższa lista nieobsługiwanych obiektów bazy danych Oracle zawiera opis sposobu osiągnięcia równoważnych funkcji w Azure Synapse:

  • Opcje indeksowania: w programie Oracle kilka opcji indeksowania, takich jak indeksy mapowane bitowo, indeksy oparte na funkcjach i indeksy domeny, nie mają bezpośredniego odpowiednika w Azure Synapse. Chociaż Azure Synapse nie obsługuje tych typów indeksów, można osiągnąć podobny spadek liczby operacji we/wy dysku przy użyciu typów indeksów zdefiniowanych przez użytkownika i/lub partycjonowania zmniejszenie wydajności operacji we/wy dysku zwiększa wydajność zapytań.

    Możesz dowiedzieć się, które kolumny są indeksowane i ich typ indeksu, wykonując zapytania dotyczące tabel i widoków wykazu systemu, takich jak ALL_INDEXES, , DBA_INDEXESUSER_INDEXESi DBA_IND_COL. Możesz też wykonywać zapytania dotyczące widoków lub v$object_usage po włączeniu dba_index_usage monitorowania.

    Azure Synapse funkcje, takie jak równoległe przetwarzanie zapytań i buforowanie danych i wyników w pamięci, sprawiają, że w przypadku aplikacji magazynu danych wymagana jest mniejsza liczba indeksów w celu osiągnięcia doskonałych celów wydajności.

  • Tabele klastrowane: tabele Oracle można organizować tak, aby wiersze tabeli, do których często uzyskiwano dostęp (na podstawie wspólnej wartości), są fizycznie przechowywane razem. Ta strategia zmniejsza liczbę operacji we/wy dysku w przypadku pobierania danych. Oracle ma również opcję klastra skrótów dla poszczególnych tabel, która stosuje wartość skrótu do klucza klastra i fizycznie przechowuje wiersze o tej samej wartości skrótu razem.

    W Azure Synapse można osiągnąć podobny wynik, partycjonując i/lub używając innych indeksów.

  • Zmaterializowane widoki: Oracle obsługuje zmaterializowane widoki i zaleca co najmniej jeden z nich dla dużych tabel z wieloma kolumnami, w których tylko kilka kolumn jest regularnie używanych w zapytaniach. Zmaterializowane widoki są automatycznie odświeżane przez system po zaktualizowaniu danych w tabeli podstawowej.

    W 2019 r. firma Microsoft ogłosiła, że Azure Synapse będzie obsługiwać zmaterializowane widoki z tą samą funkcjonalnością co w oracle. Zmaterializowane widoki są teraz funkcją w wersji zapoznawczej w Azure Synapse.

  • Wyzwalacze w bazie danych: w programie Oracle wyzwalacz można skonfigurować tak, aby był uruchamiany automatycznie po wystąpieniu zdarzenia wyzwalającego. Wyzwalanie zdarzeń może być następujące:

    • Instrukcja DML, taka jak INSERT, UPDATElub DELETE, jest uruchamiana. Jeśli zdefiniowano wyzwalacz, który zostanie wyzwolony przed instrukcją INSERT w tabeli klienta, wyzwalacz zostanie wyzwolony raz, zanim nowy wiersz zostanie wstawiony do tabeli klienta.

    • Instrukcja DDL, taka jak CREATE lub ALTER, jest uruchamiana. To zdarzenie wyzwalające jest często używane do rejestrowania zmian schematu w celach inspekcji.

    • Zdarzenie systemowe, takie jak uruchamianie lub zamykanie bazy danych Oracle.

    • Zdarzenie użytkownika, takie jak logowanie lub wylogowywanie.

    Azure Synapse nie obsługuje wyzwalaczy bazy danych Oracle. Jednak można osiągnąć równoważną funkcjonalność przy użyciu usługi Data Factory, chociaż będzie to wymagało refaktoryzacji procesów korzystających z wyzwalaczy.

  • Synonimy: Oracle obsługuje definiowanie synonimów jako alternatywnych nazw dla kilku typów obiektów bazy danych. Typy te obejmują tabele, widoki, sekwencje, procedury, funkcje składowane, pakiety, zmaterializowane widoki, obiekty schematu klasy Java, obiekty zdefiniowane przez użytkownika lub inne synonimy.

    Azure Synapse obecnie nie obsługuje definiowania synonimów, chociaż jeśli synonim w programie Oracle odwołuje się do tabeli lub widoku, można zdefiniować widok w Azure Synapse, aby dopasować nazwę alternatywną. Jeśli synonim w programie Oracle odnosi się do funkcji lub procedury składowanej, możesz zastąpić synonim w Azure Synapse inną funkcją lub procedurą składowaną, która wywołuje element docelowy.

  • Typy zdefiniowane przez użytkownika: Oracle obsługuje obiekty zdefiniowane przez użytkownika, które mogą zawierać serię poszczególnych pól, z których każda ma własną definicję i wartości domyślne. Te obiekty można następnie odwoływać się do definicji tabeli w taki sam sposób, jak wbudowane typy danych, takie jak NUMBER lub VARCHAR.

    Azure Synapse obecnie nie obsługuje typów zdefiniowanych przez użytkownika. Jeśli dane potrzebne do migracji zawierają typy danych zdefiniowane przez użytkownika, "spłaszczają" je do konwencjonalnej definicji tabeli lub jeśli są tablicami danych, normalizuj je w oddzielnej tabeli.

Generowanie DDL SQL

Istniejące skrypty i CREATE VIEW oracle CREATE TABLE można edytować, aby uzyskać równoważne definicje w Azure Synapse. W tym celu może być konieczne użycie zmodyfikowanych typów danych i usunięcie lub zmodyfikowanie klauzul specyficznych dla oracle, takich jak TABLESPACE.

Porada

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

W środowisku Oracle tabele wykazu systemu określają bieżącą definicję tabeli/widoku. W przeciwieństwie do dokumentacji obsługiwanej przez użytkownika informacje o wykazie systemu są zawsze kompletne i zsynchronizowane z bieżącymi definicjami tabeli. Dostęp do informacji o katalogu systemu można uzyskać za pomocą narzędzi, takich jak Oracle SQL Developer. Program Oracle SQL Developer może wygenerować CREATE TABLE instrukcje DDL, które można edytować w celu zastosowania do równoważnych tabel w Azure Synapse, jak pokazano na następnym zrzucie ekranu.

Zrzut ekranu przedstawiający instrukcję create table wygenerowaną przez program Oracle SQL Developer.

Program Oracle SQL Developer zwraca następującą CREATE TABLE instrukcję, która zawiera klauzule specyficzne dla oracle, które należy usunąć. Zamapuj wszystkie nieobsługiwane typy danych przed uruchomieniem zmodyfikowanej CREATE TABLE instrukcji w Azure Synapse.

Zrzut ekranu przedstawiający opcję menu Szybki język DDL w programie Oracle SQL Developer.

Alternatywnie można automatycznie generować CREATE TABLE instrukcje na podstawie informacji w tabelach wykazu Oracle przy użyciu zapytań SQL, SSMA lub narzędzi migracji innych firm . To podejście jest najszybszym, najbardziej spójnym sposobem generowania CREATE TABLE instrukcji dla wielu tabel.

Porada

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

Zewnętrzni dostawcy oferują narzędzia i usługi do automatyzacji migracji, w tym mapowanie typów danych. Jeśli narzędzie ETL innej firmy jest już używane w środowisku Oracle, użyj tego narzędzia do zaimplementowania wszelkich wymaganych przekształceń danych.

Różnice języka DML sql między oracle i Azure Synapse

Standard ANSI SQL definiuje podstawową składnię poleceń DML, takich jak SELECT, INSERT, UPDATEi DELETE. Mimo że oracle i Azure Synapse obsługują polecenia DDL, w niektórych przypadkach implementują to samo polecenie inaczej.

Porada

Standardowe polecenia SELECTDML SQL , INSERTi UPDATE mogą mieć dodatkowe opcje składni w różnych środowiskach bazy danych.

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

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

Istnieją pewne różnice składni języka SQL DML między bazą danych Oracle SQL i Azure Synapse języka T-SQL:

  • DUAL tabela: Oracle ma tabelę systemową o nazwie DUAL , która składa się z dokładnie jednej kolumny o nazwie dummy i jednego rekordu z wartością X. Tabela DUAL systemowa jest używana, gdy zapytanie wymaga nazwy tabeli ze względów składniowych, ale zawartość tabeli nie jest potrzebna.

    Przykładowe zapytanie Oracle używające DUAL tabeli to SELECT sysdate from dual;. Odpowiednik Azure Synapse to SELECT GETDATE();. Aby uprościć migrację języka DML, można utworzyć równoważną DUAL tabelę w Azure Synapse przy użyciu następującego języka DDL.

    CREATE TABLE DUAL
    (
      DUMMY VARCHAR(1)
    )
    GO
    INSERT INTO DUAL (DUMMY)
    VALUES ('X')
    GO
    
  • NULL values: NULL wartość w Oracle jest pustym ciągiem reprezentowanym CHAR przez typ ciągu lub VARCHAR długości 0. W Azure Synapse i większości innych baz danych NULL oznacza coś innego. Należy zachować ostrożność podczas migrowania danych lub podczas migrowania procesów obsługujących lub przechowujące dane, aby zapewnić NULL spójną obsługę wartości.

  • Składnia sprzężenia zewnętrznego Oracle: chociaż nowsze wersje programu Oracle obsługują składnię sprzężenia zewnętrznego ANSI, starsze systemy Oracle używają zastrzeżonej składni dla sprzężeń zewnętrznych używających znaku plus (+) w instrukcji SQL. W przypadku migrowania starszego środowiska Oracle może wystąpić starsza składnia. Przykład:

    SELECT
        d.deptno, e.job
    FROM
        dept d,
        emp e
    WHERE
        d.deptno = e.deptno (+)
        AND e.job (+) = 'CLERK'
    GROUP BY
        d.deptno, e.job;
    

    Równoważna standardowa składnia ANSI to:

    SELECT
        d.deptno, e.job
    FROM
        dept d
        LEFT OUTER JOIN emp e ON d.deptno = e.deptno
        and e.job = 'CLERK'
    GROUP BY
        d.deptno,
        e.job
    ORDER BY
        d.deptno, e.job;
    
  • DATE dane: w programie Oracle DATE typ danych może przechowywać zarówno datę, jak i godzinę. Azure Synapse przechowuje datę i godzinę w osobnych DATEtypach danych , TIMEi DATETIME . Podczas migrowania kolumn Oracle DATE sprawdź, czy przechowują zarówno datę, jak i godzinę, czy tylko datę. Jeśli przechowują tylko datę, zamapuj kolumnę na DATE, w przeciwnym razie na DATETIME.

  • DATE arytmetyka: Oracle obsługuje odejmowanie jednej daty od innej, na przykład SELECT date '2018-12-31' - date '2018-1201' from dual;. W Azure Synapse można odjąć daty przy użyciu DATEDIFF() funkcji, na przykład SELECT DATEDIFF(day, '2018-12-01', '2018-12-31');.

    Oracle może odjąć liczby całkowite z dat, na przykład SELECT hire_date, (hire_date-1) FROM employees;. W Azure Synapse można dodawać lub odejmować liczby całkowite z dat przy użyciu DATEADD() funkcji .

  • Aktualizacje za pomocą widoków: w programie Oracle można uruchamiać operacje wstawiania, aktualizowania i usuwania względem widoku, aby zaktualizować tabelę bazową. W Azure Synapse te operacje są uruchamiane względem tabeli podstawowej — a nie widoku. Jeśli tabela Oracle zostanie zaktualizowana za pomocą widoku, może być konieczne ponowne zaprojektowanie przetwarzania ETL.

  • Wbudowane funkcje: w poniższej tabeli przedstawiono różnice w składni i użyciu niektórych wbudowanych funkcji.

Oracle, funkcja Opis Odpowiednik usługi Synapse
ADD_MONTHS Dodawanie określonej liczby miesięcy DATEADD
CAST Konwertowanie jednego wbudowanego typu danych na inny CAST
DEKODOWANIA Ocena listy warunków Wyrażenie CASE
EMPTY_BLOB Tworzenie pustej wartości obiektu BLOB 0x stała (pusty ciąg binarny)
EMPTY_CLOB Tworzenie pustej wartości CLOB lub NCLOB '' (pusty ciąg)
INITCAP Wielkie litery każdego wyrazu Funkcja zdefiniowana przez użytkownika
INSTR Znajdowanie pozycji podciągów w ciągu CHARINDEX
LAST_DAY Pobieranie ostatniej daty miesiąca EOMONTH
LENGTH Uzyskiwanie długości ciągu w znakach LEN
LPAD Ciąg okienka po lewej stronie do określonej długości Wyrażenie przy użyciu funkcji REPLICATE, RIGHT i LEFT
MOD Pobierz pozostałą część dzielenia jednej liczby przez inną % Operator
MONTHS_BETWEEN Pobieranie liczby miesięcy między dwiema datami DATEDIFF
NVL Zamień na NULL wyrażenie ISNULL
SUBSTR Zwracanie podciągów z ciągu SUBSTRING
TO_CHAR dla daty/godziny Konwertowanie daty/godziny na ciąg CONVERT
TO_DATE Konwertowanie ciągu na datę/godzinę CONVERT
PRZETŁUMACZ Podstawianie jeden do jednego znaku Wyrażenia używające funkcji REPLACE lub funkcji zdefiniowanej przez użytkownika
TRIM Przycinanie znaków wiodących lub końcowych LTRIM i RTRIM
TRUNC dla daty/godziny Obcinanie daty/godziny Wyrażenia korzystające z funkcji CONVERT
UNISTR Konwertowanie punktów kodu Unicode na znaki Wyrażenia korzystające z NCHAR

Funkcje, procedury składowane i sekwencje

Podczas migracji magazynu danych ze środowiska dojrzałego, takiego jak Oracle, prawdopodobnie trzeba migrować elementy inne niż proste tabele i widoki. W przypadku funkcji, procedur składowanych i sekwencji sprawdź, czy narzędzia w środowisku platformy Azure mogą zastąpić ich funkcjonalność, ponieważ zwykle bardziej wydajne jest używanie wbudowanych narzędzi platformy Azure niż ponowne kodowanie funkcji Oracle.

W ramach fazy przygotowania utwórz spis obiektów, które muszą zostać zmigrowane, zdefiniuj metodę ich obsługi i przydziel odpowiednie zasoby w planie migracji.

Narzędzia firmy Microsoft, takie jak SSMA dla oracle i Azure Database Migration Services, lub produkty i usługi migracji innych firm , mogą zautomatyzować migrację funkcji, procedur składowanych i sekwencji.

Porada

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

W poniższych sekcjach omówiono migrację funkcji, procedur składowanych i sekwencji.

Funkcje

Podobnie jak w przypadku większości produktów baz danych, oracle obsługuje funkcje systemowe i zdefiniowane przez użytkownika w ramach implementacji SQL. Podczas migracji starszej platformy bazy danych do Azure Synapse zwykle można migrować typowe funkcje systemowe bez zmiany. Niektóre funkcje systemowe mogą mieć nieco inną składnię, ale można zautomatyzować wszelkie wymagane zmiany.

W przypadku funkcji systemowych Oracle lub dowolnych funkcji zdefiniowanych przez użytkownika, które nie mają odpowiedników w Azure Synapse, zakoduj je ponownie przy użyciu języka środowiska docelowego. Funkcje zdefiniowane przez użytkownika oracle są kodowane w języku PL/SQL, Java lub C. Azure Synapse używa języka Transact-SQL do implementowania funkcji zdefiniowanych przez użytkownika.

Procedury składowane

Większość nowoczesnych produktów baz danych obsługuje procedury przechowywania w bazie danych. Firma Oracle udostępnia język PL/SQL w tym celu. Procedura składowana zwykle zawiera zarówno instrukcje SQL, jak i logikę proceduralną oraz zwraca dane lub stan.

Azure Synapse obsługuje procedury składowane przy użyciu języka T-SQL, dlatego należy ponownie zakodować wszystkie zmigrowane procedury składowane w języku T-SQL.

Sekwencje

W programie Oracle sekwencja jest nazwanym obiektem bazy danych utworzonym przy użyciu polecenia CREATE SEQUENCE. Sekwencja udostępnia unikatowe wartości liczbowe za pomocą CURRVAL metod i NEXTVAL . Wygenerowanych unikatowych liczb można użyć jako wartości klucza zastępczego dla kluczy podstawowych. Azure Synapse nie implementuje CREATE SEQUENCEinstrukcji , ale można zaimplementować sekwencje przy użyciu IDENTITY kolumn lub kodu SQL, który generuje następny numer sekwencji w serii.

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

Przy założeniu, że model danych podobnie jak w przypadku migrowanych w Azure Synapse z tymi samymi nazwami tabel i kolumn, jednym ze sposobów testowania starszej wersji bazy danych Oracle SQL pod kątem zgodności z Azure Synapse jest:

  1. Przechwyć kilka reprezentatywnych instrukcji SQL ze starszych dzienników historii zapytań systemowych.
  2. Prefiks tych zapytań za pomocą instrukcji EXPLAIN .
  3. Uruchom instrukcje EXPLAIN w Azure Synapse.

Każdy niezgodny program SQL wygeneruje błąd, a informacje o błędzie mogą służyć do określenia skali zadania odzyskiwania. Takie podejście nie wymaga załadowania żadnych danych do środowiska platformy Azure. Wystarczy utworzyć odpowiednie tabele i widoki.

Podsumowanie

Istniejące starsze instalacje Oracle są zwykle implementowane w sposób, który sprawia, że migracja do Azure Synapse stosunkowo prosta. Oba środowiska używają języka SQL do obsługi zapytań analitycznych na dużych woluminach danych i zazwyczaj używają jakiejś formy modelu danych wymiarowych. Te czynniki sprawiają, że instalacje Oracle są dobrym kandydatem do migracji do Azure Synapse.

Podsumowując, nasze zalecenia dotyczące minimalizowania zadania migracji kodu SQL z bazy danych Oracle do Azure Synapse są następujące:

  • Przeprowadź migrację istniejącego modelu danych w taki sposób, aby zminimalizować ryzyko, nakład pracy i czas migracji, nawet jeśli zaplanowano inny model danych, taki jak magazyn danych.

  • Zapoznaj się z różnicami między implementacją bazy danych Oracle SQL a implementacją Azure Synapse.

  • Użyj metadanych i dzienników zapytań z istniejącej implementacji Oracle, aby ocenić wpływ zmiany środowiska. Zaplanuj podejście, aby wyeliminować różnice.

  • Zautomatyzuj proces migracji, aby zminimalizować ryzyko, nakład pracy i czas migracji. Możesz użyć narzędzi firmy Microsoft, takich jak Azure Database Migration Services i SSMA.

  • Rozważ użycie specjalistycznych narzędzi i usług innych firm 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 migracji magazynu danych Oracle do usługi Azure Synapse Analytics.