Condividi tramite


Sviluppare progetti di magazzino in Visual Studio Code

si applica a:✅ Magazzino di dati in Microsoft Fabric

Informazioni su come configurare un progetto di database per Fabric Data Warehouse in Visual Studio Code. Si creerà un nuovo progetto, si definiranno gli oggetti dello schema, si compilerà e si convaliderà il progetto e lo si pubblicherà nel magazzino.

Prerequisiti

Prima di iniziare, assicurarsi di:

  • Avere accesso a un elemento Warehouse esistente all'interno di un'area di lavoro Fabric con autorizzazioni di tipo Contributor o superiore.
  • Installare Visual Studio Code nella workstation.
  • Installare .NET SDK per compilare e pubblicare progetti di database.
  • Installare due estensioni di Visual Studio Code: Progetti di database SQL e SQL Server (mssql).Install two Visual Studio Code extensions: SQL Database Projects and SQL Server (mssql).
    • È possibile installare le estensioni necessarie direttamente dal marketplace di Visual Studio Code cercando "Progetti di database SQL" o "SQL Server (mssql)".

Creare un nuovo progetto di database

È possibile creare un progetto di database da zero o da un warehouse esistente.

Opzione 1: Creare un nuovo progetto di database dal riquadro comandi in Visual Studio Code

  1. Aprire Visual Studio Code.

  2. Aprire il riquadro comandi (Ctrl+Shift+P o Cmd+Shift+P su Mac).

  3. Cercare Progetti di database: Nuovo.

  4. Selezionare Tipo di progetto di database come database SQL Server.

  5. Scegliere un nome di progetto e selezionare il percorso della cartella locale.

  6. Scegliere Synapse Data Warehouse in Microsoft Fabric come piattaforma di destinazione.

  7. Quando richiesto, selezionare Sì (scelta consigliata) per un progetto in stile SDK.

    Importante

    Solo i progetti in stile SDK sono supportati per Fabric Data Warehouse.

  8. Selezionare alla domanda Vuoi configurare la compilazione del progetto SQL come configurazione di compilazione predefinita per questa cartella?

  9. Selezionare per considerare attendibili gli autori dei file in questa cartella.

Opzione 2: Creare un nuovo progetto di database dall'estensione Progetti di database

  1. In Visual Studio Code scegliere l'icona dell'estensione Progetti di database dalla barra delle attività.

  2. Nel riquadro Progetti di database selezionare Crea nuovo.

    Schermata di Visual Studio Code che mostra il pannello dell'estensione Database Projects e il pulsante Crea nuovo.

  3. Selezionare Tipo di progetto di database come database SQL Server.

  4. Scegliere un nome di progetto e selezionare il percorso della cartella locale.

  5. Scegliere Synapse Data Warehouse in Microsoft Fabric come piattaforma di destinazione.

  6. Quando richiesto, selezionare Sì (scelta consigliata) per un progetto in stile SDK. Solo i progetti in stile SDK sono supportati per Fabric Data Warehouse.

  7. Selezionare alla domanda Vuoi configurare la compilazione del progetto SQL come configurazione di compilazione predefinita per questa cartella?

  8. Selezionare per considerare attendibili gli autori dei file in questa cartella.

Opzione 3: Creare un progetto di database da un warehouse esistente

  1. Creare prima di tutto un nuovo profilo di connessione per il magazzino in Visual Studio Code.

    1. Selezionare l'estensione SQL Server in Visual Studio Code dalla barra delle attività.
    2. Specificare un nome profilo. Scegliere Parametri.
    3. Specificare il nome del server. Nel portale di Fabric, nelle Impostazioni del tuo magazzino, recupera la stringa dell'endpoint SQL. Questo è diverso dall'endpoint di analisi SQL. <server unique ID>.datawarehouse.fabric.microsoft.com Sembra così. Si tratta del nome del server.
    4. Per Tipo di autenticazione, usare Microsoft Entra ID - Universal con supporto MFA. Eseguire l'autenticazione con l'ID Microsoft Entra.
    5. Specificare altre informazioni come predefinite o desiderate e selezionare Connetti.
  2. In Visual Studio Code scegliere l'icona dell'estensione Progetti di database dalla barra delle attività.

  3. Selezionare il pulsante ... opzioni nel riquadro Progetti di database e scegliere l'opzione Crea progetto da database .

    Screenshot di Visual Studio Code che mostra l'opzione Crea progetto da database.

  4. Scegliere il magazzino dai profili di connessione esistenti.

  5. Specificare un nome di progetto e scegliere una cartella di progetto nella workstation.

  6. Per la struttura di cartelle selezionare Schema/Tipo di oggetto (scelta consigliata).

  7. Per Includi autorizzazioni nel progetto selezionare No (impostazione predefinita).

  8. Per il progetto in stile SDK selezionare Sì (scelta consigliata).

  9. Selezionare alla domanda Vuoi configurare la compilazione del progetto SQL come configurazione di compilazione predefinita per questa cartella?

  10. Visual Studio Code estrae i file di progetto dal progetto warehouse.

    Screenshot di Visual Studio Code che mostra la notifica di avanzamento dell'estrazione dei file di progetto.

  11. Al termine dell'estrazione, verrà visualizzata la notifica seguente: "Estrarre i file di progetto: Succeeded. Completato".

  12. Selezionare per considerare attendibili gli autori dei file in questa cartella.

