Návrh a výkon migrace Oracle

Tento článek je první částí sedmidílné série, která obsahuje pokyny k migraci z Oracle na Azure Synapse Analytics. Tento článek se zaměřuje na osvědčené postupy pro návrh a výkon.

Přehled

Vzhledem k nákladům a složitosti údržby a upgradu starších místních prostředí Oracle chce mnoho stávajících uživatelů Oracle využívat inovace, které poskytují moderní cloudová prostředí. Cloudová prostředí infrastruktura jako služba (IaaS) a platforma jako služba (PaaS) umožňují delegovat na poskytovatele cloudu úlohy, jako je údržba infrastruktury a vývoj platformy.

Tip

Více než jen databáze – prostředí Azure zahrnuje komplexní sadu funkcí a nástrojů.

I když Oracle i Azure Synapse Analytics jsou databáze SQL, které používají techniky MPP (Massively Parallel Processing) k dosažení vysokého výkonu dotazů u mimořádně velkých objemů dat, existují některé základní rozdíly v přístupu:

  • Starší systémy Oracle se často instalují místně a používají poměrně drahý hardware, zatímco Azure Synapse je cloudová a využívá úložiště Azure a výpočetní prostředky.

  • Upgrade konfigurace Oracle je hlavní úkol zahrnující dodatečný fyzický hardware a potenciálně zdlouhavou rekonfiguraci databáze nebo výpis a opětovné načtení. Vzhledem k tomu, že úložiště a výpočetní prostředky jsou v prostředí Azure oddělené a mají možnost elastického škálování, je možné tyto prostředky nezávisle škálovat směrem nahoru nebo dolů.

  • Pokud chcete snížit využití prostředků a náklady, můžete Azure Synapse podle potřeby pozastavit nebo změnit jeho velikost.

Microsoft Azure je globálně dostupné, vysoce zabezpečené a škálovatelné cloudové prostředí, které zahrnuje Azure Synapse a ekosystém podpůrných nástrojů a možností. Následující diagram shrnuje ekosystém Azure Synapse.

Graf znázorňující Azure Synapse ekosystém podpůrných nástrojů a možností

Azure Synapse poskytuje nejlepší výkon relačních databází pomocí technik, jako je MPP a automatické ukládání do mezipaměti v paměti. Výsledky těchto technik můžete vidět v nezávislých srovnávacích testech, jako je nedávno spuštěný GigaOm, který porovnává Azure Synapse s dalšími oblíbenými nabídkami cloudového datového skladu. Zákazníci, kteří migrují do Azure Synapse prostředí, vidí řadu výhod, mezi které patří:

  • Vylepšený výkon a cena/výkon.

  • Větší agilita a kratší doba potřebná k vytvoření hodnoty.

  • Rychlejší nasazení serveru a vývoj aplikací.

  • Elastická škálovatelnost – platíte jenom za skutečné využití.

  • Vylepšené zabezpečení a dodržování předpisů.

  • Nižší náklady na úložiště a zotavení po havárii

  • Nižší celkové celkové náklady na vlastnictví, lepší řízení nákladů a zjednodušené provozní náklady (OPEX).

Pokud chcete tyto výhody maximalizovat, migrujte nová nebo stávající data a aplikace na platformu Azure Synapse. V mnoha organizacích migrace zahrnuje přesun existujícího datového skladu ze starší místní platformy, jako je Oracle, do Azure Synapse. Na základní úrovni proces migrace zahrnuje tyto kroky:

    Příprava 🡆

  • Definujte rozsah – co se má migrovat.

  • Vytvořte inventář dat a procesů pro migraci.

  • Definujte změny datového modelu (pokud nějaké jsou).

  • Definujte mechanismus extrakce zdrojových dat.

  • Určete vhodné nástroje a funkce Azure a třetích stran, které se mají použít.

  • Vyškolte personál na nové platformě co nejdříve.

  • Nastavte cílovou platformu Azure.

    Migrace 🡆

  • Začněte od začátku od začátku.

  • Všude, kde je to možné, automatizujte.

  • Využijte integrované nástroje a funkce Azure ke snížení úsilí o migraci.

  • Migrace metadat tabulek a zobrazení

  • Migrovat historická data, která se mají udržovat.

  • Migrace nebo refaktoring uložených procedur a obchodních procesů

  • Migrace nebo refaktoring procesů přírůstkového načítání ETL/ELT

    Po migraci

  • Monitorujte a dokumentujte všechny fáze procesu.

  • Získané zkušenosti využijte k vytvoření šablony pro budoucí migrace.

  • V případě potřeby překonstruujte datový model (s využitím výkonu a škálovatelnosti nové platformy).

  • Testování aplikací a nástrojů pro dotazy

  • Proveďte srovnávací testy a optimalizujte výkon dotazů.

Tento článek obsahuje obecné informace a pokyny pro optimalizaci výkonu při migraci datového skladu z existujícího prostředí Oracle do Azure Synapse. Cílem optimalizace výkonu je dosáhnout stejného nebo lepšího výkonu datového skladu v Azure Synapse po migraci.

Na co dát pozor při navrhování

Rozsah migrace

Při přípravě migrace z prostředí Oracle zvažte následující možnosti migrace.

Volba úlohy pro počáteční migraci

