Entwickeln von Lagerprojekten in Visual Studio Code

Gilt für:✅ Warehouse in Microsoft Fabric

Erfahren Sie, wie Sie ein Datenbankprojekt für Fabric Data Warehouse in Visual Studio Code einrichten. Du erstellst ein neues Projekt, definierst Schema-Objekte, baust und validierst das Projekt und publizierst es in deinem Warehouse.

Von Bedeutung

Dieses Feature befindet sich in der Vorschauphase.

Voraussetzungen

Bevor Sie beginnen, stellen Sie sicher, dass Sie:

  • Stellen Sie sicher, dass Sie Zugang zu einem bestehenden Warenbestandselement in einem Fabric-Arbeitsbereich mit Berechtigungen als Mitwirkender oder höher haben.
  • Installieren Sie Visual Studio Code auf Ihrer Arbeitsstation.
  • Installieren Sie das SDK .NET, um Datenbankprojekte zu erstellen und zu veröffentlichen.
  • Installieren Sie zwei Visual Studio Code Erweiterungen: SQL-Datenbankprojekte und SQL Server (mssql).
    • Sie können die erforderlichen Erweiterungen direkt aus Visual Studio Code Marketplace installieren, indem Sie nach "SQL-Datenbankprojekte" oder "SQL Server (mssql)" suchen.

Erstellen eines neuen Datenbankprojekts

Du kannst ein Datenbankprojekt von Grund auf oder aus einem bestehenden Lager erstellen.

Option 1: Erstellen eines neuen Datenbankprojekts aus der Befehlspalette in Visual Studio Code

  1. Öffnen Sie Visual Studio Code.

  2. Öffnen Sie die Befehlspalette (Ctrl+Shift+P oder Cmd+Shift+P auf dem Mac).

  3. Nach Datenbankprojekten suchen: Neu.

  4. Wählen Sie Datenbankprojekttyp als SQL Server Datenbank aus.

  5. Wählen Sie einen Projektnamen aus, und wählen Sie den lokalen Ordnerspeicherort aus.

  6. Wählen Sie Synapse Data Warehouse in Microsoft Fabric als Zielplattform aus.

  7. Wenn Sie dazu aufgefordert werden, wählen Sie "Ja" (empfohlen) für ein SDK-Formatprojekt aus.

    Von Bedeutung

    Nur SDK-style Projekte werden für Fabric Data Warehouse unterstützt.

  8. Wählen Sie Ja für die Frage Möchten Sie den SQL-Projektbuild als Standard-Buildkonfiguration für diesen Ordner festlegen?

  9. Wählen Sie "Ja " aus, um den Autoren der Dateien in diesem Ordner zu vertrauen.

Option 2: Erstellen eines neuen Datenbankprojekts aus der Erweiterung "Datenbankprojekte"

  1. Wählen Sie in Visual Studio Code das Erweiterungssymbol Datenbankprojekte aus der Aktivitätsleiste aus.

  2. Wählen Sie im Bereich "Datenbankprojekte " die Option "Neu erstellen" aus.

    Screenshot aus Visual Studio Code mit dem Erweiterungsbereich

  3. Wählen Sie Datenbankprojekttyp als SQL Server Datenbank aus.

  4. Wählen Sie einen Projektnamen aus, und wählen Sie den lokalen Ordnerspeicherort aus.

  5. Wählen Sie Synapse Data Warehouse in Microsoft Fabric als Zielplattform aus.

  6. Wenn Sie dazu aufgefordert werden, wählen Sie "Ja" (empfohlen) für ein SDK-Formatprojekt aus. Nur SDK-style Projekte werden für Fabric Data Warehouse unterstützt.

  7. Wählen Sie Ja für die Frage Möchten Sie den SQL-Projektbuild als Standard-Buildkonfiguration für diesen Ordner festlegen?

  8. Wählen Sie "Ja " aus, um den Autoren der Dateien in diesem Ordner zu vertrauen.

