Skripty pred nasadením a po nasadení pre Fabric Data Warehouse (Náhľad)

Vzťahuje sa na: ✅ sklad v Microsoft Fabric

Dôležité

Táto funkcia je vo verzii Preview.

Skripty pred a po nasadení vám umožňujú spúšťať vlastné Transact-SQL príkazy ako súčasť nasadenia skladu v Fabric. Používajte skripty pred a po nasadení na čistenie dát, seed referenčných dát alebo aplikáciu SQL bezpečnosti, ktorá nie je vyjadrená v schéme skladu.

V Fabric Data Warehouse je skript pred nasadením alebo po nasadení zdieľaný SQL dotaz. Tieto skripty môžete vytvoriť v SQL databázovom projekte a určiť ich priamo z portálu Fabric. Toto označenie je uložené ako metadáta na úrovni skladu a je viazané na správu zdrojového kódu ako súčasť súboru skladu, takže prechádza cez Git a nasadzovacie pipeline bez manuálneho .sqlproj opätovného aplikovania.

Tento článok vysvetľuje, čo sú skripty pred a po nasadení, ako ich konfigurovať v portáli Fabric, ako sa správajú pri správe zdrojového kódu a nasadzovacích pipeline, a ako ich vytvárať vo Visual Studio Code a SQL Server Management Studio (SSMS).

Dôležité

Vždy si pred publikovaním preštudujte skripty a nastavenia nasadenia. Najskôr testujte vo vývojárskom a testovacom prostredí, aby ste predišli neúmyselnej strate dát.

Čo sú to skripty pred nasadením a po nasadení?

Keď pripojíte pracovný priestor k správe zdrojového kódu, každý sklad sa zobrazí ako projekt SQL databázy: skript riadený zdrojovým kódom SQL objektov, ktoré tvoria skladovú schému (tabuľky, pohľady, uložené procedúry a funkcie). Každý objekt je uložený ako súbor, .sql ktorý obsahuje syntax jeho jazyka pre definíciu dát (DDL), napríklad CREATE TABLE. Objekty popisujú požadovaný stav schémy a proces nasadenia porovnáva požadovaný stav s cieľovým skladom a generuje diferenciálny T-SQL skript, ktorý vytvára, mení alebo odstraňuje objekty tak, aby cieľ zodpovedal projektu.

Skripty pred a po nasadení rozširujú tento proces o Transact-SQL, ktoré bežia okolo nasadenia schémy:

  • Pred aplikáciou plánu nasadenia schémy sa spustí skript pred nasadením.
  • Po dokončení plánu nasadenia schémy sa spustí skript po nasadení.

Skript pred nasadením alebo po nasadení je jedným zo zdieľaných dotazov uložených v priečinku Dotazy v sklade. Sklad podporuje najviac jeden skript pred nasadením a jeden skript po nasadení. Toto označenie je uložené ako metadáta na úrovni skladu, namiesto duplikácie obsahu skriptu, takže pridáva zanedbateľnú režijnú záťaž na úložisko.

Keďže každý určený skript beží vždy, keď je sklad nasadený, vytvorte Transact-SQL tak, aby bol idempotentný (bezpečný na opakované spúšťanie).

Tip

Keď je skript idempotentný, môžete ho spustiť viackrát bez problémov. Môžete nasadiť do viacerých databáz bez potreby vopred určovať ich stav.

Bežné prípady použitia

  • Správa referenčných a statických dát: Vkladanie, aktualizácia alebo mazanie riadkov z vyhľadávacích, konfiguračných alebo referenčných tabuliek po nasadení schémy.
  • Čistenie dát: Odstráňte zastarané alebo dočasné údaje pred alebo po aplikácii zmien schémy.
  • Nastavenie prostredia: Aplikujte nastavenia alebo inicializujte stav, ktorý sa líši medzi vývojovým, testovacím a produkčným prostredím.
  • Inicializácia pipeline riadená metadátami: Pripravte stav skladu požadovaný krokmi pipeline downstream pipeline.
  • Bezpečnosť SQL: Dáta v tabuľkách skladov a bezpečnostné funkcie SQL ako roly, používatelia a GRANT/DENY oprávnenia nie sú zahrnuté v projekte SQL databázy. Použite skript po nasadení na opätovné vytvorenie týchto objektov po nasadení, vrátane rozdielov medzi testovacím a produkčným prostredím. Pre príklady pozri Príklad post-deployment skriptu pre SQL bezpečnosť.

Štruktúra a syntax SQL projektového súboru

Skladový SQL projekt odkazuje na skripty pred a po nasadení v projektovom súbore (.sqlproj) pomocou typov PreDeployPostDeploy a položiek. Každý vstup vedie na jeden spoločný dotazovací súbor v projekte.

Nasledujúci príklad označuje pre-deployment.sql ako skript pred nasadením a post-deployment.sql ako skript po nasadení:

<ItemGroup>
  <PreDeploy Include="pre-deployment.sql" />
  <PostDeploy Include="post-deployment.sql" />
</ItemGroup>

Dôležité

Fabric Data Warehouse podporuje iba jeden súbor pre skript pred nasadením a jeden súbor pre skript po nasadení. Zostavovanie skriptu z viacerých súborov – napríklad pomocou príkazu SQLCMD :r na odkazovanie na iné súbory – nie je podporované. Ak obsahuje .sqlproj viacero záznamov pred nasadením alebo po nasadení, aktualizácia Gitu zlyhá.

Príklad skriptu po nasadení pre SQL bezpečnosť

Keďže SQL bezpečnostné funkcie nie sú zachytené v SQL databázovom projekte, post-deployment skript je bežný spôsob, ako ich po nasadení skladu znovu vytvoriť. Napíšte skript tak, aby mohol bežať pri každom nasadení.

Nasledujúca ukážka vytvára vlastnú databázovú rolu pomenovanú DataReaders a udeľuje SELECT oprávnenia schéme dbo .

-- post-deployment.sql
-- Recreate a role and grant permissions after deployment.
IF NOT EXISTS (SELECT 1 FROM sys.database_principals WHERE name = N'DataReaders')
BEGIN
    CREATE ROLE DataReaders;
END;
GO

GRANT SELECT ON SCHEMA::dbo TO DataReaders;
GO

Poznámka

Fabric Data Warehouse nepodporuje všetkyTransact-SQL výroky dostupné v SQL Server. Uistite sa, že výroky vo vašich skriptoch sú podporované v Fabric Data Warehouse.

Nakonfigurujte skripty pred a po nasadení v portáli Fabric

V portáli Fabric označte existujúci zdieľaný dotaz ako skript pred nasadením alebo po nasadení. Môžete to urobiť v Object Explorer alebo v nastaveniach skladovej položky.

Nemôžete označiť zdieľaný dotaz súčasne ako skript pred nasadením aj po nasadení.

Z Object Explorer

  1. V editore skladu rozbalte priečinok Dotazy v Object Explorer.
  2. Kliknite pravým tlačidlom na zdieľaný dotaz, ktorý chcete použiť.
    • Ak je to potrebné, presuňte dotaz z Moje dotazy do zdieľaného dotazu.
  3. Vyberte Set deployment scripts. Táto akcia vás presmeruje na panel nastavení predmetov.
  4. V poliach Pre-deployment script a Post-deployment script vyberte Choose script.
  5. Vyberte možnosť Nastaviť dotaz ako pred-/post-nasadený skript a potom vyberte spoločný dotaz pre každý z nich. Každá rozbaľovacia ponuka uvádza všetky zdieľané dotazy v sklade.

Z nastavení predmetu

  1. Otvorte nastavenia skladu.
  2. Choď do sekcie CI/CD .
  3. V poliach Pre-deployment script a Post-deployment script vyberte Choose script.
  4. Vyberte možnosť Nastaviť dotaz ako pred-/post-nasadený skript a potom vyberte spoločný dotaz pre každý z nich. Každá rozbaľovacia ponuka uvádza všetky zdieľané dotazy v sklade.

Výbery, ktoré urobíte, sa ukladajú ako metadáta na úrovni skladu a sú synchronizované medzi Object Explorer a nastaveniami položiek.

Ako sa skripty pred a po nasadení správajú pri nasadení

S integráciou Git

Keď pripojíte pracovný priestor k Git repozitáru, označenia pred a po nasadení sa serializujú do súboru .sqlproj skladu pri commite. Keď aktualizujete sklad z Gitu, Fabric aplikuje zmeny na živý sklad a spúšťa skripty v poradí:

  1. Skript pred nasadením sa spustí pred aplikáciou zmien schémy.
  2. Aplikuje sa plán nasadenia schémy.
  3. Post-deployment skript sa spustí po dokončení zmien schémy.

Označenia tam a späť cez Git: konfigurácia skriptu v portáli a jeho commit, alebo jeho vytvorenie v a .sqlproj aktualizácia pracovného priestoru prináša konzistentný výsledok. Opakované commity a aktualizácie sa neduplikujú ani nestrácajú konfiguráciu. Keďže je povolený len jeden skript pred nasadením a jeden skript po nasadení, konfigurácia vytvorená v Gite nahrádza akékoľvek existujúce označenie v sklade pri aktualizácii.

S nasadzovacími pipeline

Nasadovacie pipeline používajú označenia pred nasadením a po nasadení pri propagácii skladu v štádiách vývoja, testovania a produkcie . Určené skripty sa vykonávajú deterministicky v každom cieľovom prostredí, takže ich môžete použiť na nastavenie prostredia alebo na opätovné aplikovanie SQL bezpečnosti, keď sa obsah presúva medzi fázami.