Starší verze prostředí Oracle se obvykle postupem času vyvinuly tak, aby zahrnovaly více předmětných oblastí a smíšené úlohy. Když se rozhodujete, kde začít s projektem migrace, zvolte oblast, ve které budete moct:

  • Prokažte životaschopnost migrace na Azure Synapse rychlým poskytováním výhod nového prostředí.

  • Umožněte svým interním technickým pracovníkům získat relevantní zkušenosti s procesy a nástroji, které budou používat při migraci do jiných oblastí.

  • Vytvořte šablonu pro další migrace, která je specifická pro zdrojové prostředí Oracle a aktuální nástroje a procesy, které už existují.

Vhodný kandidát na počáteční migraci z prostředí Oracle podporuje předchozí položky a:

  • Implementuje úlohu BI/Analytics, a ne úlohu OLTP (Online Transaction Processing).

  • Má datový model, například star nebo sněhové vločkové schéma, který je možné migrovat s minimálními úpravami.

Tip

Vytvořte inventář objektů, které je potřeba migrovat, a zdokumentujte proces migrace.

Objem migrovaných dat při počáteční migraci by měl být dostatečně velký, aby ukázal možnosti a výhody Azure Synapse prostředí, ale ne příliš velký na to, aby bylo možné rychle prokázat hodnotu. Typická je velikost v rozsahu 1–10 terabajtů.

Počátečním přístupem k projektu migrace je minimalizace rizik, úsilí a času potřebných k tomu, abyste rychle viděli výhody cloudového prostředí Azure. Následující přístupy omezují rozsah počáteční migrace jenom na datová tržiště a neřeší širší aspekty migrace, jako je migrace ETL a migrace historických dat. Tyto aspekty ale můžete řešit v pozdějších fázích projektu, jakmile se migrovaná vrstva datového tržiště znovu naplní daty a požadovanými procesy sestavení.

Migrace metodou "lift and shift" vs. fázovaný přístup

Obecně platí, že existují dva typy migrace bez ohledu na účel a rozsah plánované migrace: metodu "lift and shift" tak, jak je, a fázovaný přístup, který zahrnuje změny.

Metoda „lift and shift“

Při migraci metodou lift and shift se stávající datový model, jako je star schéma, migruje na novou platformu Azure Synapse beze změny. Tento přístup minimalizuje riziko a dobu migrace tím, že snižuje množství práce potřebné k realizaci výhod přechodu do cloudového prostředí Azure. Migrace metodou "lift and shift" je vhodná pro tyto scénáře:

  • Máte existující prostředí Oracle s jedním datovým tržištěm, které chcete migrovat, nebo
  • Máte existující prostředí Oracle s daty, která už jsou v dobře navrženém schématu star nebo snowflake, nebo
  • Přechod na moderní cloudové prostředí je pod časovým a nákladovým tlakem.

Tip

Metodou "lift and shift" je dobrým výchozím bodem, a to i v případě, že následné fáze implementují změny datového modelu.

Fázovaný přístup, který zahrnuje změny

Pokud se starší datový sklad vyvíjí po dlouhou dobu, možná ho budete muset přepracovat, aby se zachovaly požadované úrovně výkonu. Možná budete také muset přepracovat podporu nových dat, jako jsou streamy Internetu věcí (IoT). V rámci procesu přepracování migrujte na Azure Synapse, abyste získali výhody škálovatelného cloudového prostředí. Migrace může zahrnovat změnu podkladového datového modelu, například přechod z modelu Inmon do trezoru dat.

Microsoft doporučuje přesunout stávající datový model tak, jak je, do Azure a využít výkon a flexibilitu prostředí Azure k provedení změn přepracování. Díky tomu můžete pomocí možností Azure provádět změny, aniž by to mělo vliv na stávající zdrojový systém.

Použití zařízení Microsoftu k implementaci migrace založené na metadatech

Proces migrace můžete automatizovat a orchestrovat s využitím možností prostředí Azure. Tento přístup minimalizuje výkon ve stávajícím prostředí Oracle, které se už může blížit kapacitě.

Pomocník s migrací SQL Serveru (SSMA) pro Oracle může automatizovat řadu částí procesu migrace, v některých případech včetně funkcí a procedurálního kódu. SSMA podporuje Azure Synapse jako cílové prostředí.

Snímek obrazovky znázorňující, jak může Pomocník s migrací SQL Serveru pro Oracle automatizovat mnoho částí procesu migrace

SSMA pro Oracle vám může pomoct s migrací datového skladu nebo datového tržiště Oracle do Azure Synapse. SSMA je navržená tak, aby automatizovala proces migrace tabulek, zobrazení a dat z existujícího prostředí Oracle.

Azure Data Factory je cloudová služba pro integraci dat, která podporuje vytváření pracovních postupů řízených daty v cloudu, které orchestrují a automatizují přesun a transformaci dat. Pomocí služby Data Factory můžete vytvářet a plánovat pracovní postupy řízené daty (kanály), které ingestují data z různorodých úložišť dat. Data Factory může zpracovávat a transformovat data pomocí výpočetních služeb, jako jsou Azure HDInsight Hadoop, Spark, Azure Data Lake Analytics a Azure Machine Learning.

Službu Data Factory je možné použít k migraci dat ze zdroje do Azure SQL cíle. Tento offline přesun dat pomáhá výrazně snížit výpadky migrace.

Azure Database Migration Services vám může pomoct s plánováním a provedením migrace z prostředí, jako je Oracle.

Pokud plánujete používat zařízení Azure ke správě procesu migrace, vytvořte metadata se seznamem všech tabulek dat, které se mají migrovat, a jejich umístění.

Rozdíly v návrhu mezi Oracle a Azure Synapse