Option 3: Erstellen eines Datenbankprojekts aus einem vorhandenen Lagerhaus

  1. Erstellen Sie zunächst ein neues Verbindungsprofil für Ihr Lager in Visual Studio Code.

    1. Wählen Sie die Erweiterung SQL Server in Visual Studio Code aus der Activity Bar aus.
    2. Geben Sie einen Profilnamen ein. Wählen Sie "Parameter" aus.
    3. Geben Sie den Servernamen ein. Wählen Sie im Fabric-Portal in den Einstellungen Ihres Lagers SQL-Endpunkt aus, und kopieren Sie die bereitgestellte Zeichenfolge. Dieser Servername ist für dein Warehouse und unterscheidet sich vom SQL-Analytics-Endpunkt. Es sieht aus wie <server unique ID>.datawarehouse.fabric.microsoft.com.
    4. Verwenden Sie für Authentication-TypMicrosoft Entra ID – Universal mit MFA-Unterstützung. Authentifizieren Sie sich bei Ihrem Microsoft Entra ID.
    5. Geben Sie weitere Informationen standardmäßig oder nach Bedarf an, und wählen Sie Verbinden.
  2. Wählen Sie in Visual Studio Code das Erweiterungssymbol Datenbankprojekte aus der Aktivitätsleiste aus.

  3. Wählen Sie im Bereich ..." die Optionsschaltfläche und dann die Option "Projekt aus Datenbank erstellen" aus.

    Screenshot aus Visual Studio Code mit der Option

  4. Wählen Sie Ihr Lager aus den vorhandenen Verbindungsprofilen aus.

  5. Geben Sie einen Projektnamen ein und wählen Sie einen Projektordner an Ihrer Arbeitsstation.

  6. Wählen Sie für die Ordnerstruktur schema/Objekttyp (empfohlen) aus.

  7. Wählen Sie für "Berechtigungen in Projekt einschließen" die Option "Nein " (Standardeinstellung) aus.

  8. Wählen Sie für DAS SDK-Projekt "Ja" (empfohlen) aus.

  9. Wählen Sie Ja für die Frage Möchten Sie den SQL-Projektbuild als Standard-Buildkonfiguration für diesen Ordner festlegen?

  10. Visual Studio Code extrahiert Projektdateien aus dem Lagerprojekt.

    Screenshot aus Visual Studio Code mit der Fortschrittsbenachrichtigung zum Extrahieren der Projektdateien.

  11. Nach erfolgreichem Extrahieren sehen Sie folgende Benachrichtigung: "Projektdateien extrahieren: Erfolgreich. Abgeschlossen".

  12. Wählen Sie "Ja " aus, um den Autoren der Dateien in diesem Ordner zu vertrauen.

Neues Datenbankprojekt für Ihr Lager

Das neue Datenbankprojekt für Ihr Lager wird im Menü "SQL-Datenbankprojekte" angezeigt.

Screenshot aus Visual Studio Code mit dem neuen Datenbankprojekt für AdventureWorksDW2022.

Ihre Projektstruktur sieht wie folgt aus:

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

Konfigurieren des Datenbankprojekts

  1. Klicken Sie mit der rechten Maustaste auf das Projekt, und wählen Sie "SQLPROJ-Datei bearbeiten" aus.

    Screenshot aus Visual Studio Code und dem Kontextmenü eines Datenbankprojekts. Die Option

  2. Überprüfen Sie, ob die Datei die neueste Version von Microsoft enthält. Build.SQL SDK. Zum Beispiel ändern Sie in der Datei .sqlproj die Version für Microsoft.Build.Sql in 2.2.0.

       <Sdk Name="Microsoft.Build.Sql" Version="2.2.0" />
    
  3. Überprüfen Sie die neueste Version von Microsoft.SqlServer.Dacpacs.FabricDw, und fügen Sie einen Verweis innerhalb des Project/ItemGroup XML-Knotens hinzu. Beispiel:

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

    So sollte Ihr Datenbankprojekt für ein Lager nach den Updates aussehen.

     <?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. Speichern Sie Ihre .sqlproj Datei. Wählen Sie auf der Eingabeaufforderung, um Ihr Datenbankprojekt neu zu laden, "Ja" aus.

Von Bedeutung

