Udvikl lagerprojekter i Visual Studio Code

Gælder for:✅ Warehouse i Microsoft Fabric

Lær, hvordan du opsætter et databaseprojekt til Fabric data warehouse i Visual Studio Code. Du opretter et nyt projekt, definerer skema-objekter, bygger og validerer projektet og publicerer det i dit lager.

Important

Denne funktion er en prøveversion.

Forudsætninger

Før du begynder, skal du sørge for at:

  • Have adgang til en eksisterende lagerstedsvare i et stofarbejdsområde med bidragyder eller højere tilladelser.
  • Installer Visual Studio Code på din arbejdsstation.
  • Installer SDK'en .NET for at bygge og udgive databaseprojekter.
  • Installer to Visual Studio Code udvidelser: SQL Database Projects og SQL Server (mssql).
    • Du kan installere de nødvendige udvidelser direkte fra Visual Studio Code marketplace ved at søge efter "SQL Database Projects" eller "SQL Server (mssql)".

Oprette et nyt databaseprojekt

Du kan oprette et databaseprojekt fra bunden eller fra et eksisterende lager.

Mulighed 1: Opret et nyt databaseprojekt fra Command Palette i Visual Studio Code

  1. Åbn Visual Studio Code.

  2. Åbn kommandopaletten (Ctrl+Shift+P eller Cmd+Shift+P på Mac).

  3. Søg efter databaseprojekter: Ny.

  4. Vælg Database Project Type som SQL Server Database.

  5. Vælg et projektnavn, og vælg placeringen af den lokale mappe.

  6. Vælg Synapse data warehouse i Microsoft Fabric som målplatform.

  7. Når du bliver bedt om det, skal du vælge Ja (anbefales) for et SDK-projekt.

    Important

    Kun SDK-stil projekter understøttes for Fabric data warehouse.

  8. Vælg Ja til spørgsmålet Vil du konfigurere SQL-projektbuild som standardbuildkonfiguration for denne mappe?

  9. Vælg Ja for at have tillid til forfatterne af filerne i denne mappe.

Mulighed 2: Opret et nyt databaseprojekt fra udvidelsen Databaseprojekter

  1. I Visual Studio Code vælg Database Projects udvidelsesikonet fra Activity Bar.

  2. I ruden Databaseprojekter skal du vælge Opret ny.

    Skærmbillede fra Visual Studio Code, der viser udvidelsespanelet Databaseprojekter og knappen Opret ny.

  3. Vælg Database Project Type som SQL Server Database.

  4. Vælg et projektnavn, og vælg placeringen af den lokale mappe.

  5. Vælg Synapse data warehouse i Microsoft Fabric som målplatform.

  6. Når du bliver bedt om det, skal du vælge Ja (anbefales) for et SDK-projekt. Kun SDK-stil projekter understøttes for Fabric data warehouse.

  7. Vælg Ja til spørgsmålet Vil du konfigurere SQL-projektbuild som standardbuildkonfiguration for denne mappe?

  8. Vælg Ja for at have tillid til forfatterne af filerne i denne mappe.

Mulighed 3: Oprette et databaseprojekt fra et eksisterende lagersted

  1. Først skal du oprette en ny forbindelsesprofil for dit lager i Visual Studio Code.

    1. Vælg udvidelsen SQL Server i Visual Studio Code fra Aktivitetsbaren.
    2. Angiv et profilnavn. Vælg Parametre.
    3. Indtast servernavnet. I Fabric-portalen, i indstillingerne for dit lager, vælg SQL forbindelsesstreng, og kopier den medfølgende streng. Denne streng er servernavnet på dit lager og adskiller sig fra SQL-analyse-endpointet. Det ligner <server unique ID>.datawarehouse.fabric.microsoft.com.
    4. For Autentificeringstype, brug Microsoft Entra ID - Universal med MFA-understøttelse. Autentificér med dit Microsoft Entra ID.
    5. Angiv anden information som standard eller ønsket, og vælg Forbind.
  2. I Visual Studio Code skal du vælge ikonet Database Projects udvidelse fra Aktivitetslinjen.

  3. Vælg indstillingsknappen ... i ruden Databaseprojekter , og vælg Opret projekt fra database .

    Skærmbillede fra Visual Studio Code viser muligheden Opret projekt fra databasen.

  4. Vælg dit lagersted blandt de eksisterende forbindelsesprofiler.

  5. Indtast et projektnavn og vælg en projektmappe på din arbejdsstation.

  6. For mappestruktur skal du vælge Skema/objekttype (anbefales).

  7. For Medtag tilladelser i projektet skal du vælge Nej (standard).

  8. For SDK-projekt skal du vælge Ja (anbefales).

  9. Vælg Ja til spørgsmålet Vil du konfigurere SQL-projektbuild som standardbuildkonfiguration for denne mappe?

  10. Visual Studio Code udtrækker projektfiler fra lagerprojektet.

    Skærmbillede fra Visual Studio Code, der viser fremdriftsnotifikationen for udtræksprojektfilerne.

  11. Ved vellykket udpakning ser du følgende notifikation: "Udpak projektfiler: Lykkedes. Afsluttet".

  12. Vælg Ja for at have tillid til forfatterne af filerne i denne mappe.