Jak už bylo zmíněno dříve, mezi databázemi Oracle a Azure Synapse Analytics existují určité základní rozdíly. SSMA pro Oracle nejen pomáhá tyto mezery překlenout, ale také automatizuje migraci. Přestože SSMA není nejúčinnějším přístupem pro velmi velké objemy dat, je užitečný pro menší tabulky.

Více databází vs. jedna databáze a schémata

Prostředí Oracle často obsahuje několik samostatných databází. Můžou existovat například samostatné databáze pro: tabulky příjmu a přípravy dat, tabulky základního skladu a datová tržiště – někdy označované jako sémantická vrstva. Zpracování v kanálech ETL nebo ELT může implementovat spojení mezi databázemi a přesouvat data mezi samostatnými databázemi.

Naproti tomu prostředí Azure Synapse obsahuje jednu databázi a používá schémata k oddělení tabulek do logicky oddělených skupin. K napodobení samostatných databází migrovaných z prostředí Oracle doporučujeme použít řadu schémat v cílové databázi Azure Synapse. Pokud prostředí Oracle již používá schémata, možná budete muset při přesunu existujících tabulek a zobrazení Oracle do nového prostředí použít novou konvenci vytváření názvů. Můžete například zřetězení existujícího schématu Oracle a názvů tabulek do nového názvu tabulky Azure Synapse a použít názvy schémat v novém prostředí k zachování původních samostatných názvů databází. I když můžete k údržbě logických struktur použít zobrazení SQL nad podkladovými tabulkami, tento přístup má potenciální nevýhody:

  • Zobrazení v Azure Synapse jsou jen pro čtení, takže všechny aktualizace dat musí probíhat v podkladových základních tabulkách.

  • Možná už existuje jedna nebo více vrstev zobrazení a přidání další vrstvy zobrazení může ovlivnit výkon.

Tip

Zkombinujte více databází do jedné databáze v rámci Azure Synapse a použijte názvy schémat k logickému oddělení tabulek.

Důležité informace o tabulce

Při migraci tabulek mezi různými prostředími se obvykle fyzicky migrují jenom nezpracovaná data a metadata, která je popisují. Jiné databázové prvky ze zdrojového systému, například indexy, se obvykle nemigrují, protože můžou být zbytečné nebo se v novém prostředí implementují odlišně.

Optimalizace výkonu ve zdrojovém prostředí, jako jsou indexy, označují, kam byste mohli přidat optimalizaci výkonu v novém prostředí. Pokud například dotazy ve zdrojovém prostředí Oracle často používají indexy s bitové mapování, znamená to, že by se měl vytvořit ne clusterovaný index v rámci Azure Synapse. Jiné nativní techniky optimalizace výkonu, jako je replikace tabulek, můžou být vhodnější než vytvoření indexu podobného typu. SSMA pro Oracle je možné použít k poskytování doporučení k migraci pro distribuci a indexování tabulek.

Tip

Existující indexy označují kandidáty pro indexování v migrovaném skladu.

Nepodporované typy databázových objektů Oracle

