Skripty před nasazením a po nasazení pro Fabric Data Warehouse (Preview)

platí pro:✅ Warehouse v Microsoft Fabric

Important

Tato funkce je ve verzi Preview.

Skripty před nasazením a po nasazení umožňují spouštět vlastní příkazy Transact-SQL jako součást nasazení skladu v Fabric. Pomocí skriptů před nasazením a po nasazení můžete vyčistit data, počáteční referenční data nebo použít zabezpečení SQL, které není vyjádřeno ve schématu skladu.

Ve Fabric Data Warehouse je skript před nasazením nebo po nasazení společným dotazem SQL. Tyto skripty můžete vytvořit v projektu databáze SQL a určit je z portálu Fabric. Označení se ukládá jako metadata na úrovni datového skladu a zapisuje se do správy verzí jako součást souboru .sqlproj datového skladu, takže beze změny prochází přes Git a nasazovací kanály bez nutnosti jej znovu ručně použít.

Tento článek vysvětluje, co jsou skripty před nasazením a po nasazení, jak je nakonfigurovat na portálu Fabric, jak se chovají se správou zdrojového kódu a kanály nasazení a jak je vytvářet v Visual Studio Code a SQL Server Management Studio (SSMS).

Important

Před publikováním vždy zkontrolujte skripty a nastavení nasazení. Nejprve otestujte vývojová a testovací prostředí, abyste zabránili neúmyslné ztrátě dat.

Co jsou skripty před nasazením a po nasazení?

Když připojíte pracovní prostor ke zdrojovému řízení, každý sklad se objeví jako projekt SQL databáze: skript řízený zdrojovým kódem SQL objektů, které tvoří skladové schéma (tabulky, pohledy, uložené procedury a funkce). Každý objekt je uložen jako .sql soubor, který obsahuje syntaxi jazyka DDL (Data Definition Language), například CREATE TABLE. Objekty popisují požadovaný stav schématu a proces nasazení porovná požadovaný stav s cílovým skladem a vygeneruje rozdílový skript T-SQL, který vytvoří, změní nebo zahodí objekty tak, aby cíl odpovídal projektu.

Skripty před nasazením a po nasazení rozšiřují tento proces pomocí jazyka Transact-SQL, který se spouští před a po nasazení schématu:

  • Skript před nasazením se spustí před nasazením plánu nasazení schématu.
  • Po dokončení plánu nasazení schématu se spustí skript po nasazení.

Skript před nasazením nebo po nasazení je jedním ze sdílených dotazů uložených ve složce Dotazy ve skladu. Sklad podporuje maximálně jeden skript před nasazením a jeden skript po nasazení. Označení se ukládá jako metadata na úrovni skladu místo duplikování obsahu skriptu, takže přidává zanedbatelnou režii na úložiště.

Protože se každý určený skript spouští při každém nasazení datového skladu, napište skript Transact-SQL tak, aby byl idempotentní (aby jej bylo možné bezpečně spouštět opakovaně).

Tip

Když je skript idempotentní, můžete ho spustit několikrát bez problémů. Můžete nasadit do více databází, aniž byste museli předem určovat jejich stav.

Běžné případy použití

  • Správa referenčních a statických dat: Po nasazení schématu vložte, aktualizujte nebo odstraňte řádky z vyhledávacích, konfiguračních nebo referenčních tabulek.
  • Vyčištění dat: Před nebo po použití změn schématu odeberte zastaralá nebo dočasná data.
  • Nastavení prostředí: Použijte nastavení nebo inicializujte stav, který se liší podle vývojového, testovacího a produkčního prostředí.
  • Inicializace pipeline řízená metadaty: Připravuje stav datového skladu vyžadovaný navazujícími kroky pipeline.
  • Zabezpečení SQL: Data tabulek a funkce zabezpečení SQL, jako jsou role, uživatelé a GRANT/DENY oprávnění, nejsou součástí projektu databáze SQL. K opětovnému vytvoření těchto objektů po nasazení použijte skript po nasazení, včetně rozdílů mezi testovacími a produkčními prostředími. Příklady najdete v příkladu skriptu po nasazení pro zabezpečení SQL.

Struktura a syntaxe souborů projektu SQL

Projekt SQL datového skladu odkazuje v souboru projektu (.sqlproj) na skripty před nasazením i po nasazení pomocí typů položek PreDeploy a PostDeploy. Každá položka odkazuje na jeden soubor sdíleného dotazu v projektu.

Následující příklad označuje pre-deployment.sql jako skript před nasazením a post-deployment.sql jako skript po nasazení:

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

