共用方式為


在 Visual Studio Code 中開發倉儲專案

適用於:Microsoft Fabric 中的✅ 資料庫

瞭解如何在 Visual Studio Code 中設定 Fabric Data Warehouse 的資料庫專案。 您將建立新專案、定義結構描述物件、建置和驗證專案,以及將它發佈至倉儲。

先決條件

開始之前,請確定您:

  • 具有參與者或更高權限的使用者,可以存取 Fabric 工作區內的現有倉儲項目。
  • 在您的工作站上安裝 Visual Studio Code
  • 安裝 .NET SDK 以建置和發佈資料庫專案。
  • 安裝兩個 Visual Studio Code 延伸模組:SQL 資料庫專案SQL Server (mssql)。
    • 您可以搜尋「SQL 資料庫專案」或「SQL Server (mssql)」,直接從 Visual Studio Code 市集中安裝所需的延伸模組。

建立新的資料庫專案

您可以從頭開始建立資料庫專案,或是從現有的資料倉儲進行建立。

選項 1:從 Visual Studio Code 中的命令面板建立新的資料庫專案

  1. 開啟 Visual Studio Code

  2. 開啟「指令面板Ctrl+Shift+P」(或Cmd+Shift+P在 Mac 上)。

  3. 搜尋 新的資料庫專案

  4. 選取 [資料庫專案類型] 作為 [SQL Server 資料庫]。

  5. 選擇專案名稱,然後選取本機資料夾位置。

  6. 選擇 Microsoft Fabric 中的 Synapse Data Warehouse 作為目標平臺。

  7. 出現提示時,針對 SDK 樣式專案選取 [ 是 (建議) ]。

    這很重要

    Fabric Data Warehouse 僅支援 SDK 樣式 專案。

  8. 選取 [ ] 以回答問題 您要 將 SQL 專案組建設定為此資料夾的預設組建組態嗎?

  9. 選取 [ ] 以信任此資料夾中檔案的作者。

選項 2:從資料庫專案延伸模組建立新的資料庫專案

  1. 在 Visual Studio Code 中,從活動列中選擇 [資料庫專案延伸模組] 圖示。

  2. [資料庫專案 ] 窗格中,選取 [ 新建]。

    Visual Studio Code 的螢幕擷取畫面,顯示 [資料庫專案] 延伸模組窗格和 [建立新建] 按鈕。

  3. 選取 [資料庫專案類型] 作為 [SQL Server 資料庫]。

  4. 選擇專案名稱,然後選取本機資料夾位置。

  5. 選擇 Microsoft Fabric 中的 Synapse Data Warehouse 作為目標平臺。

  6. 出現提示時,針對 SDK 樣式專案選取 [ 是 (建議) ]。 Fabric Data Warehouse 僅支援 SDK 樣式 專案。

  7. 選取 [ ] 以回答問題 您要 將 SQL 專案組建設定為此資料夾的預設組建組態嗎?

  8. 選取 [ ] 以信任此資料夾中檔案的作者。