Funkce specifické pro Oracle lze často nahradit funkcemi Azure Synapse. Některé databázové objekty Oracle se ale v Azure Synapse přímo nepodporují. Následující seznam nepodporovaných databázových objektů Oracle popisuje, jak můžete dosáhnout ekvivalentní funkce v Azure Synapse.

  • Různé možnosti indexování: v Oracle nemá několik možností indexování, jako jsou indexy mapované bitem, indexy založené na funkcích a doménové indexy, v Azure Synapse žádný přímý ekvivalent.

    Můžete zjistit, které sloupce jsou indexovány a jaký typ indexu:

    • Dotazování tabulek a zobrazení systémového katalogu, jako ALL_INDEXESjsou , DBA_INDEXESUSER_INDEXES, a DBA_IND_COL. Můžete použít předdefinované dotazy ve službě Oracle SQL Developer, jak je znázorněno na následujícím snímku obrazovky.

      Snímek obrazovky znázorňující dotazování tabulek a zobrazení systémového katalogu v Oracle SQL Developer

      Nebo spusťte následující dotaz a vyhledejte všechny indexy daného typu:

      SELECT * FROM dba_indexes WHERE index_type LIKE 'FUNCTION-BASED%';
      
    • Dotazování zobrazení dba_index_usage nebo v$object_usage při povoleném monitorování Na tato zobrazení se můžete dotazovat v nástroji Oracle SQL Developer, jak je znázorněno na následujícím snímku obrazovky.

      Snímek obrazovky ukazující, jak zjistit, které indexy se používají v Oracle SQL Developer

    Indexy založené na funkcích, kde index obsahuje výsledek funkce v podkladových datových sloupcích, nemají v Azure Synapse žádný přímý ekvivalent. Doporučujeme nejprve migrovat data a potom v Azure Synapse spouštět dotazy Oracle, které k měření výkonu používají indexy založené na funkcích. Pokud výkon těchto dotazů v Azure Synapse není přijatelný, zvažte vytvoření sloupce, který obsahuje předpočítanou hodnotu, a potom tento sloupec indexujte.

    Při konfiguraci prostředí Azure Synapse je vhodné implementovat pouze indexy používané při použití. Azure Synapse aktuálně podporuje typy indexů uvedené tady:

    Snímek obrazovky znázorňující typy indexů, které Azure Synapse podporují

    Azure Synapse funkcí, jako je paralelní zpracování dotazů a ukládání dat a výsledků do mezipaměti, je pravděpodobné, že aplikace datového skladu vyžadují méně indexů, aby mohly dosáhnout výkonnostních cílů. V Azure Synapse doporučujeme použít následující typy indexů:

    • Clusterované indexy columnstore: Pokud pro tabulku nejsou zadané žádné možnosti indexu, Azure Synapse ve výchozím nastavení vytvoří clusterovaný index columnstore. Clusterované tabulky columnstore nabízejí nejvyšší úroveň komprese dat, nejlepší celkový výkon dotazů a obecně předčí tabulky clusterovaných indexů nebo hald. Clusterovaný index columnstore je obvykle nejlepší volbou pro velké tabulky. Pokud si nejste jistí, jak tabulku indexovat, při vytváření tabulky zvolte clusterovaný columnstore. Existují ale situace, kdy clusterované indexy columnstore nejsou nejlepší volbou:

      • Tabulky s předem seřazenými daty na klíčích řazení by mohly těžit z odstranění segmentu povoleného uspořádanými clusterovanými indexy columnstore.
      • Tabulky s datovými typy varchar(max), nvarchar(max) nebo varbinary(max), protože clusterovaný index columnstore tyto datové typy nepodporuje. Místo toho zvažte použití haldy nebo clusterovaného indexu.
      • Tabulky s přechodnými daty, protože tabulky columnstore můžou být méně efektivní než tabulky haldy nebo dočasné tabulky.
      • Malé tabulky s méně než 100 miliony řádků. Místo toho zvažte použití tabulek haldy.
    • Uspořádané clusterované indexy columnstore: Díky povolení efektivní eliminace segmentů poskytují uspořádané clusterované indexy columnstore v Azure Synapse vyhrazené fondy SQL mnohem rychlejší výkon tím, že přeskočí velké objemy uspořádaných dat, které neodpovídají predikátu dotazu. Načítání dat do uspořádané tabulky CCI může kvůli operaci řazení dat trvat déle než neuspořádaná tabulka CCI, ale dotazy můžou s objednanými CCI běžet rychleji. Další informace o uspořádaných clusterovaných indexech columnstore najdete v tématu Ladění výkonu s uspořádaným clusterovaným indexem columnstore.

    • Clusterované a neclusterované indexy: Clusterované indexy můžou v případech, kdy je potřeba rychle načíst jeden řádek, překonaly clusterované indexy columnstore. U dotazů, u kterých vyhledávání na jednom řádku nebo jen vyhledávání na několika řádcích musí provádět extrémní rychlostí, zvažte použití indexu clusteru nebo neclusterovaného sekundárního indexu. Nevýhodou použití clusterovaného indexu je, že prospěje pouze dotazy s vysoce selektivním filtrem na clusterovaný indexový sloupec. Pokud chcete zlepšit filtrování u jiných sloupců, můžete do ostatních sloupců přidat neclusterovaný index. Každý index, který přidáte do tabulky, ale využívá více místa a prodlužuje dobu zpracování k načtení.

    • Tabulky haldy: Když dočasně přisazujete data na Azure Synapse, můžete zjistit, že použití tabulky haldy celý proces urychlí. Je to proto, že načítání dat do tabulek haldy je rychlejší než načítání dat do tabulek indexů a v některých případech je možné následné čtení provést z mezipaměti. Pokud načítáte data jenom za účelem jejich fáze před spuštěním dalších transformací, je mnohem rychlejší je načíst do tabulky haldy než clusterovanou tabulku columnstore. Načítání dat do dočasné tabulky je také rychlejší než načítání tabulky do trvalého úložiště. Pro malé vyhledávací tabulky s méně než 100 miliony řádků jsou obvykle správnou volbou tabulky haldy. Tabulky columnstore clusteru začnou dosahovat optimální komprese, když obsahují více než 100 milionů řádků.

  • Clusterované tabulky: Tabulky Oracle je možné uspořádat tak, aby řádky tabulky, ke kterým se často přistupuje společně (na základě společné hodnoty), byly fyzicky uloženy společně, aby se snížil počet vstupně-výstupních operací disku při načítání dat. Oracle také poskytuje možnost hash-cluster pro jednotlivé tabulky, která použije hodnotu hash na klíč clusteru a fyzicky ukládá řádky se stejnou hodnotou hash dohromady. Pokud chcete zobrazit seznam clusterů v databázi Oracle, použijte SELECT * FROM DBA_CLUSTERS; dotaz. Pokud chcete zjistit, jestli se tabulka nachází v clusteru, použijte SELECT * FROM TAB; dotaz, který zobrazuje název tabulky a ID clusteru pro každou tabulku.

    V Azure Synapse můžete dosáhnout podobných výsledků pomocí materializovaných nebo replikovaných tabulek, protože tyto typy tabulek minimalizují vstupně-výstupní operace vyžadované za běhu dotazu.

  • Materializovaná zobrazení: Oracle podporuje materializovaná zobrazení a doporučuje použít jedno nebo více pro velké tabulky s mnoha sloupci, kde se v dotazech pravidelně používá jenom několik sloupců. Materializovaná zobrazení jsou systémem automaticky aktualizována při aktualizaci dat v základní tabulce.

    V roce 2019 společnost Microsoft oznámila, že Azure Synapse bude podporovat materializovaná zobrazení se stejnými funkcemi jako v Oracle. Materializovaná zobrazení jsou teď ve verzi Preview ve Azure Synapse.

  • Triggery v databázi: V Oracle je možné nakonfigurovat trigger tak, aby se automaticky spustil při výskytu aktivační události. Aktivační události můžou být:

    • Příkaz jazyka DML (Data Manipulation Language), například INSERT, UPDATEnebo DELETE, běží v tabulce. Pokud jste definovali trigger, který se aktivuje před příkazem INSERT v tabulce zákazníka, aktivační událost se aktivuje před vložením nového řádku do tabulky zákazníka.

    • Spustí se příkaz DDL, například CREATE nebo ALTER. Tento trigger se často používá pro účely auditování k zaznamenávání změn schématu.

    • Událost systému, například spuštění nebo vypnutí databáze Oracle.

    • Událost uživatele, například přihlášení nebo odhlášení.

    Seznam aktivačních událostí definovaných v databázi Oracle můžete získat dotazováním ALL_TRIGGERSzobrazení , DBA_TRIGGERSnebo USER_TRIGGERS . Následující snímek obrazovky ukazuje dotaz ve službě DBA_TRIGGERS Oracle SQL Developer.

    Snímek obrazovky znázorňující dotazování na seznam aktivačních událostí v Oracle SQL Developer

    Azure Synapse nepodporuje triggery databáze Oracle. Ekvivalentní funkce ale můžete přidat pomocí služby Data Factory, i když to bude vyžadovat refaktoring procesů, které používají triggery.

  • Synonyma: Oracle podporuje definování synonym jako alternativních názvů pro několik typů databázových objektů. Mezi tyto typy objektů patří: tabulky, zobrazení, sekvence, procedury, uložené funkce, balíčky, materializovaná zobrazení, objekty schématu třídy Java, uživatelem definované objekty nebo jiné synonymum.

    Azure Synapse aktuálně nepodporuje definování synonym, i když pokud synonymum v Oracle odkazuje na tabulku nebo zobrazení, můžete v Azure Synapse definovat zobrazení tak, aby odpovídalo alternativnímu názvu. Pokud synonymum v Oracle odkazuje na funkci nebo uloženou proceduru, pak v Azure Synapse můžete vytvořit další funkci nebo uloženou proceduru s názvem, který odpovídá synonymu, který volá cíl.

  • Uživatelem definované typy: Oracle podporuje uživatelem definované objekty, které mohou obsahovat řadu jednotlivých polí, z nichž každé má vlastní definici a výchozí hodnoty. Na tyto objekty lze v definici tabulky odkazovat stejným způsobem jako na předdefinované datové typy, jako je nebo NUMBERVARCHAR. Seznam uživatelsky definovaných typů v databázi Oracle můžete získat dotazováním ALL_TYPESzobrazení , DBA_TYPESnebo USER_TYPES .

    Azure Synapse v současné době nepodporuje uživatelsky definované typy. Pokud data, která potřebujete migrovat, zahrnují datové typy definované uživatelem, buď je "zploštěte" do definice konvenční tabulky, nebo pokud se jedná o pole dat, normalizujte je v samostatné tabulce.