Nuovo progetto di database per il magazzino

Il nuovo progetto di database per il warehouse viene visualizzato nel menu Progetti di database SQL.

Screenshot di Visual Studio Code che mostra il nuovo progetto di database per AdventureWorksDW2022.

La struttura del progetto è simile alla seguente:

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

Configurare il progetto di database

  1. Fare clic con il pulsante destro del mouse sul progetto e scegliere Modifica file con estensione sqlproj.

    Screenshot di Visual Studio Code e del menu di scelta rapida di un progetto di database. L'opzione Modifica il file sqlproj è evidenziata.

  2. Verificare che nel file sia presente la versione più recente di Microsoft.Build.Sql SDK. Ad esempio, nel file .sqlproj, modificare la versione di Microsoft.Build.Sql in 2.0.0.

       <Sdk Name="Microsoft.Build.Sql" Version="2.0.0" />
    
  3. Verificare la versione più recente di Microsoft.SqlServer.Dacpacs.FabricDw e aggiungere un riferimento all'interno del Project/ItemGroup nodo XML. Per esempio:

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

    Questo è l'aspetto del progetto di database per un warehouse dopo gli aggiornamenti.

     <?xml version="1.0" encoding="utf-8"?>
     <Project DefaultTargets="Build">
       <Sdk Name="Microsoft.Build.Sql" Version="2.0.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. Salvare il .sqlproj file. Al prompt per ricaricare il progetto di database selezionare .

Importante

Il team di Fabric Data Warehouse rilascia spesso nuove versioni dei pacchetti NuGet. Poiché i valori di versione predefiniti nel .sqlproj file possono cambiare nel tempo, assicurarsi di aggiornarli nel progetto locale per rimanere allineati alle versioni più recenti disponibili in NuGet per Microsoft.SqlServer.Dacpacs.FabricDw.

Aggiungere o aggiornare oggetti di database

È possibile definire o modificare oggetti di database, ad esempio tabelle, viste, stored procedure e funzioni all'interno del progetto warehouse.

Nella cartella di uno schema, ad esempio dbo, aggiungere o eliminare o apportare modifiche alle definizioni T-SQL degli oggetti nel warehouse. Per modificare un oggetto esistente, aprire il file corrispondente .sql e aggiornare la definizione in base alle esigenze.

Quando si compila il progetto, tutti gli oggetti nuovi e aggiornati vengono convalidati e inclusi nel file dacpac generato nel {project folder location}/bin/debug/{project name}.dacpac file.

Le modifiche apportate sono solo al progetto di database e non vengono riflesse in Microsoft Fabric fino a quando non si compila e pubblica il progetto.

Compilare e convalidare il progetto

  1. Aprire il progetto di database se non è già aperto.

  2. Fare clic con il pulsante destro del mouse sul progetto e scegliere Compila per compilare il progetto di database.

    Screenshot di Visual Studio Code che mostra l'opzione Compilare il progetto di database.

  3. La compilazione dovrebbe andare a buon fine. Correggere eventuali errori in base ai messaggi forniti nell'output dell'evento di compilazione.

Annotazioni

Attualmente, il terminale predefinito di Visual Studio Code deve essere PowerShell affinché il processo di compilazione nell'estensione Progetti di database abbia esito positivo. Nel riquadro comandi scegliere Terminale: Selezionare Profilo predefinito, quindi selezionare PowerShell.

Pubblicare nel Data Warehouse di Fabric

