Článek přečtěte do 5 min.

Chcete přesunout data z databáze dokumentů, jako je MongoDB, do relační databáze, ale nejste obeznámeni s relačními koncepty? Nejste si jisti, jak modelovat dokumenty JSON jako relační tabulky a jak vytvořit logický model? Zajímá vás transparentní a automatická migrace aplikací z databází dokumentů do Oracle?

Pokud je odpověď na některou z výše uvedených otázek „Ano", pak jste na správném místě.

Co je relační dualita JSON?

Relační dualita JSON sjednocuje výhody relačního a dokumentového světa v rámci jedné databáze bez jakýchkoli kompromisů spojených s oběma světy. Nová funkce v Oracle Database 23ai, která tuto schopnost umožňuje, se označuje jako zobrazení relační duality JSON. Pomocí zobrazení duality jsou data stále uložena v relačních tabulkách ve vysoce efektivním normalizovaném formátu, ale aplikace k nim přistupují ve formě dokumentů JSON. Vývojáři tak mohou pro přístup k datům uvažovat v termínech dokumentů JSON a zároveň používat vysoce efektivní relační model pro ukládání dat, aniž by museli slevit z jednoduchosti nebo efektivity.

Nejprve si povíme, proč byste měli migrovat na Oracle JSON Relational Duality

S relační dualitou JSON získáte všechny výhody databází dokumentů a relačního datového modelu na stejné datové sadě. Není třeba v aplikaci vynucovat omezení integrity dat, databáze to udělá za vás! Získáte integritu dat pro libovolný počet dokumentů a kolekcí. Získáte flexibilitu pro přístup k datům pomocí rozhraní API dokumentů, REST nebo SQL pro podporu různých úloh.

Dále si povíme, proč byste měli migrovat z databází dokumentů

Databáze dokumentů jsou skvělé pro jednoduché případy užití. S rostoucí složitostí případů užití se však zajištění konzistence dat stává náročnějším. Je to proto, že databáze dokumentů duplikují sdílená data – jejich aktualizace a zajištění konzistence je proto velmi obtížné. Přechod z databází dokumentů vás osvobodí od zátěže denormalizovaného úložiště.

Nyní, když jste se fantasticky rozhodli přejít k Oracle, pojďme si probrat, jak můžete snadno migrovat svá data a aplikace.

Řekněme, že máte existující aplikaci spuštěnou v produkčním prostředí na databázi dokumentů. Pokud chcete aplikaci přesunout do duálních zobrazení Oracle, jak postupujete při migraci?

Nejprve musíte určit normalizované relační schéma, které nejlépe odpovídá vašim datům. Dále je třeba vytvořit relační schéma a nad relačními daty vytvořit duální pohledy, které odpovídají kolekcím vaší aplikace. Jakmile je to hotové, můžete importovat data do výsledných duálních pohledů a migrovat aplikaci, aby je používala.

Ale počkejte… Jak najdeme normalizované relační schéma, které nejlépe odpovídá vašim datům? Obecně se to jeví jako složitý problém, zejména proto, že moderní aplikace mohou mít několik kolekcí s netriviálními datovými modely.

A právě zde přichází na řadu nástroj Oracle JSON-to-Duality Migrator! Migrátor řeší problém zachování sémantiky dokumentů JSON v relačních schématech. Odvozením implicitních vztahů z kolekcí dokumentů generuje aktualizovatelné pohledy duality, které zrcadlí původní struktury JSON. Tato metoda zajišťuje zpětnou kompatibilitu pro aplikace závislé na API dokumentů a zároveň využívá relační optimalizaci, jako je indexování a dodržování ACID. Nástroj podporuje iterativní zpřesňování, což vývojářům umožňuje upravovat odvozená schémata po migraci.

Migrátor vám umožňuje:

  1. Navrhněte efektivní normalizované relační schéma odvozené z existující sady kolekcí JSON.
  2. Migrujte data z databáze dokumentů do duálních zobrazení Oracle a zároveň je automaticky transformujte do cílového schématu.
  3. Transparentní aplikace typu Lift-and-Shift s minimálními nebo žádnými změnami kódu.
Přehled migrátoru JSON-to-duality
Obrázek 1. Přehled migrátoru JSON-to-Duality

Co nabízí JSON-to-Duality Migrator?

  1. Generuje DDL skripty pro vytvoření relačního schématu (včetně tabulek, indexů, omezení a sekvencí).
  2. Generuje duální zobrazení, která zrcadlí tvar dokumentů JSON ve vstupních kolekcích.
  3. Automaticky normalizuje a odstraňuje duplikáty dat.
  4. Volitelně umožňuje uživatelům doladit a optimalizovat vygenerované schéma.