Mapování datových typů Oracle

Většina datových typů Oracle má v Azure Synapse přímý ekvivalent. Následující tabulka uvádí doporučený postup mapování datových typů Oracle na Azure Synapse.

Datový typ Oracle Datový typ Azure Synapse
SOUBOR BFILE Nepodporováno Mapovat na VARBINARY (MAX).
BINARY_FLOAT Nepodporováno Namapovat na FLOAT.
BINARY_DOUBLE Nepodporováno Namapovat na DOUBLE.
BLOB Není přímo podporováno. Nahraďte za VARBINARY(MAX).
CHAR CHAR
CLOB Není přímo podporováno. Nahraďte za VARCHAR(MAX).
DATE (Datum) DATUM v Oracle může také obsahovat informace o čase. V závislosti na mapování využití na DATUM nebo ČASOVÉ RAZÍTKO.
DESETINNÝCH DESETINNÝCH
DVOJITÉ PRECISION DOUBLE
FLOAT FLOAT
CELÉ ČÍSLO INT
INTERVAL OD ROKU DO MĚSÍCE Datové typy INTERVAL se nepodporují. Funkce porovnání kalendářních dat, například DATEDIFF nebo DATEADD, používejte pro výpočty kalendářních dat.
INTERVAL DEN AŽ SEKUNDA Datové typy INTERVAL se nepodporují. Funkce porovnání kalendářních dat, například DATEDIFF nebo DATEADD, používejte pro výpočty kalendářních dat.
DLOUHÉ Nepodporováno Mapování na VARCHAR(MAX).
LONG RAW Nepodporováno Mapování na VARBINARY(MAX).
NCHAR NCHAR
NVARCHAR2 NVARCHAR
ČÍSLO FLOAT
NCLOB Není přímo podporováno. Nahraďte za NVARCHAR(MAX).
ČÍSELNÉ ČÍSELNÉ
Datové typy médií ORD Nepodporováno
SYROVÉ Nepodporováno Mapovat na VARBINARY.
REÁLNÉ REÁLNÉ
ROWID (ID ŘÁDKU) Nepodporováno Namapovat na identifikátor GUID, který je podobný.
Geoprostorové datové typy SDO Nepodporováno
SMALLINT SMALLINT
ČASOVÉ RAZÍTKO FUNKCE DATETIME2 nebo funkce CURRENT_TIMESTAMP()
ČASOVÉ RAZÍTKO S MÍSTNÍM ČASOVÝM PÁSMEM Nepodporováno Namapovat na DATETIMEOFFSET.
ČASOVÉ RAZÍTKO S ČASOVÝM PÁSMEM Nepodporuje se, protože funkce TIME se ukládá pomocí hodinového času bez posunu časového pásma.
Typ identifikátoru URI Nepodporováno Skladujte ve varcharu.
UROWID Nepodporováno Namapovat na identifikátor GUID, který je podobný.
VARCHAR VARCHAR
VARCHAR2 VARCHAR
Xmltype Nepodporováno Uložení dat XML v objektu VARCHAR.