選項 3:從現有倉庫建立資料庫專案

  1. 首先,在 Visual Studio Code 中為您的倉儲建立新的連線設定檔。

    1. 在 Visual Studio Code 的 [功能表列] 中選取 SQL Server 擴充功能。
    2. 提供 設定檔名稱。 選擇 Parameters (參數)。
    3. 提供 伺服器名稱。 在 Fabric 入口網站中,於倉儲的 [ 設定 ] 中,擷取 SQL 端點 字串。 (這與 SQL 分析端點不同。看起來像 <server unique ID>.datawarehouse.fabric.microsoft.com. 這是 伺服器名稱
    4. 針對 [驗證類型],請使用 Microsoft Entra ID - 具有 MFA 支援的通用。 使用您的 Microsoft Entra ID 進行驗證。
    5. 提供其他資訊作為預設資訊或所需資訊,然後選取 [連線]。
  2. 在 Visual Studio Code 中,從活動列中選擇 [資料庫專案 延伸模組] 圖示。

  3. ...] 窗格中選取選項按鈕,然後選擇 [從資料庫建立專案] 選項。

    Visual Studio Code 的螢幕擷取畫面,顯示 [從資料庫建立專案] 選項。

  4. 從現有的連線設定檔中選擇您的倉庫。

  5. 提供專案名稱,並在工作站上選擇專案資料夾。

  6. 針對資料夾結構,選取 結構描述/物件型別 (建議)。

  7. 針對 [在專案中包含許可權],選取 [否 (預設)]。

  8. 針對 SDK 樣式專案,選取 [是 (建議)]。

  9. 選取 [ ] 以回答問題 您要 將 SQL 專案組建設定為此資料夾的預設組建組態嗎?

  10. Visual Studio Code 會從倉儲專案擷取專案檔案。

    Visual Studio Code 的螢幕擷取畫面,顯示擷取專案檔案進度通知。

  11. 成功擷取後,您會看到下列通知:「擷取專案檔案:成功。 已完成“。

  12. 選取 [ ] 以信任此資料夾中檔案的作者。

倉庫的新資料庫專案

倉儲的新資料庫專案會顯示在 [SQL 資料庫專案] 功能表中。

Visual Studio Code 的螢幕擷取畫面,顯示 AdventureWorksDW2022 的新資料庫專案。

您的專案結構如下所示:

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

設定資料庫專案

  1. 以滑鼠右鍵按一下專案,然後選取 [編輯 .sqlproj 檔案]。

    來自 Visual Studio Code 及資料庫專案內容功能表的螢幕擷取畫面。已反白顯示 [編輯 sqlproj 檔案] 選項。

  2. 確認檔案中是否存在最新版本的 Microsoft.Build.Sql SDK。 例如,在檔案中 .sqlproj ,將 的 Microsoft.Build.Sql 版本變更為 2.0.0

       <Sdk Name="Microsoft.Build.Sql" Version="2.0.0" />
    
  3. 請確認最新版本的 Microsoft.SqlServer.Dacpacs.FabricDw,並在 XML 節點Project/ItemGroup中新增參考。 例如:

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

    這是更新後倉庫的資料庫專案的外觀。

     <?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. 儲存您的 .sqlproj 檔案。 在重新載入資料庫專案的提示上,選取 [ ]。

這很重要

Fabric Data Warehouse 小組經常發行新版本的 NuGet 套件。 由於檔案中的 .sqlproj 預設版本值可能會隨著時間而變更,因此請務必在本機專案中更新它們,以與 NuGet for Microsoft.SqlServer.Dacpacs.FabricDw 提供的最新版本保持一致。

新增或更新資料庫物件

您可以在倉儲專案中定義或修改資料庫物件,例如表格、視圖、預存程序及函數。

例如 dbo,在結構描述的資料夾下,新增或刪除或變更倉儲中物件的 T-SQL 定義。 若要修改現有物件,請開啟其對應 .sql 的檔案,並視需要更新定義。

當您建置專案時,所有新的和更新的物件都會經過驗證,並包含在檔案中 {project folder location}/bin/debug/{project name}.dacpac 產生的 dacpac 檔案中。

此處所做的變更只會針對資料庫專案,而且在您 建置發佈 專案之前,不會反映在 Microsoft Fabric 中。

建置和驗證專案

  1. 如果尚未開啟資料庫專案,請開啟資料庫專案。

  2. 以滑鼠右鍵按一下專案,然後選取 建置 以 建置資料庫專案。

    Visual Studio Code 的螢幕擷取畫面,顯示建置資料庫專案的選項。

  3. 建置應該會成功。 根據建置事件輸出中提供的訊息修正任何錯誤。

備註

目前,您的 Visual Studio Code 預設終端機必須是 PowerShell ,資料庫專案延伸模組中的建置程式才能成功。 在 命令面板中,選擇 終端機:選取預設設定檔,然後選取 PowerShell