Das Fabric Data Warehouse Team veröffentlicht häufig neue Versionen von NuGet-Paketen. Da sich die Standardversionswerte in der .sqlproj-Datei im Laufe der Zeit ändern können, aktualisieren Sie sie in Ihrem lokalen Projekt, um weiterhin mit den neuesten über NuGet für Microsoft.SqlServer.Dacpacs.FabricDw verfügbaren Versionen übereinzustimmen.

Hinzufügen oder Aktualisieren von Datenbankobjekten

Sie können Datenbankobjekte wie Tabellen, Ansichten, gespeicherte Prozeduren und Funktionen innerhalb Ihres Lagerprojekts definieren oder ändern.

Unter dem Ordner für ein Schema, z. B. dbo, können Sie die T-SQL-Definitionen von Objekten in Ihrem Datenlager hinzufügen, löschen oder ändern. Um ein vorhandenes Objekt zu ändern, öffnen Sie die entsprechende .sql Datei, und aktualisieren Sie die Definition nach Bedarf.

Wenn Sie das Projekt erstellen, werden alle neuen und aktualisierten Objekte überprüft und in die generierte dacpac-Datei in {project folder location}/bin/debug/{project name}.dacpac der Datei eingeschlossen.

Änderungen, die hier vorgenommen wurden, sind nur für das Datenbankprojekt vorgesehen und werden in Microsoft Fabric erst angezeigt, wenn Sie Ihr Projekt Build und Publish.

Erstellen und Überprüfen des Projekts

  1. Öffne das Datenbankprojekt, falls es noch nicht geöffnet ist.

  2. Rechtsklicke auf das Projekt und wähle Build, um das Datenbankprojekt zu erstellen.

    Screenshot aus Visual Studio Code mit der Option

  3. Die Erstellung sollte erfolgreich sein. Beheben Sie alle Fehler, die auf den Nachrichten im Ausgang des Build-Events basieren.

Hinweis

Derzeit muss dein Standard-Terminal in Visual Studio Code PowerShell sein, damit der Build-Prozess in der Database Projects-Erweiterung erfolgreich ist. In der Befehlspalette wählen Sie Terminal: Wählen Sie Standardprofil und dann PowerShell.

In Fabric Data Warehouse veröffentlichen

Nachdem Sie Ihr Projekt erstellt haben, veröffentlichen Sie es in Ihrem Ziellager. Die Veröffentlichung erstellt ein Skript, um den Unterschied zwischen dem Datenbankprojekt und dem tatsächlichen Lager zu beheben, und führt ein Skript aus, um das Lager mit dem Projekt abzugleichen. Du kannst das kompilierte Modell des Warehouse-Schemas in einer .dacpac-Datei in ein Ziel-Warehouse bereitstellen.

  1. Klicken Sie mit der rechten Maustaste auf das Projekt, und wählen Sie "Veröffentlichen" aus.

  2. Wählen Sie "Auf einem vorhandenen SQL-Server veröffentlichen" aus.

  3. Wählen Sie zum Laden des zu ladenden Veröffentlichungsprofils die Option "Profil nicht verwenden" aus, wenn Sie es zum ersten Mal veröffentlichen.

    • Speichere Optionen zum Veröffentlichen deines Lagers in einem Publicify-Profil. Eine Visual Studio Code-Benachrichtigung gibt dir die Möglichkeit, die verwendeten Veröffentlichungsoptionen in einer Profildatei zu speichern.
    • Verwenden Sie das Veröffentlichungsprofil zukünftig wieder, wenn Sie Ihr Projekt in Ihrem Warehouse veröffentlichen. Möglicherweise haben Sie unterschiedliche Profiloptionen für verschiedene Lagerstätten oder für unterschiedliche Umgebungen in Ihren Entwicklungs-/Test-/Akzeptanz-/Produktionsentwicklungsumgebungen.
  4. Wählen Sie in der Liste das Fabric-Data Warehouse Verbindungsprofil aus.

  5. Wählen Sie den Namen des Ziellagers aus.

  6. In der Option "Aktion auswählen " können Sie entweder Skript generieren , um das Skript vor der Veröffentlichung zu überprüfen oder projekt in einem Lager zu veröffentlichen. - Wenn Sie Änderungen zum ersten Mal bereitstellen möchten, generieren Sie sorgfältig das Skript und überprüfen Sie das resultierende T-SQL, um es auf das Ziellager anzuwenden. Das Erstellen des Skripts ändert das Ziellager nicht.

    • Wenn du Veröffentlichen wählst, schreibt der Prozess Änderungen an dein Ziellager.

    Screenshot aus Visual Studio Code mit der Deploy dacpac: In progress notification.

  7. Wählen Sie in der Benachrichtigung Möchten Sie die Einstellungen in einem Profil (.publish.xml) speichern?, wählen Sie Ja aus, und speichern Sie Ihre Veröffentlichungsprofiloptionen für das nächste Mal, wenn Sie veröffentlichen müssen.