Oracle také podporuje definování uživatelem definovaných objektů, které mohou obsahovat řadu jednotlivých polí, z nichž každé má vlastní definici a výchozí hodnoty. Na tyto objekty pak lze v rámci definice tabulky odkazovat stejným způsobem jako na předdefinované datové typy, jako je nebo NUMBERVARCHAR. Azure Synapse v současné době nepodporuje uživatelsky definované typy. Pokud data, která potřebujete migrovat, zahrnují datové typy definované uživatelem, buď je "zploštěte" do definice konvenční tabulky, nebo pokud se jedná o pole dat, normalizujte je v samostatné tabulce.

Tip

Vyhodnoťte počet a typ nepodporovaných datových typů během fáze přípravy migrace.

Dodavatelé třetích stran nabízejí nástroje a služby pro automatizaci migrace, včetně mapování datových typů. Pokud se v prostředí Oracle již používá nástroj ETL třetí strany , použijte ho k implementaci všech požadovaných transformací dat.

Rozdíly v syntaxi SQL DML

Mezi Oracle SQL a Azure Synapse T-SQL existují rozdíly v syntaxi DML SQL. Tyto rozdíly jsou podrobně popsány v tématu Minimalizace problémů SQL pro migrace Oracle. V některých případech můžete migraci DML automatizovat pomocí nástrojů Microsoftu, jako jsou SSMA for Oracle a Azure Database Migration Services, nebo produktů a služeb pro migraci třetích stran .

Funkce, uložené procedury a sekvence

Při migraci datového skladu z vyspělého prostředí, jako je Oracle, budete pravděpodobně muset migrovat jiné prvky než jednoduché tabulky a zobrazení. Zkontrolujte, jestli nástroje v prostředí Azure můžou nahradit funkce funkcí, uložených procedur a sekvencí, protože je obvykle efektivnější použít integrované nástroje Azure než je překódovat pro Azure Synapse.

V rámci přípravné fáze vytvořte inventář objektů, které je potřeba migrovat, definujte metodu pro jejich zpracování a přidělte v plánu migrace příslušné prostředky.

Nástroje Microsoftu, jako je SSMA pro Oracle a Azure Database Migration Services, nebo produkty a služby pro migraci třetích stran , můžou automatizovat migraci funkcí, uložených procedur a sekvencí.

Následující části dále popisují migraci funkcí, uložených procedur a sekvencí.

Functions

Stejně jako u většiny databázových produktů Oracle podporuje systémové a uživatelem definované funkce v rámci implementace SQL. Při migraci starší databázové platformy do Azure Synapse je obvykle možné běžné systémové funkce migrovat beze změn. Některé systémové funkce můžou mít trochu odlišnou syntaxi, ale všechny požadované změny je možné automatizovat. Seznam funkcí v databázi Oracle můžete získat dotazováním ALL_OBJECTS zobrazení s příslušnou WHERE klauzulí. K získání seznamu funkcí můžete použít Oracle SQL Developer, jak je znázorněno na následujícím snímku obrazovky.

Snímek obrazovky znázorňující dotazování na seznam funkcí v Oracle SQL Developer

V případě systémových funkcí Oracle nebo libovolných uživatelem definovaných funkcí, které nemají v Azure Synapse ekvivalent, překódujte tyto funkce pomocí cílového jazyka prostředí. Uživatelem definované funkce Oracle jsou kódované v PL/SQL, Javě nebo C. Azure Synapse k implementaci uživatelem definovaných funkcí používá jazyk Transact-SQL.

Uložené procedury

Většina moderních databázových produktů podporuje ukládání procedur v databázi. Oracle pro tento účel poskytuje jazyk PL/SQL. Uložená procedura obvykle obsahuje příkazy SQL i procedurální logiku a vrací data nebo stav. Seznam uložených procedur v databázi Oracle můžete získat dotazem na ALL_OBJECTS zobrazení s příslušnou WHERE klauzulí. Pomocí oracle SQL Developer můžete získat seznam uložených procedur, jak je znázorněno na dalším snímku obrazovky.

Snímek obrazovky znázorňující dotazování na seznam uložených procedur ve vývojáři Oracle SQL

Azure Synapse podporuje uložené procedury pomocí T-SQL, takže budete muset překódovat všechny migrované uložené procedury v daném jazyce.

Sekvence

V Oracle je posloupnost pojmenovaným databázovým objektem vytvořeným pomocí CREATE SEQUENCE. Sekvence poskytuje jedinečné číselné hodnoty prostřednictvím CURRVAL metod a NEXTVAL . Vygenerovaná jedinečná čísla můžete použít jako hodnoty náhradního klíče pro primární klíče.

Azure Synapse neimplementuje CREATE SEQUENCE, ale můžete implementovat sekvence pomocí sloupců IDENTITY nebo kódu SQL, který vygeneruje další pořadové číslo v řadě.

Extrahování metadat a dat z prostředí Oracle

Generování jazyka pro definici dat