發佈至 Fabric Data Warehouse

建置專案後,將其發佈到目標倉庫。 發佈會建立指令碼來解決資料庫專案與實際倉庫之間的差異,並執行指令碼以使倉庫與專案相符。 .dacpac 檔案中倉儲結構描述的編譯模型可以部署至目標倉儲。

  1. 以滑鼠右鍵按一下專案,然後選取 [發佈]。

  2. 選擇 [發佈至現有的 SQL Server]。

  3. 針對選取要載入的發佈設定檔,第一次發佈時,選擇不使用設定檔

    • 您可以將發佈數據倉庫的選項儲存到 發佈設定檔。 完成後,您會在 Visual Studio Code 的通知中看到一個選項,將剛才使用的發佈選項儲存至發布設定檔案。
    • 您將來將專案發佈至倉儲時,可以重複使用發佈設定檔。 對於不同的倉儲,或開發/測試/驗收/正式作業開發環境中的不同環境,您可能有不同的設定檔選項。
  4. 從清單中選擇 Fabric Data Warehouse 連線設定檔。

  5. 選擇目標倉庫的名稱。

  6. 選擇動作 選項中,您可以 產生指令碼以 在發佈之前檢閱指令碼,或將專案發佈至倉儲。

    • 第一次想要部署變更時,您應該先仔細 產生腳本,並檢閱將要套用至目標倉儲的 T-SQL。 不會對目標倉庫進行任何變更。
    • 如果您選擇 Publish (發佈),變更將會寫入您的目標倉儲。

    Visual Studio Code 的螢幕擷取畫面,顯示 [部署 dacpac:進行中] 通知。

  7. 在通知 [是否要將設定儲存在設定檔中 (.publish.xml)?]上,選擇 [是 ],然後儲存您的發佈設定檔選項,以備下次需要發佈時使用。

倉儲專案的重要部署設定

當將資料庫專案部署到 Fabric Data Warehouse 時,有多項設定會控制結構變更,並可能影響資料安全。 請小心使用

  • BlockOnPossibleDataLoss

    • 它的用途: 若存在資料遺失風險(例如遺失包含資料的欄位或資料表),則可防止部署。
    • 推薦: 在生產環境中總是設定為 , True 以保護關鍵資料。
    • 小心: 設定為 False 允許部署,儘管資料可能會遺失。 只在受控環境(例如開發/測試)中使用。
  • DropObjectsNotInSource

    • 它的用途: 將專案來源 中不存在 的物件丟棄目標資料庫。
    • 推薦: 在開發或測試環境中用來清理剩餘的物件。
    • 小心: 在生產環境中使用 DropObjectsNotInSource 可能會 刪除重要的物件和資料。 啟用前請再三確認。
  • Pre-Deployment Scripts

    • 它的用途: 在架構部署 執行自訂 SQL 腳本。
    • 常見用途:
      • 在丟棄資料表前先封存或備份資料
      • 暫時停用限制或觸發器
      • 清理遺留物件
    • 小心: 確保腳本是 冪元的 ,且不會引入與部署衝突的結構變更。

小提示

當部署流程是 冪元時,它可以多次執行而不造成問題,且你可以部署到多個資料庫,而不需要預先決定它們的狀態。

  • Post-Deployment Scripts

    • 它的用途: 架構部署 執行自訂 SQL 腳本。
    • 常見用途:
      • 種子查詢或參考資料
      • 重新啟用約束或觸發條件
      • 記錄部署歷史
    • 小心: 避免在生產過程中對大型表格進行繁重操作;確保腳本在需要時能安全執行多次。

這很重要

發佈前務必檢視部署腳本和設定。 先在開發或測試環境中測試,以防止意外的資料遺失。

驗證發佈

連接到您的資料倉儲,並撰寫已變更的物件指令碼,或透過執行系統目錄物件進行驗證。