Important

Fabric Data Warehouse podporuje pouze jeden soubor pro skript před nasazením a jeden soubor pro skript po nasazení. Vytvoření skriptu z více souborů – například pomocí příkazu SQLCMD :r pro odkazování na jiné soubory – není podporováno. .sqlproj Pokud obsahuje více položek před nasazením nebo po nasazení, aktualizace Gitu selže.

Ukázkový skript po nasazení pro zabezpečení SQL

Vzhledem k tomu, že funkce zabezpečení SQL nejsou zachycené v projektu databáze SQL, představuje skript po nasazení běžný způsob, jak je po nasazení skladu znovu vytvořit. Napište skript, aby mohl běžet při každém nasazení.

Následující ukázka vytvoří vlastní databázovou roli s názvem DataReaders a udělí schématu SELECT oprávnění 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

Note

Fabric Data Warehouse nepodporuje všechny příkazyTransact-SQL dostupné v SQL Server. Ujistěte se, že jsou příkazy ve vašich skriptech podporované v Fabric Data Warehouse.

Konfigurace skriptů před nasazením a po nasazení na portálu Fabric

Na portálu Fabric určete existující sdílený dotaz jako skript před nasazením nebo po nasazení. Můžete to udělat z Průzkumník objektů nebo z nastavení položky skladu.

Sdílený dotaz nelze současně označit jako skript před nasazením i skript po nasazení.

Pochází z Průzkumník objektů

  1. V editoru skladu rozbalte složku Dotazy v Průzkumník objektů.
  2. Klikněte pravým tlačítkem myši na sdílený dotaz, který chcete použít.
    • Pokud je to nutné, přesunout dotaz z Mých dotazů do sdíleného dotazu.
  3. Vyberte Nastavit skripty nasazení. Tato akce vás přenese do podokna nastavení položky.
  4. V polích skriptů před nasazením a skriptu po nasazení vyberte Vybrat skript.
  5. Vyberte možnost Nastavit dotaz jako skript před/po nasazení a potom pro každý vyberte sdílený dotaz. Každé rozbalovací menu uvádí všechny sdílené dotazy ve skladu.

Z nastavení předmětů

  1. Otevřete nastavení skladu.
  2. Jděte do sekce CI/CD .
  3. V polích skriptů před nasazením a skriptu po nasazení vyberte Vybrat skript.
  4. Vyberte možnost Nastavit dotaz jako skript před/po nasazení a potom pro každý vyberte sdílený dotaz. Každé rozbalovací menu uvádí všechny sdílené dotazy ve skladu.

Vámi provedené výběry se ukládají jako metadata na úrovni skladu a synchronizují se mezi Průzkumník objektů a nastavením položky.

Jak se skripty před nasazením a po nasazení chovají během nasazení

S integrací Gitu

Když připojíte pracovní prostor k úložišti Git, označení před nasazením a po nasazení se při potvrzení změn serializují do souboru .sqlproj datového skladu. Když aktualizujete sklad z Gitu, Fabric použije změny v živém skladu a spustí skripty v pořadí:

  1. Skript před nasazením se spustí před provedením změn schématu.
  2. Použije se plán nasazení schématu.
  3. Skript po nasazení se spustí po dokončení změn schématu.

Označení lze obousměrně synchronizovat přes Git: konfigurace skriptu na portálu a jeho následné uložení do Gitu nebo jeho vytvoření v .sqlproj a následná aktualizace pracovního prostoru vedou ke konzistentnímu výsledku. Opakované commity a aktualizace nevedou k duplikaci ani ztrátě konfigurace. Protože je povolen pouze jeden skript před nasazením a jeden skript po nasazení, konfigurace vytvořená v Gitu při aktualizaci nahradí veškeré stávající přiřazení ve skladu dat.

Note

Skripty před nasazením a po nasazení vyžadují nejnovější zkušenosti se správou zdrojového kódu pro plnou podporu pracovních postupů Gitu. V pracovních prostorech, které nebyly aktualizovány, nejsou metadata skriptů nasazení synchronizována se správou zdrojového kódu a skripty nasazení se nezapojí do pracovních postupů založených na Gitu.

Toto omezení platí pouze pro pracovní postupy Gitu a není předpokladem pro deployment pipeline (ALM).

S kanály pro nasazení

Kanály nasazení používají označení před nasazením a po nasazení při přesunu skladu mezi fázemi Vývoj, Test a Produkce. Určené skripty se v každém cílovém prostředí spouští deterministicky, takže je můžete použít k nastavení prostředí nebo k opětovnému použití zabezpečení SQL při přesouvání obsahu mezi fázemi.