Standard ANSI SQL definuje základní syntaxi pro příkazy DDL (Data Definition Language). Některé příkazy DDL, jako CREATE TABLE jsou a CREATE VIEW, jsou společné pro Oracle i Azure Synapse ale poskytují také funkce specifické pro implementaci, jako je indexování, distribuce tabulek a možnosti dělení.

Úpravou existujících oracle CREATE TABLE a CREATE VIEW skriptů můžete dosáhnout ekvivalentních definic v Azure Synapse. K tomu může být potřeba použít upravené datové typy a odebrat nebo upravit klauzule specifické pro Oracle, například TABLESPACE.

Tabulky systémového katalogu v prostředí Oracle určují aktuální tabulku a definici zobrazení. Na rozdíl od uživatelsky spravované dokumentace jsou informace systémového katalogu vždy úplné a synchronizované s aktuálními definicemi tabulek. K informacím v systémovém katalogu můžete získat přístup pomocí nástrojů, jako je Oracle SQL Developer. Oracle SQL Developer může generovat CREATE TABLE příkazy DDL, které můžete upravit a vytvořit ekvivalentní tabulky v Azure Synapse.

Nebo můžete použít SSMA pro Oracle k migraci tabulek z existujícího prostředí Oracle do Azure Synapse. SSMA pro Oracle použije odpovídající mapování datových typů a doporučené typy tabulek a distribucí, jak je znázorněno na následujícím snímku obrazovky.

Snímek obrazovky ukazující, jak migrovat tabulky z a existujícího prostředí Oracle do Azure Synapse pomocí Pomocník s migrací SQL Serveru pro Oracle

K dosažení podobných výsledků můžete použít také nástroje pro migraci a etl třetích stran , které zpracovávají informace ze systémového katalogu.

Extrakce dat z Oracle

Nezpracovaná data tabulky z tabulek Oracle můžete extrahovat do plochých souborů s oddělovači, jako jsou soubory CSV, pomocí standardních nástrojů Oracle, jako je Oracle SQL Developer, SQL*Plus a SCLcl. Soubory s plochým oddělovačem pak můžete zkomprimovat pomocí knihovny gzip a nahrát je do Azure Blob Storage pomocí nástroje AzCopy nebo nástrojů azure pro přenos dat, jako je Azure Data Box.

Extrahujte data tabulky co nejefektivněji – zejména při migraci velkých tabulek faktů. U tabulek Oracle použijte paralelismus k maximalizaci propustnosti extrakce. Paralelismu můžete dosáhnout spuštěním několika procesů, které extrahují jednotlivé segmenty dat, nebo pomocí nástrojů, které umožňují automatizovat paralelní extrakci prostřednictvím dělení.

Tip

Používejte paralelismus pro co nejefektivnější extrakci dat.

Pokud je k dispozici dostatečná šířka pásma sítě, můžete extrahovat data z místního systému Oracle přímo do Azure Synapse tabulek nebo do služby Azure Blob Data Storage. K tomu použijte procesy služby Data Factory, Azure Database Migration Service nebo produkty ETL nebo migrace dat třetích stran.

Extrahované datové soubory by měly obsahovat text s oddělovači ve formátu CSV, ORC (Optimized Row Columnar) nebo Parquet.

Další informace o migraci dat a ETL z prostředí Oracle najdete v tématu Migrace dat, ETL a načítání pro migrace Oracle.

Doporučení k výkonu pro migrace Oracle

Cílem optimalizace výkonu je stejný nebo lepší výkon datového skladu po migraci do Azure Synapse.

Podobnosti v konceptech přístupu k ladění výkonu

Mnoho konceptů ladění výkonu pro databáze Oracle platí pro Azure Synapse databáze. Příklad:

  • Rozdělení dat použijte ke kolokaci dat, která se mají připojit ke stejnému uzlu zpracování.

  • Použijte nejmenší datový typ pro daný sloupec, abyste ušetřili místo v úložišti a urychlili zpracování dotazů.

  • Ujistěte se, že sloupce, které se mají spojit, mají stejný datový typ, aby bylo možné optimalizovat zpracování spojení a snížit potřebu transformací dat.

  • Abyste optimalizátoru pomohli vytvořit nejlepší plán provádění, ujistěte se, že statistiky jsou aktuální.

  • Monitorujte výkon pomocí integrovaných funkcí databáze, abyste zajistili efektivní využití prostředků.

Tip

Určete prioritu znalosti Azure Synapse možností ladění na začátku migrace.

Rozdíly v přístupu k ladění výkonu

Tato část popisuje nízké rozdíly implementace ladění výkonu mezi Oracle a Azure Synapse.

Možnosti distribuce dat

Pro zvýšení výkonu byla Azure Synapse navržena s architekturou s více uzly a používá paralelní zpracování. Pokud chcete optimalizovat výkon tabulek v Azure Synapse, můžete definovat možnost distribuce dat v CREATE TABLE příkazech pomocí příkazu .DISTRIBUTION Můžete například zadat tabulku distribuovanou hodnotou hash, která distribuuje řádky tabulky napříč výpočetními uzly pomocí deterministické hashovací funkce. Mnoho implementací Oracle, zejména starších místních systémů, tuto funkci nepodporuje.