V pracovných priestoroch bez správy zdrojového kódu

Definícia skladových položiek zahŕňa označenia pred a po nasadení, aj keď pracovný priestor nie je pripojený k riadeniu zdrojov. Export skladu zahŕňa konfiguráciu a jej importovanie obnoví konfiguráciu neporušenú.

Vytváranie skriptov pred a po nasadení v SQL databázovom projekte

Namiesto portálu Fabric môžete vytvárať skripty pred a po nasadení priamo v SQL databázovom projekte skladu pomocou rozšírenia SQL Database Projects vo Visual Studio Code alebo integrovaného SQL Projects experience v SQL Server Management Studio. Konfigurácia sa objaví v Fabric portáli – v nastaveniach Object Explorer aj v nastaveniach predmetov – po ďalšej aktualizácii Gitu.

Visual Studio Code

  1. Nainštalujte rozšírenie SQL Database Projects vo Visual Studio Code.
  2. Otvorte projekt SQL databázy pre váš sklad. Ak je váš workspace pripojený k Gitu, klonujte repozitár a potom otvorte priečinok warehouse project.
  3. V zobrazení Databázové projekty kliknite pravým tlačidlom na projektový uzol a vyberte Pridať skript pre nasadenie alebo Pridať skript po nasadení.
  4. Uveďte názov skriptu bez prípony súboru. Skriptový súbor sa pridá do projektu a otvorí v editore.
  5. Pridaj svoj Transact-SQL do skriptu a ulož súbor. Uistite sa, že súbor je uložený v priečinku .sharedqueries pre ďalšiu aktualizáciu Gitu.
  6. Commitujte a pošlite zmeny do svojho Git repozitára, potom aktualizujte pracovný priestor zo zdrojového kódu, aby ste aplikovali konfiguráciu.

SQL Server Management Studio

  1. Použite SQL Server Management Studio 22 alebo novší, ktorý zahŕňa skúsenosti so SQL Database Projects.
  2. Otvorte projekt SQL databázy pre váš sklad.
  3. V Solution Explorer kliknite pravým tlačidlom na projekt node a vyberte Add>Script. Vyberte skript pre nasadenie alebo skript po nasadení.
  4. Súbor skriptu sa pridá do projektu a otvorí v editore dotazov.
  5. Pridaj svoj Transact-SQL do skriptu a ulož súbor. Uisti sa, že si súbor uložíš do priečinka .sharedqueries pre ďalšiu aktualizáciu Gitu.
  6. Commitujte a pošlite zmeny do svojho Git repozitára, potom aktualizujte pracovný priestor zo zdrojového kódu, aby ste aplikovali konfiguráciu.

Upravujte projektový súbor priamo

V akomkoľvek nástroji môžete určiť skript úpravou súboru .sqlproj a pridaním jedného alebo PreDeploy položky PostDeploy do :ItemGroup

<ItemGroup>
  <PreDeploy Include="./sharedqueries/pre-deployment.sql" />
  <PostDeploy Include="./sharedqueries/post-deployment.sql" />
</ItemGroup>

Migrácia z existujúcich SQL projektov

Ak migrujete z .sqlproj SQL Server Data Tools (SSDT) alebo Visual Studio, ktoré už obsahujú <PreDeploy><PostDeploy> položky, proces importu rozpozná a mapuje tieto položky na konfiguráciu Fabric pred nasadením a po nasadení. Keďže Fabric podporuje len jeden skript pred nasadením a jeden po nasadení, uistite sa, že projekt obsahuje najviac jeden záznam každého typu pred importom.

Dôležité informácie a obmedzenia

  • Sklad podporuje iba jeden skript pred nasadením a jeden skript po nasadení. Nepodporuje viacero súborov v jednom skripte.
  • Nemôžete určiť rovnaký zdieľaný dotaz ako skript pred nasadením aj po nasadení.
  • Ak vymažete zdieľaný dotaz, ktorý je určený ako skript pred nasadením alebo po nasadení, príslušné označenie sa automaticky vymaže.
  • Ak zmeníte zdieľaný dotaz, ktorý je určený ako skript pred nasadením alebo po nasadení, na používateľský dotaz, príslušné označenie sa automaticky vymaže.
  • Skripty pred a po nasadení bežia pri každom nasadení v sklade. Transact-SQL skripty by mali byť idempotentné, aby opakované spustenia nezlyhali ani nevytvárali duplicitné objekty.
  • Skripty pred a po nasadení nie sú pri zostavovaní overované voči databázovému modelu. Chyby v skriptoch sa objavia pri nasadení a zlyhanie skriptu zastaví nasadenie.
  • Môžete použiť len Transact-SQL, ktoré sú podporované v Fabric Data Warehouse.
  • Identita, ktorá spustí nasadenie, musí mať oprávnenia potrebné na vykonanie obsahu skriptu.