Nyt databaseprojekt til dit lager

Det nye databaseprojekt for dit lagersted vises i menuen SQL Database-projekter.

Skærmbillede fra Visual Studio Code, der viser det nye databaseprojekt for AdventureWorksDW2022.

Din projektstruktur ser sådan ud:

 | Project Name
 ├── Database References
 ├── SQLCMD Variables
 ├── .vscode/
 └── schema/
     ├── Functions
     ├── Tables
     └── Views

Konfigurere databaseprojektet

  1. Højreklik på projektet, og vælg Rediger .sqlproj-fil.

    Skærmbillede fra Visual Studio Code og kontekstmenuen for et databaseprojekt. Rediger sqlproj Fil-indstillingen er fremhævet.

  2. Bekræfte, at filen indeholder den nyeste version af Microsoft. Build.Sql SDK. For eksempel kan du ændre versionen for Microsoft.Build.Sql til 2.3.0 i filen .sqlproj .

       <Sdk Name="Microsoft.Build.Sql" Version="2.3.0" />
    
  3. Kontrollér den nyeste version af Microsoft.SqlServer.Dacpacs.FabricDw, og tilføj en reference i XML-noden Project/ItemGroup . For eksempel:

       <PackageReference Include="Microsoft.SqlServer.Dacpacs.FabricDw" Version="170.0.4">
           <DatabaseVariableLiteralValue>master</DatabaseVariableLiteralValue>
           <SuppressMissingDependenciesErrors>False</SuppressMissingDependenciesErrors>
       </PackageReference>
    

    Important

    Hvis du tilføjer pakkereferencen uden DatabaseVariableLiteralValue metadata, lykkes det at bygge projektet, men sqlpackagePublicer og Script-handlinger kan fejle, så snart din kode refererer til objekter i skemaet sys , såsom sys.views. I så fald ser du fejl som følgende:

    Error SQL72033: This deployment may encounter errors during execution because [<schema>].[<procedure>] depends on [sys].[views].[schema_id] and [sys].[views].[schema_id] does not exist in the target database.

    Sådan skal dit databaseprojekt for et lager se ud efter opdateringerne.

     <?xml version="1.0" encoding="utf-8"?>
     <Project DefaultTargets="Build">
       <Sdk Name="Microsoft.Build.Sql" Version="2.3.0" />
       <PropertyGroup>
         <Name>DatabaseProject715wh</Name>
         <ProjectGuid>{2E278BCC-F118-4DDB-9255-94697F2930B4}</ProjectGuid>
         <DSP>Microsoft.Data.Tools.Schema.Sql.SqlDwUnifiedDatabaseSchemaProvider</DSP>
         <ModelCollation>1033, CI</ModelCollation>
       </PropertyGroup>
       <ItemGroup>
         <None Include=".vscode\tasks.json" />
         <PackageReference Include="Microsoft.SqlServer.Dacpacs.FabricDw" Version="170.0.4">
           <DatabaseVariableLiteralValue>master</DatabaseVariableLiteralValue>
           <SuppressMissingDependenciesErrors>False</SuppressMissingDependenciesErrors>
         </PackageReference>
       </ItemGroup>
       <Target Name="BeforeBuild">
         <Delete Files="$(BaseIntermediateOutputPath)\project.assets.json" />
       </Target>
     </Project>
    
  4. Gem din .sqlproj fil. Når du bliver bedt om at genindlæse databaseprojektet, skal du vælge Ja.

Important

Fabric data warehouse-teamet udgiver ofte nye versioner af NuGet-pakker. Da standardversionsværdierne i .sqlproj filen kan ændre sig over tid, skal du opdatere dem i dit lokale projekt, så de forbliver i overensstemmelse med de nyeste versioner, der er tilgængelige fra NuGet for Microsoft. SqlServer.Dacpacs.FabricDw.

Tilføje eller opdatere databaseobjekter

Du kan definere eller ændre databaseobjekter, f.eks. tabeller, visninger, lagrede procedurer og funktioner i dit lagerstedsprojekt.

Under mappen for et skema skal du f.eks dbo. tilføje eller slette eller foretage ændringer i T-SQL-definitionerne af objekter på dit lager. Hvis du vil ændre et eksisterende objekt, skal du åbne det tilsvarende .sql arkiv og opdatere definitionen efter behov.

Når du bygger projektet, valideres alle nye og opdaterede objekter og inkluderes i den genererede dacpac-fil i {project folder location}/bin/debug/{project name}.dacpac filen.

Ændringer, der foretages her, gælder kun databaseprojektet og afspejles ikke i Microsoft Fabric, før du Build og Publish dit projekt.

Byg og valider projektet

  1. Åbn databaseprojektet, hvis det ikke allerede er åbent.

  2. Højreklik på projektet og vælg Byg for at bygge databaseprojektet.

    Skærmbillede fra Visual Studio Code, der viser muligheden for at bygge databaseprojektet.

  3. Buildet burde lykkes. Ret eventuelle fejl baseret på beskeder, der gives i outputtet af build-eventet.

