Muistiinpano
Tämän sivun käyttö edellyttää valtuutusta. Voit yrittää kirjautua sisään tai vaihtaa hakemistoa.
Tämän sivun käyttö edellyttää valtuutusta. Voit yrittää vaihtaa hakemistoa.
Sovellettavissa:✅ Varasto Microsoft Fabric
Important
Tämä ominaisuus on esikatseluvaiheessa.
Pre-deployment ja post-deployment -skriptit antavat sinun suorittaa mukautettuja Transact-SQL-komentoja osana varaston käyttöönottoa Fabric. Käytä esi- ja jälki-deployment-skriptejä datan siivoamiseen, viitedatan siementämiseen tai SQL-tietoturvan soveltamiseen, jota ei ole ilmaistu varaston skeemassa.
Fabric tietovarasto pre-deployment tai post-deployment -skripti on jaettu SQL-kysely. Voit luoda nämä skriptit SQL-tietokantaprojektissa ja määrittää ne Fabric-portaalin kautta. Nimitys tallennetaan varastotason metatietona ja se on sitoutunut lähteenhallintaan osana varaston .sqlproj tiedostoa, joten se kiertää Git- ja käyttöönottoputkissa ilman manuaalista uudelleenkäyttöä.
Tässä artikkelissa selitetään, mitä esi- ja jälki-deployment-skriptit ovat, miten ne konfiguroidaan Fabric-portaalissa, miten ne toimivat versionhallinnan ja käyttöönoton putkissa sekä miten ne voidaan luoda Visual Studio Code- ja SQL Server Management Studio (SSMS) -ohjelmissa.
Important
Tarkista aina käyttöönottoskriptit ja asetukset ennen julkaisua. Testaa ensin kehitys- ja testausympäristöissä estääksesi tahattoman datan menetyksen.
Mitä ovat pre-deployment ja post-deployment scriptit?
Kun yhdistät työtilan lähdekoodin hallintaan, jokainen varasto näkyy SQL-tietokantaprojektina: lähdekoodiohjattuna skripti SQL-objekteista, jotka muodostavat varastoskeeman (taulukot, näkymät, tallennetut proseduurit ja funktiot). Jokainen olio tallennetaan .sql tiedostona, joka sisältää sen datamäärittelykielen (DDL) syntaksin, kuten CREATE TABLE. Objektit kuvaavat skeeman haluttua tilaa , ja käyttöönottoprosessi vertaa haluttua tilaa kohdevarastoon ja luo differentiaalisen T-SQL-skriptin, joka luo, muokkaa tai pudottaa objekteja niin, että kohde vastaa projektia.
Esi- ja jälki-deployment-skriptit laajentavat tätä prosessia Transact-SQL, joka kiertää skeeman käyttöönottoa:
- Ennen kuin skeeman käyttöönottosuunnitelma otetaan käyttöön, suoritetaan esikäyttöönottoskripti.
- Jälki-deployment-skriptisuoritetaan skeeman käyttöönottosuunnitelman valmistuttua.
Pre-deployment tai post-deployment script on yksi jaetuista kyselyistä , jotka tallennetaan varaston Queries-kansioon . Varasto tukee korkeintaan yhtä käyttöönottoa edeltävää ja yhtä jälkiasennusskriptiä. Nimitys tallennetaan varastotason metatietona sen sijaan, että skriptisisältöä kopioidaan, joten tallennuskulut ovat vähäiset.
Koska jokainen nimetty skripti toimii aina, kun varasto otetaan käyttöön, luo Transact-SQL idempotentiksi (turvallista ajaa toistuvasti).
Vinkki
Kun skripti on idempotentti, sitä voi ajaa useita kertoja ilman ongelmia. Voit ottaa käyttöön useisiin tietokantoihin ilman, että niiden tilaa tarvitsee määrittää etukäteen.
Yleiset käyttötapaukset
- Viite- ja staattisen tiedon hallinta: Lisää, päivitä tai poista rivejä haku-, konfiguraatio- tai viitetaulukoista skeeman käyttöönoton jälkeen.
- Tietojen puhdistus: Poista vanhentuneet tai väliaikaiset tiedot ennen tai jälkeen skeeman muutosten tekemisen.
- Ympäristön asetus: Aseta asetukset tai alusta tila, joka eroaa kehitys-, testaus- ja tuotantoympäristöjen välillä.
- Metatietopohjainen putkiston alustus: Valmistele varastotila, jota putkiston vaiheet vaativat.
-
SQL-turvallisuus: Varastotaulutiedot ja SQL-turvallisuusominaisuudet, kuten roolit, käyttäjät ja
GRANT/DENYkäyttöoikeudet, eivät sisälly SQL-tietokantaprojektiin. Käytä jälki-deployment-skriptiä näiden objektien uudelleenluomiseen käyttöönoton jälkeen, mukaan lukien erot testaus- ja tuotantoympäristöjen välillä. Esimerkkejä katso esimerkki post-deployment-skriptistä SQL-turvallisuudelle.
SQL-projektin tiedostorakenne ja syntaksi
Varaston SQL-projekti viittaa projektitiedoston esi- ja jälki-deployment-skripteihin (.sqlproj) käyttäen ja PostDeploy -tyyppiäPreDeploy. Jokainen merkintä osoittaa yhteen jaettuun kyselytiedostoon projektissa.
Seuraava esimerkki määrittelee pre-deployment.sql pre-deployment scriptiksi ja post-deployment.sql post-deployment scriptiksi:
<ItemGroup>
<PreDeploy Include="pre-deployment.sql" />
<PostDeploy Include="post-deployment.sql" />
</ItemGroup>
Important
Fabric tietovarasto tukee vain yhtä tiedostoa esi-deployment-skriptille ja yhtä tiedostoa post-deployment-skriptille. Skriptin kirjoittaminen useista tiedostoista – esimerkiksi SQLCMD-komennolla :r viitaten muihin tiedostoihin – ei ole tuettua. Jos se .sqlproj sisältää useita ennakko- tai jälkiasennusmerkintöjä, Git-päivitys epäonnistuu.
Esimerkki käyttöönoton jälkeisestä skriptistä SQL-turvallisuuteen
Koska SQL:n tietoturvaominaisuuksia ei tallenneta SQL-tietokantaprojektiin, jälki-deployment-skripti on yleinen tapa luoda ne uudelleen varaston käyttöönoton jälkeen. Kirjoita skripti niin, että se voi toimia jokaisella käyttöönotolla.
Seuraava esimerkki luo mukautetun tietokantaroolin nimeltä DataReaders ja myöntää SELECT skeemalle oikeudet 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
Muistio
Fabric tietovarasto ei tue kaikkia SQL Server:ssa saatavilla oleviaTransact-SQL väitteitä. Varmista, että skriptien lauseet ovat tuettuja Fabric tietovarasto.
Konfiguroi esi- ja jälkiasennusskriptit Fabric-portaalissa
Fabric-portaalissa määritä olemassa oleva jaettu kysely pre-deployment- tai post-deployment-skriptiksi. Voit tehdä tämän Object Explorer:sta tai varastoesineen asetuksista.
Et voi määrittää jaettua kyselyä samanaikaisesti sekä ennen käyttöönottoa että jälki-käyttöönottoa käsitteleväksi skriptiksi.
Lähde: Object Explorer
- Laajenna varastoeditorissa Kyselyt-kansiota Object Explorer:ssa.
- Napsauta hiiren oikealla jaettua kyselyä, jota haluat käyttää.
- Tarvittaessa siirrä kysely Omat kyselyt -osiosta jaettuun kyselyyn.
- Valitse Aseta käyttöönottoskriptit. Tämä toiminto vie sinut esineasetuksiin.
- Pre-deployment script- ja Post-deployment script-kenttiin valitse Select script.
- Valitse Aseta kysely pre-/post-deployment-skriptiksi ja valitse jaettu kysely jokaiselle. Jokainen pudotusvalikko listaa kaikki varastossa olevat jaetut kyselyt.
Esineasetuksista
- Avaa varaston asetukset.
- Mene CI/CD-osioon .
- Pre-deployment script- ja Post-deployment script-kenttiin valitse Select script.
- Valitse Aseta kysely pre-/post-deployment-skriptiksi ja valitse jaettu kysely jokaiselle. Jokainen pudotusvalikko listaa kaikki varastossa olevat jaetut kyselyt.
Tekemäsi valinnat tallennetaan varastotason metatietoina ja pidetään synkronoituna Object Explorer ja item Settings -asetusten välillä.
Miten esi- ja jälkiasennusskriptit käyttäytyvät käyttöönoton yhteydessä
Git-integraation avulla
Kun yhdistät työtilan Git-repoon, esikäyttöönotto- ja jälkikäyttöönoton merkinnät sarjallisesti siirretään varaston .sqlproj tiedostoon commitin yhteydessä. Kun päivität varaston Gitistä, Fabric soveltaa muutokset live-varastoon ja suorittaa skriptit järjestyksessä:
- Esikäyttöönottoskripti suoritetaan ennen kuin skeeman muutokset otetaan käyttöön.
- Skeeman käyttöönottosuunnitelma otetaan käyttöön.
- Post-deployment script käynnistyy skeeman muutosten valmistuttua.
Nimitykset Gitin kautta edestakaisesti: skriptin konfigurointi portaalissa ja sen sitoumus tai sen .sqlproj luominen ja työtilan päivittäminen tuottavat johdonmukaisen tuloksen. Toistuvat commitit ja päivitykset eivät toista tai menetä konfiguraatiota. Koska sallittuja on vain yksi esikäyttöönotto ja yksi jälki-deployment-skripti, Gitissä luotu konfiguraatio korvaa varastossa olevat määritykset päivityksen yhteydessä.
Käyttöönottoputkien kanssa
Käyttöönottoputket käyttävät esikäyttöönottoa ja jälkikäyttöä varaston markkinoinnissa kehitys-,testaus- ja tuotantovaiheissa . Nimetyt skriptit suoritetaan deterministisesti kussakin kohdeympäristössä, joten niitä voi käyttää ympäristön asettamiseen tai SQL-turvallisuuden uudelleensoveltamiseen, kun sisältö siirtyy vaiheiden välillä.
Työtiloissa, joissa ei ole lähdekoodin hallintaa
Varastokohteen määrittely sisältää esi-deployment- ja post-deployment-merkinnät, vaikka työtila ei olisi yhteydessä lähdekoodin hallintaan. Varaston vienti sisältää konfiguraation, ja sen tuonti palauttaa konfiguroinnin ennalleen.
Luo esi- ja jälki-deployment-skriptit SQL-tietokantaprojektissa
Fabric-portaalin sijaan voit luoda esi- ja jälkiasennusskriptejä suoraan varaston SQL-tietokantaprojektissa käyttämällä SQL Database Projects -laajennusta Visual Studio Code:ssa tai integroitua SQL-projektikokemusta SQL Server Management Studio:ssa. Konfiguraatio näkyy Fabric-portaalissa – sekä Object Explorer että item Settings -osiossa – seuraavan Git-päivityksen jälkeen.
Visual Studio -koodi
- Asenna SQL Database Projects -laajennus Visual Studio Code:ssa.
- Avaa varastosi SQL-tietokantaprojekti. Jos työtilasi on yhdistetty Gitiin, kloonaa tallenne ja avaa sitten varastoprojektikansio.
- Tietokantaprojektien näkymässä napsauta projektisolmua hiiren oikealla ja valitse Lisää Pre-Deployment Script tai Lisää Post-Deployment Script.
- Anna skriptin nimi ilman tiedostopäätettä. Skriptitiedosto lisätään projektiin ja avataan editorissa.
- Lisää Transact-SQL skriptiin ja tallenna tiedosto. Varmista, että tiedosto tallennetaan
.sharedquerieskansioon seuraavaa Git-päivitystä varten. - Commit ja työnnä muutokset Git-repoon, päivitä sitten työtila lähdekoodin hallinnasta ja sovella konfiguraatio.
SQL Server Management Studio
- Käytä SQL Server Management Studio 22:ta tai uudempaa, joka sisältää SQL Database Projects -kokemuksen.
- Avaa varastosi SQL-tietokantaprojekti.
- ratkaisunhallinta -ohjelmassa napsauta projektisolmua hiiren oikealla ja valitse Lisää>skripti. Valitse Pre-deployment script tai Post-deployment script.
- Skriptitiedosto lisätään projektiin ja avataan kyselyeditorissa.
- Lisää Transact-SQL skriptiin ja tallenna tiedosto. Varmista, että tallennat tiedoston kansioon
.sharedqueriesseuraavaa Git-päivitystä varten. - Commit ja työnnä muutokset Git-repoon, päivitä sitten työtila lähdekoodin hallinnasta ja sovella konfiguraatio.
Muokkaa projektitiedostoa suoraan
Missä tahansa työkalussa voit määrittää skriptin muokkaamalla tiedostoa .sqlproj ja lisäämällä yksittäisen PreDeploy tai PostDeploy alkion :ItemGroup
<ItemGroup>
<PreDeploy Include="./sharedqueries/pre-deployment.sql" />
<PostDeploy Include="./sharedqueries/post-deployment.sql" />
</ItemGroup>
Migraatio olemassa olevista SQL-projekteista
Jos siirrät .sqlproj SQL Server Data Tools (SSDT) tai Visual Studio -tiedoston, joka jo sisältää <PreDeploy> ja <PostDeploy> sisältää merkintöjä, tuontiprosessi tunnistaa ja yhdistää nämä merkinnöt Fabric-ennakkokäyttöönottoon ja jälkikäyttöön. Koska Fabric tukee vain yhtä esikäyttöönottoa ja yhtä jälki-deployment-skriptiä, varmista, että projektissa on korkeintaan yksi merkintä kustakin tyypistä ennen tuontia.
Huomioitavat asiat ja rajoitukset
- Varasto tukee vain yhtä esikäyttöönottoskriptiä ja yhtä jälkiasennusskriptiä. Se ei tue useita tiedostoja per skripti.
- Et voi määrittää samaa jaettua kyselyä sekä ennen käyttöönottoa että julkaisun jälkeistä skriptiä.
- Jos poistat jaetun kyselyn, joka on määritelty pre-deployment- tai post-deployment-skriptiksi, vastaava nimitys poistuu automaattisesti.
- Jos muutat jaetun kyselyn, joka on määritelty esi-käyttöönotto- tai jälki-käyttöönoton skriptiksi, käyttäjäkyselyksi, vastaava nimitys poistuu automaattisesti.
- Esi- ja jälkiasennusskriptit toimivat jokaisessa varaston käyttöönotossa. Transact-SQL skriptien tulisi olla idempotentteja, jotta toistuvat suoritukset eivät epäonnistu tai luo päällekkäisiä objekteja.
- Ennen käyttöönottoa ja jälki-käyttöönottoa olevia skriptejä ei validoida tietokantamallia vastaan rakennusvaiheessa. Virheitä skripteissä ilmenee käyttöönoton yhteydessä, ja skriptin vika pysäyttää käyttöönoton.
- Voit käyttää vainTransact-SQL, joka on tuettu Fabric tietovarasto:ssa.
- Käyttöönoton suorittavalla identiteetillä on oltava tarvittavat oikeudet skriptisisällön suorittamiseen.