Magazijnprojecten ontwikkelen in Visual Studio Code

Van toepassing op:✅ Magazijn in Microsoft Fabric

Meer informatie over het instellen van een databaseproject voor Fabric-Data Warehouse in Visual Studio Code. Je maakt een nieuw project aan, definieert schema-objecten, bouwt en valideert het project, en publiceert het in je warehouse.

Belangrijk

Deze functie is beschikbaar als preview-versie.

Vereiste voorwaarden

Voordat u begint, moet u het volgende doen:

  • Toegang tot een bestaand magazijnitem binnen een Fabric-werkruimte met bijdrager- of hogere machtigingen.
  • Installeer Visual Studio Code op uw werkstation.
  • Installeer de SDK .NET om databaseprojecten te bouwen en te publiceren.
  • Installeer twee Visual Studio Code-extensies: SQL Database Projects en SQL Server (mssql).
    • U kunt de vereiste extensies rechtstreeks vanuit Visual Studio Code Marketplace installeren door te zoeken naar 'SQL Database Projects' of 'SQL Server (mssql)'.

Een nieuw databaseproject maken

Je kunt een databaseproject vanaf nul maken of vanuit een bestaand magazijn.

Optie 1: Een nieuw databaseproject maken vanuit het opdrachtenpalet in Visual Studio Code

  1. Open Visual Studio Code.

  2. Open het opdrachtpalet (Ctrl+Shift+P of Cmd+Shift+P op de Mac).

  3. Zoek naar Databaseprojecten: Nieuw.

  4. Selecteer Database Project Type als SQL Server Database.

  5. Kies een projectnaam en selecteer de locatie van de lokale map.

  6. Kies Synapse-Data Warehouse in Microsoft Fabric als doelplatform.

  7. Wanneer u hierom wordt gevraagd, selecteert u Ja (aanbevolen) voor een SDK-project.

    Belangrijk

    Alleen SDK-stijl projecten worden ondersteund voor Fabric-Data Warehouse.

  8. Selecteer Ja op de vraag Wilt u de build van het SQL-project configureren als de standaard buildconfiguratie voor deze map?

  9. Selecteer Ja als u de auteurs van de bestanden in deze map wilt vertrouwen.

Optie 2: Een nieuw databaseproject maken op basis van de extensie Databaseprojecten

  1. Kies in Visual Studio Code het extensiepictogram Databaseprojecten uit de Activiteitsbalk.

  2. Selecteer nieuwe maken in het deelvenster Databaseprojecten.

    Schermafbeelding van Visual Studio Code met het deelvenster Databaseprojecten en de knop Nieuwe maken.

  3. Selecteer Database Project Type als SQL Server Database.

  4. Kies een projectnaam en selecteer de locatie van de lokale map.

  5. Kies Synapse-Data Warehouse in Microsoft Fabric als doelplatform.

  6. Wanneer u hierom wordt gevraagd, selecteert u Ja (aanbevolen) voor een SDK-project. Alleen SDK-stijl projecten worden ondersteund voor Fabric-Data Warehouse.

  7. Selecteer Ja op de vraag Wilt u de build van het SQL-project configureren als de standaard buildconfiguratie voor deze map?

  8. Selecteer Ja als u de auteurs van de bestanden in deze map wilt vertrouwen.

Optie 3: Een databaseproject maken op basis van een bestaand magazijn

  1. Maak eerst een nieuw verbindingsprofiel voor uw magazijn in Visual Studio Code.

    1. Selecteer de extensie SQL Server in Visual Studio Code in de Activiteitsbalk.
    2. Voer een profielnaam in. Kies Parameters.
    3. Voer de servernaam in. Selecteer in de Fabric-portal in de instellingen van uw magazijn het SQL-eindpunt en kopieer de opgegeven tekenreeks. Deze servernaam is voor je warehouse en verschilt van het SQL-analytics-endpoint. Het ziet eruit als <server unique ID>.datawarehouse.fabric.microsoft.com.
    4. Gebruik voor Authentication-typeMicrosoft Entra ID - Universeel met MFA-ondersteuning. Verifieer met uw Microsoft Entra ID.
    5. Geef desgewenst andere gegevens op of gebruik de standaardwaarden en selecteer Connect.
  2. Kies in Visual Studio Code het extensiepictogram Databaseprojecten in de activiteitenbalk.

  3. Selecteer de knop ... Opties in het deelvenster Databaseprojecten en kies De optie Project maken uit database .

    Schermafbeelding van Visual Studio Code met de optie Project maken op basis van database.

  4. Kies uw magazijn uit de bestaande verbindingsprofielen.

  5. Voer een projectnaam in en kies een projectmap op je werkstation.

  6. Voor mapstructuur selecteert u Schema/Objecttype (aanbevolen).

  7. Selecteer Nee (standaard) voor Machtigingen opnemen in project.

  8. Selecteer Ja (aanbevolen) voor een SDK-project.

  9. Selecteer Ja op de vraag Wilt u de build van het SQL-project configureren als de standaard buildconfiguratie voor deze map?

  10. Visual Studio Code extraheert projectbestanden uit het magazijnproject.

    Schermafbeelding van Visual Studio Code met de voortgangsmelding voor projectbestanden extraheren.

  11. Na succesvolle extractie zie je de volgende melding: "Projectbestanden uitpakken: Geslaagd. Voltooid".

  12. Selecteer Ja als u de auteurs van de bestanden in deze map wilt vertrouwen.