Dopo aver compilato il progetto, pubblicarlo nel magazzino di destinazione. La pubblicazione crea uno script per risolvere la differenza tra il progetto di database e il warehouse effettivo ed esegue uno script per fare in modo che il warehouse corrisponda al progetto. Il modello compilato dello schema del warehouse in un file con estensione dacpac può essere distribuito in un warehouse di destinazione.

  1. Fare clic con il pulsante destro del mouse sul progetto e scegliere Pubblica.

  2. Scegliere Pubblica in un server SQL esistente.

  3. Per Selezionare il profilo di pubblicazione da caricare, la prima volta che si pubblica scegliere Non usare il profilo.

    • È possibile salvare le opzioni per la pubblicazione del warehouse in un profilo di pubblicazione. Al termine, apparirà una notifica in Visual Studio Code che ti permetterà di salvare le opzioni di pubblicazione appena usate in un file di profilo di pubblicazione.
    • È possibile riutilizzare il profilo di pubblicazione in futuro quando si pubblica il progetto nel repository. È possibile avere opzioni di profilo diverse per i diversi warehouse o per ambienti diversi negli ambienti di sviluppo/test/accettazione/produzione.
  4. Scegliere il profilo di connessione di Fabric Data Warehouse dall'elenco.

  5. Scegliere il nome del magazzino di destinazione.

  6. Nell'opzione Scegli azione è possibile generare script per esaminare lo script prima della pubblicazione o pubblicare un progetto in un warehouse.

    • La prima volta che si vogliono distribuire le modifiche, è necessario Generare Script con attenzione ed esaminare il T-SQL risultante da applicare al magazzino dati di destinazione. Non vengono apportate modifiche al magazzino di destinazione.
    • Se si sceglie Pubblica, le modifiche verranno scritte nel magazzino di destinazione.

    Screenshot di Visual Studio Code che mostra la notifica Distribuisci dacpac: in corso.

  7. Nella notifica Salvare le impostazioni in un profilo (.publish.xml)?, scegliere e salvare le scelte del profilo di pubblicazione per la successiva pubblicazione.

Impostazioni di distribuzione importanti per i progetti warehouse

Quando si distribuiscono progetti di database in Fabric Data Warehouse, diverse impostazioni controllano le modifiche dello schema e possono influire sulla sicurezza dei dati. Usare con cautela.

  • BlockOnPossibleDataLoss

    • Che cosa fa: Impedisce la distribuzione se si verifica un rischio di perdita di dati, ad esempio l'eliminazione di una colonna o di una tabella che contiene dati.
    • Raccomandazione: Impostare sempre su True nell'ambiente di produzione per proteggere i dati critici.
    • Cautela: Impostandolo su False permette la distribuzione anche se i dati possono andare persi. Usare solo in ambienti controllati ,ad esempio sviluppo/test.
  • DropObjectsNotInSource

    • Che cosa fa: Elimina gli oggetti nel database di destinazione che non sono presenti nell'origine del progetto.
    • Raccomandazione: Usare negli ambienti di sviluppo/test per pulire gli oggetti rimasti.
    • Cautela: L'uso nell'ambiente DropObjectsNotInSource di produzione può eliminare oggetti e dati importanti. Prima di abilitare, verificare due volte.
  • Pre-Deployment Scripts

    • Che cosa fa: Esegue script SQL personalizzati prima della distribuzione dello schema.
    • Usi comuni:
      • Archiviare o eseguire il backup dei dati prima di eliminare le tabelle
      • Disabilitare temporaneamente vincoli o trigger
      • Eliminare gli oggetti obsoleti
    • Cautela: Verificare che gli script siano idempotenti e non introdurre modifiche dello schema in conflitto con la distribuzione.

Suggerimento

Quando un processo di distribuzione è idempotente, può essere eseguito più volte senza causare problemi ed è possibile eseguire la distribuzione in più database senza dover predeterminare il proprio stato.

  • Post-Deployment Scripts

    • Che cosa fa: Esegue script SQL personalizzati dopo la distribuzione dello schema.
    • Usi comuni:
      • Consultazione di seme o dati di riferimento
      • Riabilitare vincoli o trigger
      • Cronologia di distribuzione dei log
    • Cautela: Evitare operazioni pesanti su tabelle di grandi dimensioni nell'ambiente di produzione; assicurarsi che gli script possano essere eseguiti più volte, se necessario.

Importante

Esaminare sempre gli script e le impostazioni di distribuzione prima della pubblicazione. Eseguire prima il test negli ambienti di sviluppo/test per evitare perdite di dati impreviste.

Verificare la pubblicazione

Connetti al magazzino e esegui una script sugli oggetti che sono stati modificati o verifica eseguendo oggetti del catalogo di sistema.