Sdílet prostřednictvím


Open mirroring landing zone requirements and format

Tento článek podrobně popisuje požadavky na cílovou zónu a operaci tabulky/sloupce pro otevřené zrcadlení v Microsoft Fabric.

Důležité

Tato funkce je ve verzi Preview.

Po vytvoření otevřené zrcadlené databáze prostřednictvím portálu Fabric nebo veřejného rozhraní API v pracovním prostoru Fabric získáte adresu URL cílové zóny ve OneLake na domovské stránce zrcadlené položky databáze. Tato cílová zóna je místo, kde vaše aplikace vytvoří soubor metadat a data země ve formátu Parquet (nekomprimované, Snappy, GZIP, ZSTD).

Snímek obrazovky z portálu Fabric s umístěním adresy URL cílové zóny na domovské stránce zrcadlené položky databáze

Cílová zóna

Pro každou zrcadlenou databázi existuje jedinečné umístění úložiště ve OneLake pro metadata a tabulky delta. Otevřené zrcadlení poskytuje aplikaci složku cílové zóny pro vytvoření souboru metadat a nasdílení dat do OneLake. Zrcadlení monitoruje tyto soubory v cílové zóně a přečte složku pro nové tabulky a přidaná data.

Pokud máte například tabulky (Table A, Table B, Table C), které se mají vytvořit v cílové zóně, vytvořte složky jako následující adresy URL:

  • https://onelake.dfs.fabric.microsoft.com/<workspace id>/<mirrored database id>/Files/LandingZone/TableA
  • https://onelake.dfs.fabric.microsoft.com/<workspace id>/<mirrored database id>/Files/LandingZone/TableB
  • https://onelake.dfs.fabric.microsoft.com/<workspace id>/<mirrored database id>/Files/LandingZone/TableC

Soubor metadat v cílové zóně

Každá složka tabulky musí obsahovat _metadata.json soubor.

Tento soubor metadat tabulky obsahuje záznam JSON, který aktuálně specifikuje pouze jedinečné klíčové sloupce jako keyColumns.

Pokud chcete například deklarovat sloupce C1 a C2 jako složený jedinečný klíč tabulky:

{
   "keyColumns" : ["C1", "C2"]
}

Pokud keyColumns není zadána nebo _metadata.json není zadána, aktualizace nebo odstranění nejsou možné. Tento soubor můžete přidat kdykoli, ale po přidání keyColumns ho nejde změnit.

Datový soubor a formát v cílové zóně

Otevřené zrcadlení podporuje Parquet jako formát souboru cílové zóny s kompresí nebo bez komprese. Mezi podporované formáty komprese patří Snappy, GZIP a ZSTD.

Všechny soubory Parquet zapsané do cílové zóny mají následující formát:

<RowMarker><DataColumns>

  • RowMarker: název sloupce je __rowMarker__ (včetně dvou podtržítka před a za rowMarker).

    • RowMaker hodnoty:
      • 0 pro INSERT
      • 1 pro UPDATE
      • 2 pro DELETE
      • 4 pro UPSERT
  • Pořadí řádků: Všechny protokoly v souboru by měly být v přirozeném pořadí, jak je použito v transakci. To je důležité pro vícenásobnou aktualizaci stejného řádku. Otevřené zrcadlení použije změny v pořadí v souborech.

  • Pořadí souborů: Soubory by měly být přidány v monotonicky rostoucích číslech.

  • Název souboru: Název souboru je 20 číslic, například 00000000000000000001.parquet pro první soubor, a 00000000000000000002.parquet pro druhý. Názvy souborů by měly být v souvislých číslech. Soubory se automaticky odstraní službou zrcadlení, ale poslední soubor zůstane ponechán tak, aby na něj systém vydavatele mohl odkazovat a postupně přidat další soubor.

Počáteční načtení

Pro počáteční načtení dat do otevřené zrcadlené databáze by všechny řádky měly mít insert jako značku řádku. Bez RowMarker dat v souboru zrcadlení považuje celý soubor za INSERT.

Přírůstkové změny

Otevřené zrcadlení čte přírůstkové změny v pořadí a aplikuje je na cílovou tabulku Delta. Pořadí je implicitní v protokolu změn a v pořadí souborů.

Aktualizované řádky musí obsahovat data celého řádku se všemi sloupci.

Tady je několik ukázkových parketových dat historie řádků, aby se změnila EmployeeLocation hodnota E0001 EmployeeID z Redmondu na Bellevue. V tomto scénáři EmployeeID byl sloupec označen jako klíčový sloupec v souboru metadat v cílové zóně.

