Bemærk
Adgang til denne side kræver godkendelse. Du kan prøve at logge på eller ændre mapper.
Adgang til denne side kræver godkendelse. Du kan prøve at ændre mapper.
Gælder for:✅ Warehouse i Microsoft Fabric
Vigtigt!
Denne funktion er i prøveversion.
Pre-deployment og post-deployment scripts lader dig køre brugerdefinerede Transact-SQL-kommandoer som en del af udrulningen af et warehouse i Fabric. Brug scripts før og efter udrulning til at rydde op i data, seed-referencedata eller anvende SQL-sikkerhed, der ikke er udtrykt i warehouse-skemaet.
I en Fabric data warehouse er et pre-deployment eller post-deployment-script en delt SQL-forespørgsel. Du kan oprette disse scripts i et SQL-databaseprojekt og udpege dem fra Fabric-portalen. Betegnelsen gemmes som metadata på lagerniveau og er forpligtet til versionskontrol som en del af lagerets .sqlproj fil, så den kan gennemføres gennem Git og deployment-pipelines uden manuel genanvendelse.
Denne artikel forklarer, hvad pre-deployment og post-deployment scripts er, hvordan man konfigurerer dem i Fabric-portalen, hvordan de opfører sig med versionskontrol og deployment-pipelines, og hvordan man udarbejder dem i Visual Studio Code og SQL Server Management Studio (SSMS).
Vigtigt!
Gennemgå altid deployment-scripts og indstillinger, før du udgiver dem. Test først i udviklings- og testmiljøer for at forhindre utilsigtet datatab.
Hvad er scripts før og efter udrulning?
Når du forbinder et arbejdsområde til versionskontrol, fremstår hvert warehouse som et SQL-databaseprojekt: et kildekode-script af de SQL-objekter, der udgør warehouse-skemaet (tabeller, visninger, lagrede procedurer og funktioner). Hvert objekt gemmes som en .sql fil, der indeholder dets datadefinitionssprog (DDL) syntaks, såsom CREATE TABLE. Objekterne beskriver den ønskede tilstand af skemaet, og deploymentsprocessen sammenligner denne ønskede tilstand med mållageret og genererer et differentielt T-SQL-script, der opretter, ændrer eller dropper objekter, så målet matcher projektet.
Pre-deployment og post-deployment scripts udvider denne proces med Transact-SQL, der kører uden om skema-deploymenten:
- Et pre-deployment-script kører, før skema-deployeringsplanen anvendes.
- Et post-deployment-script kører, efter at skema-deployeringsplanen er færdig.
Et pre-deployment eller post-deployment-script er en af de delte forespørgsler , der er gemt under mappen Forespørgsler i lageret. Et lager understøtter højst ét pre-deployment script og ét post-deployment script. Betegnelsen gemmes som lager-niveau metadata i stedet for at duplikere scriptindholdet, hvilket tilføjer ubetydeligt lageroverhead.
Fordi hvert udpeget script kører hver gang lageret deployes, skal Transact-SQL være idempotent (sikkert at køre gentagne gange).
Tip
Når et script er idempotent, kan du køre det flere gange uden problemer. Du kan deploye til flere databaser uden at skulle forudbestemme deres status.
Almindelige anvendelsestilfælde
- Reference- og statisk datastyring: Indsæt, opdater eller slet rækker fra opslags-, konfigurations- eller referencetabeller efter at skemaet er implementeret.
- Dataoprydning: Fjern forældede eller midlertidige data før eller efter skemaændringer er anvendt.
- Miljøopsætning: Anvend indstillinger eller initialiser tilstand, der adskiller sig mellem udviklings-, test- og produktionsmiljøer.
- Metadata-drevet pipeline-initialisering: Forbered lagertilstanden, som kræves af downstream pipeline-trin.
-
SQL-sikkerhed: Warehouse-tabeldata og SQL-sikkerhedsfunktioner som roller, brugere og
GRANT/DENYtilladelser er ikke inkluderet i SQL-databaseprojektet. Brug et post-deployment-script til at genskabe disse objekter efter deployment, inklusive forskelle mellem test- og produktionsmiljøer. For eksempler, se Eksempel på post-deployment-script for SQL-sikkerhed.
SQL-projektfilstruktur og syntaks
Et warehouse-SQL-projekt refererer til scripts før og efter implementering i projektfilen (.sqlproj) ved at bruge PreDeploy og PostDeploy artikeltyperne. Hver post peger på en enkelt delt forespørgselsfil i projektet.
Følgende eksempel betegner pre-deployment.sql som pre-deployment-scriptet og post-deployment.sql som post-deployment-scriptet:
<ItemGroup>
<PreDeploy Include="pre-deployment.sql" />
<PostDeploy Include="post-deployment.sql" />
</ItemGroup>
Vigtigt!
Fabric data warehouse understøtter kun én fil for pre-deployment-scriptet og én fil for post-deployment-scriptet. At komponere et script fra flere filer – for eksempel ved at bruge SQLCMD-kommandoen :r til at referere til andre filer – understøttes ikke. Hvis indeholder .sqlproj flere post-deployment eller post-deployment-poster, fejler Git-opdateringen.
Eksempel på post-deployment-script til SQL-sikkerhed
Da SQL-sikkerhedsfunktioner ikke er fanget i SQL-databaseprojektet, er et post-deployment-script en almindelig måde at genskabe dem på, efter at et warehouse er deployet. Skriv scriptet, så det kan køre på alle udrulninger.
Følgende eksempel opretter en brugerdefineret databaserolle ved navn DataReaders og giver SELECT tilladelser til skemaet 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 understøtter ikke alle Transact-SQL udsagn, der findes i SQL Server. Sørg for, at udsagnene i dine manuskripter er understøttet i Fabric data warehouse.
Konfigurer scripts før og efter implementering i Fabric-portalen
I Fabric-portalen skal en eksisterende delt forespørgsel udpeges som pre-deployment eller post-deployment script. Du kan gøre dette fra Object Explorer eller fra lagerets indstillinger.
Du kan ikke udpege en delt forespørgsel som både pre-deployment og post-deployment script på samme tid.
Fra Object Explorer
- I lagereditoren skal du udvide mappen Queries i Object Explorer.
- Højreklik på den delte forespørgsel, du vil bruge.
- Hvis nødvendigt, flyt en forespørgsel fra Mine forespørgsler til en delt forespørgsel.
- Vælg Set deployment-scripts. Denne handling fører dig til indstillingspanelet for genstande.
- I felterne Pre-deployment script og Post-deployment script vælg Choose script.
- Vælg indstillingen Set en forespørgsel som et script, der er før eller efter udrulning , og vælg derefter en delt forespørgsel for hver. Hver dropdown viser alle delte forespørgsler i lageret.
Fra genstandsindstillinger
- Åbn lagerets indstillinger.
- Gå til CI/CD-sektionen .
- I felterne Pre-deployment script og Post-deployment script vælg Choose script.
- Vælg indstillingen Set en forespørgsel som et script, der er før eller efter udrulning , og vælg derefter en delt forespørgsel for hver. Hver dropdown viser alle delte forespørgsler i lageret.
De valg, du foretager, gemmes som metadata på lagerniveau og holdes synkroniseret mellem Object Explorer og Item Settings.
Hvordan pre-deployment og post-deployment scripts opfører sig med deployment
Med Git-integration
Når du forbinder et arbejdsområde til et Git-repo, bliver pre-deployment og post-deployment betegnelserne serialiseret i warehouse's .sqlproj fil på commit. Når du opdaterer warehouse fra Git, anvender Fabric ændringerne på det live warehouse og kører scripts i rækkefølge:
- Pre-deployment-scriptet kører, før skemaændringerne anvendes.
- Skema-udrulningsplanen anvendes.
- Post-deployment-scriptet kører efter skemaændringerne er fuldført.
Designationer rundtur gennem Git: at konfigurere et script i portalen og committe det, eller at forfatte det i og .sqlproj opdatere arbejdsområdet, giver et ensartet resultat. Gentagne commits og opdateringer duplikerer ikke eller mister konfigurationen. Da kun ét pre-deployment og ét post-deployment-script er tilladt, erstatter en konfiguration skrevet i Git enhver eksisterende betegnelse i lageret ved opdatering.
Note
Pre-deployment og post-deployment scripts kræver den nyeste versionskontrolerfaring for fuld Git-workflow-understøttelse. I arbejdsområder, der ikke er blevet opgraderet, er deployment-scriptmetadata ikke synkroniseret med versionskontrol, og deployment-scripts deltager ikke i Git-baserede workflows.
Denne begrænsning gælder kun for Git-workflows og er ikke en forudsætning for deployment pipelines (ALM).
Med udrulningspipelines
Implementeringspipelines bruger betegnelserne før udrulning og efter udrulning, når de promoverer et lager på tværs af udviklings-, test- og produktionsfaserne . De udpegede scripts kører deterministisk i hvert målmiljø, så du kan bruge dem til at anvende miljøopsætning eller genanvende SQL-sikkerhed, efterhånden som indholdet bevæger sig mellem stadier.
I arbejdsområder uden versionskontrol
Lagerartikeldefinitionen inkluderer forud- og postudrulningsbetegnelser, selv når arbejdsområdet ikke er forbundet til versionskontrol. Eksport af lageret inkluderer konfigurationen, og import af det genskaber konfigurationen intakt.
Forfatter pre-deployment og post-deployment scripts i et SQL-databaseprojekt
I stedet for Fabric-portalen kan du oprette pre-deployment og post-deployment scripts direkte i lagerets SQL-databaseprojekt ved at bruge SQL Database Projects-udvidelsen i Visual Studio Code eller den integrerede SQL-projektoplevelse i SQL Server Management Studio. Konfigurationen vises i Fabric-portalen – både i Object Explorer og item Settings – efter næste Git-opdatering.
Visual Studio Code
- Installer SQL Database Projects-udvidelsen i Visual Studio Code.
- Åbn SQL-databaseprojektet for dit lager. Hvis dit arbejdsområde er forbundet til Git, klon repo'et, og åbn derefter warehouse-projektmappen.
- I visningen Databaseprojekter højreklikker du på projektnoden og vælger Add Pre-Deployment Script eller Add Post-Deployment Script.
- Giv et scriptnavn uden filendelsen. Scriptfilen tilføjes til projektet og åbnes i editoren.
- Tilføj din Transact-SQL til scriptet og gem filen. Sørg for, at filen gemmes i
.sharedqueriesmappen til næste Git-opdatering. - Commit og push ændringerne til dit Git-repo, og opdater derefter arbejdsområdet fra versionskontrol for at anvende konfigurationen.
SQL Server Management Studio
- Brug SQL Server Management Studio 22 eller nyere, som inkluderer erfaring med SQL Database Projects.
- Åbn SQL-databaseprojektet for dit lager.
- I Løsningsoversigt højreklikker du på projektnoden og vælger Add>Script. Vælg Pre-Deployment Script eller Post-Deployment Script.
- Scriptfilen tilføjes til projektet og åbnes i forespørgselseditoren.
- Tilføj din Transact-SQL til scriptet og gem filen. Sørg for at gemme filen i
.sharedqueriesmappen til næste Git-opdatering. - Commit og push ændringerne til dit Git-repo, og opdater derefter arbejdsområdet fra versionskontrol for at anvende konfigurationen.
Rediger projektfilen direkte
I ethvert værktøj kan du udpege et script ved at redigere .sqlproj filen og tilføje et enkelt PreDeploy eller PostDeploy et element til en ItemGroup:
<ItemGroup>
<PreDeploy Include="./sharedqueries/pre-deployment.sql" />
<PostDeploy Include="./sharedqueries/post-deployment.sql" />
</ItemGroup>
Migrer fra eksisterende SQL-projekter
Hvis du migrerer en .sqlproj fra SQL Server Data Tools (SSDT) eller Visual Studio, der allerede indeholder <PreDeploy> og <PostDeploy> indtastninger, genkender importprocessen og kortlægger disse poster til Fabric før og efter udrulning. Da Fabric kun understøtter ét pre-deployment og ét post-deployment-script, skal du sikre, at projektet højst indeholder én post af hver type, før import.
Overvejelser og begrænsninger
- Et lager understøtter kun et enkelt pre-deployment script og et enkelt post-deployment script. Den understøtter ikke flere filer per script.
- Du kan ikke udpege den samme delte forespørgsel som både pre-deployment og post-deployment script.
- Hvis du sletter en delt forespørgsel, der er udpeget som et pre-deployment eller post-deployment script, bliver den tilsvarende betegnelse automatisk slettet.
- Hvis du ændrer en delt forespørgsel, der er udpeget som et pre-deployment eller post-deployment script, til en brugerforespørgsel, bliver den tilsvarende betegnelse automatisk slettet.
- Pre- og post-deployment-scripts kører på hver warehouse-deployment. De Transact-SQL scripts bør være idempotente, så gentagne kørsler ikke fejler eller skaber dubletter objekter.
- Pre-deployment og post-deployment scripts valideres ikke mod databasemodellen ved build-tidspunktet. Fejl i scripts dukker op ved udrulning, og en scriptfejl stopper udrulningen.
- Du kan kun bruge Transact-SQL, der understøttes i Fabric data warehouse.
- Identiteten, der kører udrulningen, skal have de nødvendige tilladelser til at udføre scriptindholdet.