Wichtige Bereitstellungseinstellungen für Lagerprojekte

Wenn Sie Datenbankprojekte auf Fabric Data Warehouse bereitstellen, steuern mehrere Einstellungen Schemaänderungen und können die Datensicherheit beeinträchtigen. Verwenden Sie vorsichtig.

  • BlockOnPossibleDataLoss

    • Funktionsweise: Verhindert die Bereitstellung, wenn das Risiko eines Datenverlusts besteht (z. B. ablegen einer Spalte oder Tabelle, die Daten enthält).
    • Empfehlung: In der Produktionsumgebung immer auf True einstellen, um kritische Daten zu schützen.
    • Vorsicht: Wenn es auf False festgelegt wird, ist die Bereitstellung auch dann möglich, wenn Daten verloren gehen können. Verwenden Sie nur in kontrollierten Umgebungen (z. B. Dev/Test).
  • DropObjectsNotInSource

    • Funktionsweise: Legt Objekte in der Zieldatenbank ab, die in der Projektquelle nicht vorhanden sind.
    • Empfehlung: Verwenden Sie Entwicklungs-/Testumgebungen, um übrig gebliebene Objekte zu bereinigen.
    • Vorsicht: Die Verwendung DropObjectsNotInSource in der Produktion kann wichtige Objekte und Daten löschen. Überprüfen Sie, bevor Sie dies aktivieren.
  • PreDeploy für das Skript für die Vorabbereitstellung

    • Funktion
      • Führt benutzerdefinierte SQL-Skripte vor der Schema-Bereitstellung aus.
    • Gebräuchliche Verwendungen
      • Archiven oder Sichern von Daten vor dem Ablegen von Tabellen
      • Deaktivieren von Einschränkungen oder Triggern vorübergehend
      • Bereinigen von Legacyobjekten
    • Vorsicht
      • Stellen Sie sicher, dass Skripte idempotent sind und keine Schemaänderungen einführen, die mit der Bereitstellung kollidieren.

Tip

Wenn ein Bereitstellungsprozess oder eine Abfrage idempotent ist, kann man den Befehl mehrfach ausführen, ohne logische Probleme oder Fehler zu verursachen. Ein idempotenter Befehl ist außerdem so geschrieben, dass er auf mehrere Datenbanken bereitgestellt werden kann, ohne deren Status vorher bestimmen zu müssen.

  • PostDeploy für das Post-Deployment-Skript

    • Funktionsweise: Führt benutzerdefinierte SQL-Skripts nach der Schemabereitstellung aus.
    • Häufig verwendete Verwendungen:
      • Saat-Nachschlage- oder Referenzdaten
      • Erneutes Aktivieren von Einschränkungen oder Triggern
      • Einsatzprotokollverlauf
    • Vorsicht: Vermeiden Sie schwere Arbeiten an großen Tischen in der Produktion. Stellen Sie sicher, dass Skripte bei Bedarf mehrfach ausgeführt werden können.

Von Bedeutung

Überprüfen Sie vor der Veröffentlichung immer Bereitstellungsskripts und -einstellungen. Testen Sie zuerst in Entwicklungs- oder Testumgebungen, um unbeabsichtigten Datenverlust zu verhindern. Weitere Informationen und Beispiele finden Sie unter Skripts vor der Bereitstellung und nach der Bereitstellung für Fabric Data Warehouse.

Veröffentlichung überprüfen

Verbinde dich mit deinem Warehouse und skripte die sich geänderten Objekte oder verifiziere, indem du Systemkatalogobjekte ausführst.