__rowMarker__,EmployeeID,EmployeeLocation
0,E0001,Redmond
0,E0002,Redmond
0,E0003,Redmond
1,E0001,Bellevue

Pokud se klíčové sloupce aktualizují, měly by se zobrazit klávesou DELETE u předchozích sloupců klíčů a řádky INSERT s novým klíčem a daty. Například historie řádků pro změnu jedinečného identifikátoru RowMarker E0001 EmployeeID na E0002. Nemusíte zadávat všechna data sloupců pro řádek DELETE, pouze klíčové sloupce.

__rowMarker__,EmployeeID,EmployeeLocation
0,E0001,Bellevue
2,E0001,NULL
0,E0002,Bellevue

Operace tabulek

Otevřené zrcadlení podporuje operace tabulek, jako jsou přidání, přetažení a přejmenování tabulek.

Přidat tabulku

Otevřené zrcadlení vybere libovolnou tabulku přidanou do cílové zóny aplikací. Otevření zrcadlení prohledává nové tabulky v každé iteraci.

Drop table

Otevřené zrcadlení sleduje název složky. Pokud je odstraněna složka tabulky, otevřete zrcadlení tabulku v zrcadlené databázi.

Pokud je složka znovu vytvořena, otevřete zrcadlení tabulku a znovu ji vytvoří s novými daty ve složce, a to sledováním značky ETag složky.

Při pokusu o odstranění tabulky můžete zkusit odstranit složku, ale existuje šance, že otevřené zrcadlení stále používá data ze složky, což způsobuje selhání odstranění vydavatele.

Přejmenování tabulky

Pokud chcete přejmenovat tabulku, přetáhněte složku a vytvořte ji znovu s počátečními a přírůstkovými daty. Data bude potřeba znovu převést do přejmenované tabulky.

Schéma

Cestu k tabulce je možné zadat ve složce schématu. Cílová zóna schématu <schemaname>.schema by měla mít název složky. Může existovat více schémat a ve schématu může existovat více tabulek.

Pokud máte například schémata (Schema1, Schema2) a tabulky (Table A, Table B, Table C), které se mají vytvořit v cílové zóně, vytvořte složky jako následující cesty ve OneLake:

  • https://onelake.dfs.fabric.microsoft.com/<workspace id>/<mirrored database id>/Files/LandingZone/Schema1.schema/TableA
  • https://onelake.dfs.fabric.microsoft.com/<workspace id>/<mirrored database id>/Files/LandingZone/Schema1.schema/TableB
  • https://onelake.dfs.fabric.microsoft.com/<workspace id>/<mirrored database id>/Files/LandingZone/Schema2.schema/TableC

Sloupce tabulky a operace sloupců

Typy sloupců

  • Jednoduché parketové typy jsou podporovány v cílové zóně.
  • Složité typy by se měly zapsat jako řetězec JSON.
  • Binární komplexní typy, jako jsou geografie, obrázky atd., se dají uložit jako binární typ v cílové zóně.

Přidat sloupec

Pokud se do souborů parquet přidají nové sloupce, přidá otevřené zrcadlení sloupce do tabulek delta.

Odstranit sloupec

Pokud dojde k vyřazení sloupce z nových souborů protokolu, otevřete úložiště NULL zrcadlení pro tyto sloupce v nových řádcích a staré řádky obsahují sloupce, které jsou v datech. Pokud chcete sloupec odstranit, přetáhněte tabulku a vytvořte znovu složku tabulky v cílové zóně, což povede k opětovnému vytvoření tabulky Delta s novým schématem a daty.

Otevřené zrcadlení vždy sjednocuje všechny sloupce z předchozí verze přidaných dat. Pokud chcete sloupec odebrat, vytvořte tabulku nebo složku znovu.

Změna typu sloupce

Pokud chcete změnit typ sloupce, odstraňte a znovu vytvořte složku s počátečními a přírůstkovými daty s novým typem sloupce. Poskytnutí nového typu sloupce bez opětovného vytvoření tabulky způsobí chybu a replikace pro tuto tabulku se zastaví. Po opětovném vytvoření složky tabulky se replikace obnoví s novými daty a schématy.

Přejmenovat sloupec

Pokud chcete sloupec přejmenovat, odstraňte složku tabulky a znovu vytvořte složku se všemi daty a novým názvem sloupce.

Další krok