V pracovních prostorech bez správy zdrojového kódu

Definice položky datového skladu zahrnuje označení před nasazením i po nasazení, i když pracovní prostor není připojen ke správě zdrojového kódu. Export skladu zahrnuje konfiguraci a import obnoví konfiguraci beze změny.

Vytváření skriptů před nasazením a po nasazení v projektu databáze SQL

Místo portálu Fabric můžete vytvářet skripty před nasazením a po nasazení přímo v projektu databáze SQL skladu pomocí rozšíření SQL Database Projects v Visual Studio Code nebo integrovaného prostředí projektů SQL v SQL Server Management Studio. Konfigurace se zobrazí na portálu Fabric – v Průzkumník objektůu i v položce Settings – po další aktualizaci Gitu.

Visual Studio Code

  1. Nainstalujte rozšíření SQL Database Projects v Visual Studio Code.
  2. Otevřete projekt databáze SQL pro váš sklad. Pokud je váš pracovní prostor připojený k Gitu, naklonujte úložiště a otevřete složku projektu skladu.
  3. V zobrazení Databázové projekty klikněte pravým tlačítkem myši na uzel projektu a vyberte Přidat skript před nasazením nebo Přidat skript po nasazení.
  4. Zadejte název skriptu bez přípony souboru. Soubor skriptu se přidá do projektu a otevře se v editoru.
  5. Přidejte do skriptu Transact-SQL a soubor uložte. Ujistěte se, že je soubor uložený ve složce .sharedqueries pro další aktualizaci Gitu.
  6. Potvrďte a nasdílejte změny do úložiště Git a pak aktualizujte pracovní prostor ze správy zdrojového kódu, aby se konfigurace použila.

SQL Server Management Studio

  1. Použijte SQL Server Management Studio 22 nebo novější, což zahrnuje prostředí projektů SQL Database.
  2. Otevřete projekt databáze SQL pro váš sklad.
  3. V Průzkumník řešení klikněte pravým tlačítkem na uzel projektu a vyberte Přidat>skript. Vyberte skript před nasazením nebo skript po nasazení.
  4. Soubor skriptu se přidá do projektu a otevře se v editoru dotazů.
  5. Přidejte do skriptu Transact-SQL a soubor uložte. Ujistěte se, že soubor uložíte do složky .sharedqueries pro další aktualizaci Gitu.
  6. Potvrďte a nasdílejte změny do úložiště Git a pak aktualizujte pracovní prostor ze správy zdrojového kódu, aby se konfigurace použila.

Přímé úpravy souboru projektu

V libovolném nástroji můžete určit skript úpravou .sqlproj souboru a přidáním jedné PreDeploy položky PostDeploy do ItemGroup:

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

Migrace z existujících projektů SQL

Pokud migrujete .sqlproj ze SQL Server Data Tools (SSDT) nebo sady Visual Studio, která již obsahuje záznamy <PreDeploy> a <PostDeploy>, proces importu tyto položky rozpozná a namapuje je na konfiguraci Fabric pro fázi před nasazením a po nasazení. Vzhledem k tomu, že Fabric podporuje pouze jeden před nasazením a jeden skript po nasazení, před importem se ujistěte, že projekt obsahuje maximálně jednu položku každého typu.

Úvahy a omezení

  • Sklad podporuje pouze jeden skript před nasazením a jediný skript po nasazení. Nepodporuje více souborů na skript.
  • Nemůžete určit stejný sdílený dotaz jako skript před nasazením i po nasazení.
  • Pokud odstraníte sdílený dotaz označený jako skript před nasazením nebo po nasazení, příslušné označení se automaticky zruší.
  • Pokud změníte sdílený dotaz určený jako skript před nasazením nebo po nasazení na uživatelský dotaz, příslušné označení se automaticky zruší.
  • Skripty před nasazením a po nasazení se spouštějí při každém nasazení datového skladu. Skripty Transact-SQL by měly být idempotentní, takže opakované spuštění selžou nebo nevytvoří duplicitní objekty.
  • Skripty před nasazením a po nasazení se neověřují v modelu databáze v době sestavení. Chyby ve skriptech se projeví až při nasazení a selhání skriptu nasazení zastaví.
  • Můžete použít jenom Transact-SQL, které jsou podporované v Fabric Data Warehouse.
  • Identita, která spouští nasazení, musí mít oprávnění požadovaná ke spuštění obsahu skriptu.