Integrácia gitu pre vývoj v Fabric warehouse

Vzťahuje sa na: ✅ Sklad v Microsoft Fabric

Tento článok vysvetľuje výhody vývoja a nasadzovania Fabric Data Warehouse s integrovanou integráciou Git Fabric.

Important

Táto funkcia je vo verzii Preview.

Použitím integrácie Git v Fabric môžu tímy aplikovať moderné postupy správy zdrojových kódov pri vývoji v sklade. Vývojári môžu izolovať zmeny vo vetvách, sledovať vývoj schémy prostredníctvom commitov, spolupracovať prostredníctvom pull requestov a synchronizovať aktualizácie medzi Git repozitármi a Fabric pracovnými priestormi.

Typické scenáre zahŕňajú:

  • Bezpečné vyvíjanie zmien schémy vo vetvách a pracovných priestoroch
  • Verzionovanie warehouse objektov v Gite
  • Spolupráca naprieč viacerými pobočkami a pracovnými priestormi
  • Podpora overených zmien medzi vetvami
  • Udržiavanie pracovných položiek (skladových a iných) v súlade so zdrojom pravdy v Gite

Aby ste udržali konzistentnosť, sledovateľnosť a spoľahlivosť naprieč životnými cyklami vývoja skladu, musíte tieto pracovné postupy pochopiť.

Schéma životného cyklu vývoja integrácie Git v Fabric Warehouse.

Keď pripojíte Fabric Data Warehouse pracovný priestor k Gitu, commitujete definície skladu ako databázový projekt. Tento projekt sa stáva autoritatívnou reprezentáciou skladovej schémy v riadení zdrojov a slúži ako základ pre pokračujúce vývojové aktivity. V prieskumníku správy zdrojového kódu sa schéma zobrazuje ako jednotlivé .sql súbory.

Snímka obrazovky schémy skladu v prehliadači správy zdrojového kódu.

Použitím Fabric Git Integration and Fabric Data Warehouse môžete:

Porovnanie

Počas tohto synchronizačného procesu Fabric používa inkrementálne nasadenie schémy založené na DacFx na aplikáciu zmien. Tento prístup aplikuje len relevantné rozdiely schémy na sklad, namiesto aktualizácie celej definície skladu.

Inkrementálna extrakcia pomáha znižovať zbytočnú fluktuáciu v riadení zdrojových kódov, udržiavať čistejšie rozdiely v schémach medzi vetvami a podporovať efektívne vetvenie a zlučovanie pracovných postupov. Keďže proces extrakcie je uvedomelý na schému, umožňuje to aj spoľahlivé porovnanie a validáciu medzi stavom pracovného priestoru a Git-tracked definíciami.

Štandardizácia spôsobu extrakcie a ukladania skladových schém zlepšuje konzistenciu naprieč vývojovými prostrediami. Definície schém zostávajú stabilné naprieč vetvami, rozdiely presnejšie odrážajú zámerné zmeny vo vývoji a riadenie zdrojového kódu sa stáva spoľahlivým základom pre nasadenie, spoluprácu a riadenie životného cyklu.

Samotný XMLA.json súbor je počas pracovných postupov integrácie Git vylúčený. Fabric tento súbor vylučuje z commitov a aktualizácií, takže predvolené sémantické model metadáta nie sú neúmyselne uložené v Gite. Pri synchronizácii pracovného priestoru z Gitu sa ignoruje, XMLA.json čo pomáha predchádzať konfliktom, neúmyselným prepísaniam a šumu počas prepínania vetiev alebo aktualizácií z Gitu.

Obmedzenia v zdrojovom ovládaní

  • Bezpečnostné funkcie SQL, ako sú oprávnenia, vyžadujú skriptový prístup pre export a migráciu. Zvážte použitie post-deployment skriptu v SQL databázovom projekte. V projekte si môžete nakonfigurovať post-deployment skript s rozšírením SQL Database Projects dostupným vo Visual Studio Code.

  • Závislosti medzi jednotlivými položkami medzi skladmi a SQL analytickými endpointmi momentálne nie sú podporované vo vývojových pracovných postupoch. V dôsledku toho scenáre založené na koordinovaných zmenách týchto položiek nemusia spoľahlivo fungovať.

  • Skripty pred nasadením alebo po nasadení a dodatočné konfigurácie publikovania pridané priamo do databázového projektu cez Git nie sú súčasťou vývojových pracovných postupov. Možno budete musieť tieto konfigurácie spravovať samostatne mimo pracovného priestoru Fabric.

  • Selektívne commity na úrovni skladu momentálne nie sú podporované. Zmeny sa vykonávajú na úrovni skladových položiek, nie na jemnejších, detailných úrovniach objektov.

  • Podpora správy verzií pre SQL analytické endpointy momentálne nie je dostupná. Toto obmedzenie môže obmedziť end-to-end riadenie životného cyklu, keď riešenia pokrývajú sklady aj SQL analytické koncové body.