Jak funguje migrátor JSON-to-duality?

  1. Určuje normalizované schéma po analýze dat a struktury vstupních kolekcí JSON.
  2. Využívá sofistikované algoritmy strojového učení (ML) bez dozoru k vytvoření normalizovaného relačního schématu.
  3. Eliminuje duplicitu identifikací sdílených dat napříč kolekcemi.
  4. Používá analýzu funkčních závislostí k automatické identifikaci primárních klíčů pro každou entitu a cizích klíčů mezi identifikovanými entitami.

To zní úžasně; Jak to mám použít?

Migrátor nabízí sadu snadno použitelných funkcí a procedur PL/SQL (součást balíčku dbms_json_duality), které pomáhají s odvozováním schématu, generováním schématu, ověřováním schématu, importem dat a ověřováním dat.

API Popis
schéma_odvození Odvozuje relační schéma, které reprezentuje všechny vstupní kolekce.
generovat_schéma Vytvoří kód pro vytvoření požadovaných databázových objektů pro každý pohled duality.
odvodit_a_generovat_schéma Provádí infer_schema i generate_schema.
validate_schema_report Ověřuje odvozené schéma oproti vstupním kolekcím.
import_vše Importuje existující kolekce dokumentů do duálních zobrazení (ve skutečnosti do podkladových relačních tabulek).
validate_import_report Ověřuje importovaná data oproti vstupním kolekcím.

Základní kroky pro migraci

Předpokládáme, že proces migrace bude zahrnovat následující kroky

  1. Importujte kolekce JSON z databáze dokumentů, jako je MongoDB, do sady tabulek s jedním sloupcem JSON (buď běžné tabulky, nebo tabulky kolekcí JSON). To lze provést pomocí stávajících nástrojů poskytovaných společností Oracle a databázemi dokumentů, jako jsou externí tabulky JSON nebo DBMS_CLOUD.COPY_COLLECTION.
  2. Spusťte PL/SQL funkce (infer_and_generate_schema, infer_schema, generate_schema) pro nalezení a vytvoření relačního schématu pro vstupní kolekce. a. Můžete to provést najednou pomocí infer_and_generate_schema. b. Můžete také použít kombinaci infer_schema a generate_schema, abyste to provedli ve dvou fázích, v případě, že chcete schéma doladit před generováním DDL skriptu pro jeho vytvoření.
  3. Ověřte vygenerované schéma pomocí rozhraní API validate_schema_report.
  4. Přesun dat z tabulek JSON do zobrazení duality pomocí rozhraní API import_all.
  5. Ověřte importovaná data pomocí rozhraní API validate_import_report.
  6. Dolaďte své aplikace tak, aby využívaly mnoho funkcí duálních zobrazení a konvergované databáze Oracle.

Podívejme se na příklad plánování konference, abychom pochopili, jak používat Migrator. Migrator JSON-to-Duality spouštíme voláním funkce infer_and_generate_schema a importujeme data voláním procedury import_all. Kompletní skript pro tento příklad naleznete zde.

DECLARE
  schema_sql clob;
BEGIN 
  -- Infer relational schema + duality views
  schema_sql :=
    dbms_json_duality.infer_and_generate_schema(
    json(''));

  -- Print DDL script
  dbms_output.put_line('DDL Script: ');
  dbms_output.put_line(schema_sql);

  -- Create relational schema + duality views
  execute immediate schema_sql;

  -- Import data into duality views
  DBMS_JSON_DUALITY.import_all(
          JSON(''));
END;
/

Super jednoduché, že? Stáhněte si bezplatnou verzi Oracle Database 23ai a vyzkoušejte ji ještě dnes!

Klíčové poznatky

  • Migrator JSON-To-Duality automatizuje nejtěžší kroky v procesu migrace z databází dokumentů do duálních zobrazení Oracle.
    • Konkrétně validace dat, normalizace dat a generování schémat.
  • Migrátor je nekontrolovaný, tj. k jeho provozu není nutný žádný uživatelský vstup.
    • Uživatelé mohou doporučení poskytovaná nástrojem libovolně přepsat.
  • Migrator výrazně snižuje bariéru pro vývojáře aplikací při migraci z databází dokumentů, jako je MongoDB, do Oracle.
    • Usnadňuje migraci mezi databázemi dokumentů.

Pro další informace nás neváhejte kontaktovat.

Zdroj: Oracle