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).
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 zarowMarker
).-
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, a00000000000000000002.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.