Obmedzenia integrácie Git

  • Keď sa dve alebo viac skladových položiek navzájom vzťahujú, vytvárajú cyklickú závislosť. Systém detekuje tento kruhový odkaz počas synchronizácie medzi rozvetvením alebo Git-to-workspace, čo spôsobuje zlyhanie týchto operácií. Vyhnite sa cyklickým závislostiam medzi položkami.
  • Momentálne nevytvárajte Dataflow Gen2 s výstupnou destináciou do skladu. V repozitári sa objaví nová položka s názvom DataflowsStagingWarehouse a blokuje commitovanie a aktualizáciu z Gitu.
  • Závislosti medzi položkami, sekvenovanie položiek a medzery v synchronizácii medzi SQL analytickým endpointom a skladom ovplyvňujú pracovné postupy "rozvetvenie na nový alebo existujúci pracovný priestor" a "prechod na inú vetvu" počas vývoja a kontinuálnej integrácie.
  • Ak objekt odkazuje na iný objekt v tom istom sklade pomocou trojdielneho pomenovania (),database.schema.object commitovanie alebo aktualizácia z Gitu môže zlyhať. Pre viac informácií a obchádzku pozri Odkazy na objekty skladu s použitím trojdielneho názvu.
  • Ak zmeníte definovaný stĺpec IDENTITY , commitovanie alebo aktualizácia z Gitu môže zlyhať, kým IDENTITY_INSERT nie je pre tabuľku povolená.
  • Ak repozitár obsahuje súbor, .sqlproj ktorý pinuje staršiu Microsoft.Build.Sql verziu SDK, commitovanie alebo aktualizácia z Gitu môže zlyhať, pretože staršie SDK nerozpoznáva novšiu skladovú syntax, ako IDENTITY sú stĺpce a CLUSTER BY. Pre viac informácií a obchádzku pozri Out-of-date .sqlproj v Git repozitári.
  • Ak objekt odkazuje na dve alebo viac tabuliek v inom sklade bez alias-kvalifikácie každého stĺpca, commit alebo aktualizácia z Gitu môže zlyhať. Pre viac informácií a riešenie pozri Nekvalifikované stĺpce v objektoch, ktoré odkazujú na dve alebo viac tabuliek v inom sklade.
  • Ak vaše skripty odkazujú na dva alebo viac rôznych objektov v tej istej schéme iného skladu a napíšu názov schémy s nekonzistentným veľkým písmenom, commitovanie alebo aktualizácia z Gitu môže zlyhať. Pre viac informácií a riešenie pozri Nekonzistentné veľké písmená názvov schém.
  • Nejednoznačné chyby stĺpcov, ktorých kandidátsky zoznam obsahuje oddeľovač, :: sa môžu vyskytnúť pri commitovaní alebo aktualizácii z Gitu, aj keď neexistuje skutočná nejednoznačnosť. Pre viac informácií a obchádzky pozri Nejednoznačné chyby stĺpcov s duplicitnými kandidátnymi objektmi.

Nepodporované scenáre

Nasledujúce CI/CD pracovné postupy nie sú oficiálne podporované, keď sklady v rôznych pracovných priestoroch majú rôzne kolácie. Aj keď tieto operácie môžu byť úspešné bez chýb, môžu viesť k chybám v metadátach.

Vo všetkých týchto situáciách, ak dôjde k nesúladu v kolácii, použite Python skript scripts/dw-collation-error-update-tmsl/pbi_interactive.py v Fabric toolbox GitHub repozitári na aktualizáciu kolácie dátovej sady (TMSL) tak, aby zodpovedala skladovej kolácii.

Scenár Opis Riziko
Kanály nasadenia Podpora obsahu skladu cez fázy pipeline (napríklad Dev → Test → Prod), kde bol cieľový sklad vytvorený s inou koláciou ako zdroj, nie je podporovaná. Nasadenie môže byť úspešné, ale kolácia dátovej sady sa neaktualizuje, aby zodpovedala kolácii cieľového skladu.
Rozšírenie do nového alebo existujúceho pracovného priestoru Používanie integrácie s Gitom na rozšírenie z existujúceho pracovného priestoru do nového alebo existujúceho pracovného priestoru, kde má sklad inú triedu, nie je podporované. Obsah skladu je synchronizovaný, ale metadáta triedenia nie sú zosúladené.
Prepínanie vetiev v pracovnom priestore Prechod na vetvu, ktorá bola spojená so skladom inej kolácie na pracovnom priestore pripojenom k Gitu, nie je podporovaný. Synchronizovaný obsah môže preniesť predpoklady kolácie, ktoré nezodpovedajú aktuálnemu skladu.
Zlučovanie zmien medzi pracovnými priestormi cez vetvy Zlučovanie Git vetiev medzi pracovnými priestormi, kde sklady majú rôzne triedenia, nie je podporované. Merge môže byť úspešný na úrovni Gitu, ale výsledná kolácia dátovej sady neodráža koláciu cieľového skladu.

Ďalší krok