Nieuw databaseproject voor uw magazijn

Het nieuwe databaseproject voor uw magazijn wordt weergegeven in het menu SQL Database Projects.

Schermafbeelding van Visual Studio Code met het nieuwe databaseproject voor AdventureWorksDW2022.

Uw projectstructuur ziet er als volgt uit:

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

Het databaseproject configureren

  1. Klik met de rechtermuisknop op het project en selecteer .sqlproj-bestand bewerken.

    Schermopname van Visual Studio Code en het contextmenu van een databaseproject. De optie Sqlproj-bestand bewerken is gemarkeerd.

  2. Controleer of het bestand de nieuwste versie van Microsoft bevat. Build.Sql SDK. Verander bijvoorbeeld de versie voor Microsoft.Build.Sql in 2.2.0 in het bestand .sqlproj.

       <Sdk Name="Microsoft.Build.Sql" Version="2.2.0" />
    
  3. Controleer de nieuwste versie van Microsoft.SqlServer.Dacpacs.FabricDw en voeg een verwijzing toe in het Project/ItemGroup XML-knooppunt. Voorbeeld:

       <PackageReference Include="Microsoft.SqlServer.Dacpacs.FabricDw" Version="170.0.2" />
    

    Dit is hoe uw databaseproject voor een magazijn eruit moet zien na de updates.

     <?xml version="1.0" encoding="utf-8"?>
     <Project DefaultTargets="Build">
       <Sdk Name="Microsoft.Build.Sql" Version="2.2.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.2" />
       </ItemGroup>
       <Target Name="BeforeBuild">
         <Delete Files="$(BaseIntermediateOutputPath)\project.assets.json" />
       </Target>
     </Project>
    
  4. Sla het .sqlproj bestand op. Selecteer Ja bij de prompt om uw databaseproject opnieuw te laden.

Belangrijk

Het Fabric Data Warehouse team brengt regelmatig nieuwe versies van NuGet-pakketten uit. Aangezien de standaardversiewaarden in het bestand .sqlproj in de loop van de tijd kunnen veranderen, werk je deze bij in je lokale project om in lijn te blijven met de nieuwste versies die via NuGet beschikbaar zijn voor Microsoft.SqlServer.Dacpacs.FabricDw.

Databaseobjecten toevoegen of bijwerken

U kunt databaseobjecten definiëren of wijzigen, zoals tabellen, weergaven, opgeslagen procedures en functies binnen uw magazijnproject.

Voeg onder de map voor een schema, bijvoorbeeld dbo, de T-SQL-definities van objecten in uw magazijn toe, verwijder deze of breng wijzigingen aan. Als u een bestaand object wilt wijzigen, opent u het bijbehorende .sql bestand en werkt u de definitie zo nodig bij.

Wanneer u het project bouwt, worden alle nieuwe en bijgewerkte objecten gevalideerd en opgenomen in het gegenereerde dacpac-bestand in {project folder location}/bin/debug/{project name}.dacpac het bestand.

Wijzigingen die u hier hebt aangebracht, zijn alleen van toepassing op het databaseproject en worden pas doorgevoerd in Microsoft Fabric als u uw project Buildt en publiceert.

Het project bouwen en valideren

  1. Open het databaseproject als het nog niet open is.

  2. Klik met de rechtermuisknop op het project en selecteer Bouwen om het databaseproject te bouwen.

    Schermafbeelding van Visual Studio Code met de optie voor het maken van het databaseproject.

  3. De build moet slagen. Los eventuele fouten op op basis van de berichten die in de output van de buildgebeurtenis worden weergegeven.

Opmerking

Op dit moment moet je standaardterminal in Visual Studio Code PowerShell zijn om het bouwproces in de Database Projects-extensie te laten slagen. Kies in het Command PaletteTerminal: Selecteer Standaardprofiel en selecteer vervolgens PowerShell.

Publiceren naar Fabric-Data Warehouse

