適用於:✅ Microsoft Fabric 中的倉庫
學習如何在 Visual Studio Code 中為 Fabric 的 Data Warehouse 建立資料庫專案。 你建立一個新專案,定義結構物件,建置並驗證專案,然後發佈到你的倉庫。
這很重要
這項功能目前處於預覽階段。
先決條件
開始之前,請確定您:
- 具有參與者或更高權限的使用者,可以存取 Fabric 工作區內的現有倉儲項目。
- 要建立新的樣本倉庫,請參見 在 Microsoft Fabric 建立樣本倉庫。
- 在你的工作站上安裝 Visual Studio Code。
- 安裝 .NET SDK 以建立並發佈資料庫專案。
- 安裝兩個Visual Studio Code擴充功能:SQL Database Projects 以及 SQL Server (mssql)。
- 你可以直接在 Visual Studio Code 市集內搜尋「SQL Database Projects」或「SQL Server (mssql)」來安裝所需的擴充功能。
建立新的資料庫專案
你可以從零開始建立資料庫專案,也可以從現有倉庫中建立。
選項一:從 Visual Studio Code 的指令面板建立一個新的資料庫專案
開啟Visual Studio Code。
開啟「指令面板
Ctrl+Shift+P」(或Cmd+Shift+P在 Mac 上)。搜尋 新的資料庫專案。
選擇 資料庫專案類型作為 SQL Server 資料庫。
選擇專案名稱,然後選取本機資料夾位置。
選擇Synapse Data Warehouse 在 Microsoft Fabric作為目標平台。
出現提示時,針對 SDK 樣式專案選取 [ 是 (建議) ]。
這很重要
僅支援 SDK 風格 專案,Fabric Data Warehouse 支援。
選取 [ 是 ] 以回答問題 您要 將 SQL 專案組建設定為此資料夾的預設組建組態嗎?
選取 [ 是 ] 以信任此資料夾中檔案的作者。
選項 2:從資料庫專案延伸模組建立新的資料庫專案
在Visual Studio Code中,從 Activity Bar 選擇 Database Projects 擴充功能圖示。
在 [資料庫專案 ] 窗格中,選取 [ 新建]。
選擇 資料庫專案類型作為 SQL Server 資料庫。
選擇專案名稱,然後選取本機資料夾位置。
選擇Synapse Data Warehouse 在 Microsoft Fabric作為目標平台。
出現提示時,針對 SDK 樣式專案選取 [ 是 (建議) ]。 僅支援 SDK 風格 專案,Fabric Data Warehouse 支援。
選取 [ 是 ] 以回答問題 您要 將 SQL 專案組建設定為此資料夾的預設組建組態嗎?
選取 [ 是 ] 以信任此資料夾中檔案的作者。
選項 3:從現有倉庫建立資料庫專案
首先,在 Visual Studio Code 中為你的倉庫建立一個新的連線設定檔。
- 請從活動列中選擇Visual Studio Code中的SQL Server擴充功能。
- 提供 設定檔名稱。 選擇 Parameters (參數)。
- 輸入 伺服器名稱。 在 Fabric 入口網站中,於您倉庫的 設定 中選取 SQL 連線字串,然後複製提供的連線字串。 這個字串是你倉庫的伺服器名稱,與 SQL 分析端點不同。 看起來像
<server unique ID>.datawarehouse.fabric.microsoft.com。 - 對於 認證類型,請使用 Microsoft Entra ID - Universal 支援多因子驗證。 用你的 Microsoft Entra ID 驗證。
- 請依預設或偏好提供其他資訊,並選擇 「連接」。
在Visual Studio Code中,從活動欄選擇 Database Projects 擴充功能圖示。
從
...] 窗格中選取選項按鈕,然後選擇 [從資料庫建立專案] 選項。
從現有的連線設定檔中選擇您的倉庫。
輸入專案名稱,並在工作站上選擇專案資料夾。
針對資料夾結構,選取 結構描述/物件型別 (建議)。
針對 [在專案中包含許可權],選取 [否 (預設)]。
針對 SDK 樣式專案,選取 [是 (建議)]。
選取 [ 是 ] 以回答問題 您要 將 SQL 專案組建設定為此資料夾的預設組建組態嗎?
Visual Studio Code 會從倉庫專案中擷取專案檔案。
成功解壓後,你會看到以下通知:「解壓專案檔案:成功。 已完成“。
選取 [ 是 ] 以信任此資料夾中檔案的作者。
倉庫的新資料庫專案
倉儲的新資料庫專案會顯示在 [SQL 資料庫專案] 功能表中。
您的專案結構如下所示:
| Project Name
├── Database References
├── SQLCMD Variables
├── .vscode/
└── schema/
├── Functions
├── Tables
└── Views
設定資料庫專案
以滑鼠右鍵按一下專案,然後選取 [編輯 .sqlproj 檔案]。
確認檔案中包含最新版本的 Microsoft。Build.SQL SDK。 例如,在
.sqlproj檔案中,將Microsoft.Build.Sql的版本變更為2.3.0。<Sdk Name="Microsoft.Build.Sql" Version="2.3.0" />請確認最新版本的 Microsoft.SqlServer.Dacpacs.FabricDw,並在 XML 節點
Project/ItemGroup中新增參考。 例如:<PackageReference Include="Microsoft.SqlServer.Dacpacs.FabricDw" Version="170.0.4"> <DatabaseVariableLiteralValue>master</DatabaseVariableLiteralValue> <SuppressMissingDependenciesErrors>False</SuppressMissingDependenciesErrors> </PackageReference>這很重要
如果你在未加入
DatabaseVariableLiteralValue中繼資料的情況下新增套件參考,專案仍可成功建置,但sqlpackage和 Script 動作可能會在你的程式碼一旦參考sys結構描述中的物件(例如sys.views)時失敗。 在這種情況下,你會看到以下錯誤: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.這是更新後倉庫的資料庫專案的外觀。
<?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>儲存您的
.sqlproj檔案。 在重新載入資料庫專案的提示上,選取 [ 是]。
這很重要
Fabric Data Warehouse 團隊經常釋出新版本的 NuGet 套件。 由於 .sqlproj 檔案中的預設版本值會隨時間變動,請在本機專案中更新這些值,以與 NuGet 上 Microsoft.SqlServer.Dacpacs.FabricDw 提供的最新版本保持一致。
新增或更新資料庫物件
您可以在倉儲專案中定義或修改資料庫物件,例如表格、視圖、預存程序及函數。
例如 dbo,在結構描述的資料夾下,新增或刪除或變更倉儲中物件的 T-SQL 定義。 若要修改現有物件,請開啟其對應 .sql 的檔案,並視需要更新定義。
當您建置專案時,所有新的和更新的物件都會經過驗證,並包含在檔案中 {project folder location}/bin/debug/{project name}.dacpac 產生的 dacpac 檔案中。
在這裡所做的變更僅限於資料庫專案,必須在你建置和發佈專案後才會反映在 Microsoft Fabric 中。
建置和驗證專案
如果資料庫專案還沒開啟,請打開它。
右鍵點擊專案,選擇 建置 以建立資料庫專案。
組建應該會成功。 根據建置事件輸出中提供的訊息修正任何錯誤。
備註
目前,若要讓 Database Projects 擴充功能中的建置程序成功,你的 Visual Studio Code 預設終端機必須是 PowerShell。 在 指令面板中,選擇 終端機:選擇預設設定檔,然後選擇 PowerShell。
發佈至 Fabric Data Warehouse
建置專案後,將其發佈到目標倉庫。 發佈會建立指令碼來解決資料庫專案與實際倉庫之間的差異,並執行指令碼以使倉庫與專案相符。 你可以將倉庫結構的已編譯模型以 .dacpac 檔案部署到目標倉庫。
以滑鼠右鍵按一下專案,然後選取 [發佈]。
選擇 [發佈至現有的 SQL Server]。
針對選取要載入的發佈設定檔,第一次發佈時,選擇不使用設定檔。
- 儲存發佈倉庫的選項到 發佈設定檔。 Visual Studio Code 通知會讓你選擇將先前使用的發佈選項儲存到發佈設定檔。
- 未來將專案發佈到您的倉庫時,請再次使用此發佈設定檔。 對於不同的倉儲,或開發/測試/驗收/正式作業開發環境中的不同環境,您可能有不同的設定檔選項。
從列表中選擇 Fabric Data Warehouse 連線設定檔。
選擇目標倉庫的名稱。
在 選擇動作 選項中,您可以 產生指令碼以 在發佈之前檢閱指令碼,或將專案發佈至倉儲。 - 第一次想要部署變更時,請仔細 產生腳本 並檢視產生的 T-SQL 以套用到目標倉庫。 產生腳本不會改變目標倉庫。
- 如果你選擇 發佈,流程會寫入你的目標倉庫變更。
在通知 [是否要將設定儲存在設定檔中 (.publish.xml)?]上,選擇 [是 ],然後儲存您的發佈設定檔選項,以備下次需要發佈時使用。
倉儲專案的重要部署設定
當你部署資料庫專案到Fabric Data Warehouse時,有幾個設定會控制結構變更,並可能影響資料安全。 請小心使用。
BlockOnPossibleDataLoss- 它的用途: 若存在資料遺失風險(例如遺失包含資料的欄位或資料表),則可防止部署。
-
推薦: 在生產環境中總是設定為 ,
True以保護關鍵資料。 -
小心: 設定為
False允許部署,儘管資料可能會遺失。 只在受控環境(例如開發/測試)中使用。
DropObjectsNotInSource- 它的用途: 將專案來源 中不存在 的物件丟棄目標資料庫。
- 推薦: 在開發或測試環境中用來清理剩餘的物件。
-
小心: 在生產環境中使用
DropObjectsNotInSource可能會 刪除重要的物件和資料。 啟用前請再三確認。
PreDeploy關於 部署前腳本-
作用
- 在架構部署 前 執行自訂 SQL 腳本。
-
常見用途
- 在丟棄資料表前先封存或備份資料
- 暫時停用限制或觸發器
- 清理遺留物件
-
警告
- 確保指令碼具有冪等性,且不會引入與部署衝突的綱要變更。
-
作用
Tip
當部署流程或查詢是 冪元時,你可以多次執行該指令而不會導致邏輯問題或失敗。 冪等指令的撰寫方式也使其能部署到多個資料庫,無需預先判定其狀態。
PostDeploy用於 部署後的腳本- 它的用途: 架構部署 後 執行自訂 SQL 腳本。
-
常見用途:
- 種子查詢或參考資料
- 重新啟用約束或觸發條件
- 記錄部署歷史
- 注意: 避免在正式環境中對大型資料表執行高負載操作。 確保腳本在需要時能安全執行多次。
這很重要
發佈前務必檢視部署腳本和設定。 建議先在開發或測試環境中測試,以防止意外的資料遺失。 欲了解更多資訊與範例,請參閱部署前與部署後腳本Fabric Data Warehouse。
驗證發佈
連接到您的倉庫,並為已變更的物件產生指令碼,或透過執行系統目錄物件進行驗證。
相關內容
- 開發和部署工作流程
- 開發並部署跨資料庫依賴關係
- 開始使用 Fabric 部署管線