Na rozdíl od Oracle Azure Synapse podporuje místní spojení mezi malou a velkou tabulkou prostřednictvím replikace malých tabulek. Představte si například malou tabulku dimenzí a velkou tabulku faktů v rámci modelu star schématu. Azure Synapse může replikovat menší tabulku dimenzí napříč všemi uzly, aby se zajistilo, že hodnota jakéhokoli klíče spojení pro velkou tabulku má odpovídající místně dostupný řádek dimenze. Režijní náklady na replikaci tabulky dimenzí jsou u malé tabulky dimenzí relativně nízké. U velkých tabulek dimenzí je vhodnější přístup k distribuci hodnot hash. Další informace o možnostech distribuce dat najdete v tématech Pokyny k návrhu pro použití replikovaných tabulek a Pokyny k návrhu distribuovaných tabulek.

Tip

Distribuce hodnot hash zlepšuje výkon dotazů u velkých tabulek faktů. Distribuce kruhového dotazování je užitečná pro zvýšení rychlosti načítání.

Distribuci hodnoty hash je možné použít u více sloupců, aby bylo rozdělení základní tabulky rovnoměrnější. Rozdělení s více sloupci vám umožní vybrat až osm sloupců pro distribuci. To nejen snižuje nerovnoměrnou distribuci dat v průběhu času, ale také zlepšuje výkon dotazů.

Poznámka

Distribuce s více sloupci je aktuálně ve verzi Preview pro Azure Synapse Analytics. S příkazy CREATE MATERIALIZED VIEW, CREATE TABLE a CREATE TABLE AS SELECT můžete použít distribuci s více sloupci.

Poradce pro distribuci

V Azure Synapse SQL je možné přizpůsobit způsob distribuce jednotlivých tabulek. Strategie distribuce tabulek výrazně ovlivňuje výkon dotazů.

Poradce pro distribuci je nová funkce v Synapse SQL, která analyzuje dotazy a doporučuje nejlepší distribuční strategie pro tabulky, aby se zlepšil výkon dotazů. Dotazy, které má poradce zvážit, můžete poskytnout vy nebo je můžete získat z historických dotazů, které jsou k dispozici ve zobrazení dynamické správy.

Podrobnosti a příklady použití poradce pro distribuci najdete v tématu Poradce pro distribuci v Azure Synapse SQL.

Indexování dat

Azure Synapse podporuje několik uživatelsky definovatelných možností indexování, které mají jinou operaci a využití než mapy zón spravovaných systémem v Oracle. Další informace o různých možnostech indexování v Azure Synapse najdete v tématu Indexy ve vyhrazených tabulkách fondu SQL.

Definice indexů ve zdrojovém prostředí Oracle poskytují užitečnou indikaci využití dat a kandidátských sloupců pro indexování v prostředí Azure Synapse. Obvykle nebudete muset migrovat všechny indexy ze starší verze prostředí Oracle, protože Azure Synapse příliš nespoléhá na indexy a implementuje následující funkce, aby dosáhla vynikajícího výkonu:

  • Paralelní zpracování dotazů.

  • Ukládání dat v paměti a sady výsledků do mezipaměti.

  • Distribuce dat, například replikace tabulek malých dimenzí, za účelem snížení počtu vstupně-výstupních operací

Dělení dat

V podnikovém datovém skladu můžou tabulky faktů obsahovat miliardy řádků. Dělení optimalizuje údržbu a dotazování těchto tabulek tím, že je rozdělí do samostatných částí, aby se snížilo množství zpracovávaných dat. V Azure Synapse CREATE TABLE definuje příkaz specifikaci dělení tabulky.

Pro dělení můžete použít pouze jedno pole pro každou tabulku. Toto pole je často polem kalendářního data, protože mnoho dotazů se filtruje podle data nebo rozsahu dat. Po počátečním načtení je možné změnit dělení tabulky pomocí CREATE TABLE AS příkazu (CTAS) a znovu vytvořit tabulku s novou distribucí. Podrobné informace o dělení v Azure Synapse najdete v tématu Dělení tabulek ve vyhrazeném fondu SQL.

PolyBase nebo COPY INTO pro načítání dat

PolyBase podporuje efektivní načítání velkých objemů dat do datového skladu pomocí paralelních načítacích datových proudů. Další informace najdete v tématu Strategie načítání dat PolyBase.

Funkce COPY INTO také podporuje příjem dat s vysokou propustností a:

  • Načítání dat ze všech souborů v rámci složky a podsložek
  • Načítání dat z více umístění ve stejném účtu úložiště Více umístění můžete zadat pomocí cest oddělených čárkami.
  • Azure Data Lake Storage (ADLS) a Azure Blob Storage.
  • Formáty souborů CSV, PARQUET a ORC.

Tip

Doporučeným způsobem načítání dat je použít COPY INTO společně s formátem souboru PARQUET.

Správa úloh

Spouštění smíšených úloh může v zaneprázdněných systémech představovat problémy s prostředky. Úspěšné schéma správy úloh efektivně spravuje prostředky, zajišťuje vysoce efektivní využití prostředků a maximalizuje návratnost investic (ROI). Klasifikace úloh, důležitost úloh a izolace úloh poskytují větší kontrolu nad tím, jak úlohy využívají systémové prostředky.

Průvodce správou úloh popisuje techniky analýzy úloh, správu a monitorování důležitosti úloh a postup převodu třídy prostředků na skupinu úloh. Pomocí dotazů Azure Portal a T-SQL na zobrazení dynamické správy můžete monitorovat úlohy, abyste zajistili efektivní využití příslušných prostředků.

Další kroky

Další informace o ETL a zatížení pro migraci Oracle najdete v dalším článku v této sérii: Migrace dat, ETL a načítání pro migrace Oracle.