Nadat u uw project hebt gebouwd, publiceert u het naar uw doelwarehouse. Publiceren genereert een script om het verschil tussen het gegevensbankproject en het actuele data warehouse op te lossen en voert een script uit om het data warehouse in overeenstemming te brengen met het project. Je kunt het gecompileerde model van het warehouse-schema in een .dacpac-bestand uitrollen naar een doelwarehouse.

  1. Klik met de rechtermuisknop op het project en selecteer Publiceren.

  2. Kies Publiceren naar een bestaande SQL-server.

  3. Als u het publicatieprofiel wilt selecteren om te laden, kiest u de eerste keer dat u publiceert het profiel niet gebruiken.

    • Sla opties op voor het publiceren van je magazijn in een publiceerprofiel. Een Visual Studio Code-melding geeft je de optie om de publicatieopties die je gebruikte op te slaan als een publicatieprofielbestand.
    • Hergebruik later het publicatieprofiel wanneer je je project naar je datawarehouse publiceert. Mogelijk hebt u verschillende profielopties voor verschillende magazijnen of voor verschillende omgevingen in uw ontwikkel-/test-/acceptatie-/productieontwikkelingsomgevingen.
  4. Kies het Fabric Data Warehouse verbindingsprofiel in de lijst.

  5. Kies de naam van het doelwarehouse.

  6. In de optie Actie Kiezen kunt u Een script genereren om het script te controleren voordat u het publiceert of een project publiceren naar een magazijn. - De eerste keer dat je wijzigingen wilt uitrollen, genereer dan zorgvuldig Script en bekijk de resulterende T-SQL om toe te passen op het doelwarehouse. Het genereren van het script verandert niets aan het doel-warehouse.

    • Als je Publiceren kiest, schrijft het proces wijzigingen naar je doelmagazijn.

    Schermopname van Visual Studio Code met de optie Dacpac implementeren: In uitvoering notification.

  7. Kies In de melding Wilt u de instellingen opslaan in een profiel (.publish.xml)?, kies Ja en sla uw publicatieprofielkeuzes op voor de volgende keer dat u wilt publiceren.

Belangrijke implementatie-instellingen voor magazijnprojecten

Wanneer je databaseprojecten naar Fabric Data Warehouse uitrolt, controleren verschillende instellingen schemawijzigingen en kunnen ze de gegevensveiligheid beïnvloeden. Wees voorzichtig.

  • BlockOnPossibleDataLoss

    • Wat het doet: Voorkomt implementatie als er een risico bestaat op gegevensverlies (bijvoorbeeld het verwijderen van een kolom of tabel die gegevens bevat).
    • Aanbeveling: Altijd ingesteld op True in productie om kritieke gegevens te beveiligen.
    • Voorzichtigheid: Door het hierop in te stellen, wordt implementatie mogelijk, zelfs als gegevens verloren kunnen gaan. Gebruik alleen in gecontroleerde omgevingen (bijvoorbeeld dev/test).
  • DropObjectsNotInSource

    • Wat het doet: Hiermee worden objecten in de doeldatabase verwijderd die niet aanwezig zijn in de projectbron.
    • Aanbeveling: Gebruik in ontwikkel-/testomgevingen om restobjecten op te schonen.
    • Voorzichtigheid: Als u DropObjectsNotInSource in productie gebruikt, kunnen belangrijke objecten en gegevens worden verwijderd. Controleer dit voordat u deze inschakelt.
  • PreDeploy voor het script vóór de implementatie

    • Wat gebeurt er
      • Voert aangepaste SQL-scripts uit vóór de schema-implementatie.
    • Veelvoorkomend gebruik
      • Gegevens archiveren of back-ups maken voordat tabellen worden verwijderd
      • Beperkingen of triggers tijdelijk uitschakelen
      • Verouderde objecten opschonen
    • Waarschuwing
      • Zorg ervoor dat scripts idempotent zijn en geen schemawijzigingen introduceren die conflicteren met de deployment.

Tip

Wanneer een deploymentproces of query idempotent is, kun je het commando meerdere keren uitvoeren zonder logische problemen of storingen te veroorzaken. Een idempotent commando is ook zo geschreven dat het op meerdere databases kan worden ingezet zonder dat hun status vooraf hoeft te bepalen.

  • PostDeploy voor het script na de implementatie

    • Wat het doet: Voert aangepaste SQL-scripts uit na de schema-implementatie.
    • Veelgebruikte toepassingen:
      • Zoekopdracht of referentiegegevens
      • Beperkingen of triggers opnieuw inschakelen
      • Logboekimplementatiegeschiedenis
    • Voorzichtigheid: Vermijd zware werkzaamheden op grote tafels tijdens de productie. Zorg ervoor dat scripts veilig meerdere keren kunnen draaien indien nodig.

Belangrijk

Controleer altijd implementatiescripts en -instellingen voordat u publiceert. Test eerst in ontwikkel- of testomgevingen om onbedoeld gegevensverlies te voorkomen. Raadpleeg voor meer informatie en voorbeelden scripts vóór implementatie en na implementatie voor Fabric Data Warehouse.

Publiceren controleren

Maak verbinding met je warehouse en scriptobjecten die zijn veranderd, of verifieer door systeemcatalogusobjecten te draaien.