Notat

I øjeblikket skal din standardterminal i Visual Studio Code være PowerShell for at byggeprocessen i Database Projects-udvidelsen kan lykkes. I Command Palette vælger du Terminal: Vælg Default Profile, og vælg derefter PowerShell.

Publicér til Fabric data warehouse

Når du har oprettet dit projekt, skal du publicere det på dit destinationslager. Udgivelse opretter et script for at løse forskellen mellem databaseprojektet og det faktiske lagersted og udfører et script for at få lagerstedet til at matche projektet. Du kan deploye den kompilerede model af warehouse-skemaet i en .dacpac-fil til et mål-warehouse.

  1. Højreklik på projektet, og vælg Udgiv.

  2. Vælg Publicer på en eksisterende SQL-server.

  3. Vælg Brug ikke profil for Vælg publiceringsprofil, der skal indlæses, første gang du publicerer.

    • Gem muligheder for at publicere dit lager i en publicer-profil. En Visual Studio Code-notifikation giver dig mulighed for at gemme de publiceringsmuligheder, du brugte, til en publiceringsprofilfil.
    • Genbrug publicer-profilen i fremtiden, når du udgiver dit projekt på dit lager. Du kan have forskellige profilindstillinger for forskellige lagersteder eller for forskellige miljøer i udviklings-/test-/accept-/produktionsudviklingsmiljøer.
  4. Vælg forbindelsesprofilen til Fabric data warehouse fra listen.

  5. Vælg navnet på destinationslagerstedet.

  6. I indstillingen Vælg handling kan du enten generere script for at gennemse scriptet, før du publicerer, eller udgive projektet på et lagersted. - Første gang du vil implementere ændringer, skal du omhyggeligt generere script og gennemgå den resulterende T-SQL, som skal anvendes på mållageret. Generering af scriptet ændrer ingen ændringer i mållageret.

    • Hvis du vælger Publicer, skriver processen ændringer til dit mållager.

    Skærmbillede fra Visual Studio Code viser Deploy dacpac: Underretning i gang.

  7. På meddelelsen Vil du gemme indstillingerne i en profil (.publish.xml)?, skal du vælge Ja og gemme dine valg for publiceringsprofil til næste gang, du skal offentliggøre.

Vigtige implementeringsindstillinger for lagerprojekter

Når du deployerer databaseprojekter til Fabric data warehouse, er der flere indstillinger, der styrer skemaændringer og kan påvirke datasikkerheden. Brug med forsigtighed.

  • BlockOnPossibleDataLoss

    • Hvad den gør: Forhindrer udrulning, hvis der er risiko for datatab (for eksempel at droppe en kolonne eller tabel med data).
    • Anbefaling: Altid sat til True i produktion for at beskytte kritiske data.
    • Forsigtighed: At sætte det til False tillader udrulning, selvom data kan gå tabt. Brug kun i kontrollerede miljøer (for eksempel udvikling/test).
  • DropObjectsNotInSource

    • Hvad den gør: Fjerner objekter i måldatabasen, som ikke er til stede i projektkildekoden.
    • Anbefaling: Brug i udviklings-/testmiljøer til at rydde op i resterende objekter.
    • Forsigtighed: At bruge DropObjectsNotInSource i produktion kan slette vigtige objekter og data. Dobbelttjek før aktivering.
  • PreDeploy for pre-deployment-scriptet

    • Funktion
      • Udfører brugerdefinerede SQL-scripts før skemaudrulningen.
    • Almindelige anvendelser
      • Arkivér eller sikkerhedskopier data før du dropper tabeller
      • Deaktiver begrænsninger eller triggere midlertidigt
      • Oprydning af arvobjekter
    • Forsigtighed
      • Sørg for, at scripts er idempotente og ikke introducerer skemaændringer, der er i konflikt med deployment.

Tip

Når en implementeringsproces eller forespørgsel er idempotent, kan du køre kommandoen flere gange uden at forårsage logiske problemer eller fejl. En idempotent kommando er også skrevet på en måde, hvor den kan implementeres til flere databaser uden at skulle forudbestemme deres status.

  • PostDeploy for post-deployment-scriptet

    • Hvad den gør: Udfører brugerdefinerede SQL-scripts efter skema-implementeringen.
    • Almindelige anvendelser:
      • Seedopslag eller referencedata
      • Genaktiver begrænsninger eller triggere
      • Logudrulningshistorik
    • Advarsel: Undgå tunge operationer på store borde i produktion. Sørg for, at scripts sikkert kan køre flere gange, hvis det er nødvendigt.

Important

Gennemgå altid deployment-scripts og indstillinger, før du udgiver dem. Test først i udviklings- eller testmiljøer for at forhindre utilsigtet datatab. For mere information og eksempler, se scripts før og efter implementering for Fabric data warehouse.

Bekræft udgivelse

Forbind til dit lager og script-objekter, der er ændret, eller verificér ved at køre systemkatalogobjekter.