適用於:✅ Microsoft Fabric 中的倉庫
本文詳細說明了在 Microsoft Fabric 中設計資料表的關鍵概念。
在資料表中,會以邏輯方式將資料整理成資料列與資料行格式。 每個資料列都代表唯一的記錄,而每個資料行則代表記錄中的一個欄位。
判斷資料表類別
星型結構描述會將資料整理成事實資料表和維度資料表。 某些資料表用於在移至事實資料表或維度資料表之前整合或暫存資料。 當您設計資料表時,決定資料表資料是屬於事實資料表、維度資料表還是整合資料表。 此決策會通知適當的資料表結構。
事實資料表包含通常在交易系統中產生的量化資料,然後載入到資料倉儲中。 例如,零售業務每天會產生銷售交易,然後將資料載入到資料倉儲事實資料表進行分析。
維度資料表包含可能會變更但通常不常變更的屬性資料。 例如,客戶的名稱和地址會儲存在維度資料表中,而且只有在客戶的設定檔變更時才會更新。 若要降低大型事實資料表的大小,則不需將客戶的名稱和地址放在事實資料表的每個資料列中。 相反,事實資料表和維度資料表可以共用客戶識別碼。 查詢可以聯結這兩個資料表格,來關聯客戶的資料檔案和交易。
整合資料表提供了整合或暫存資料的位置。 例如,您可以將資料載入至暫存表格、對暫存中的資料執行轉換,然後將資料插入到生產資料表。
資料表會將資料儲存在 OneLake 中作為倉儲的一部分。 資料表和資料無論工作階段是否開啟,都會被持續保存。
倉庫中的桌子
若要顯示資料表的組織,您可以使用 fact、dim 或 int 作為資料表名稱的前置詞。 下表顯示 WideWorldImportersDW 範例資料倉儲的一些結構描述和資料表名稱。
| WideWorldImportersDW 來源資料表名稱 | 資料表類型 | 資料倉儲資料表名稱 |
|---|---|---|
| 市 | 維度 | wwi.DimCity |
| 訂單 | 事實 | wwi.FactOrder |
- 資料表名稱不能包含
/或\或者以.結尾。 - 你可以在 Fabric Data Warehouse 中建立工作階段範圍的暫存 (
#temp) 資料表。 更多資訊請參閱 Fabric Data Warehouse 中的臨時表格。
建立表格
針對倉儲,您可以建立資料表作為新的空白資料表。 您也可以建立資料表,並使用 select 陳述式的結果填入該資料表。 以下是用來建立資料表的 T-SQL 命令。
| T-SQL 陳述式 | 描述 |
|---|---|
| 建立表格 | 透過定義所有資料表資料行和選項來建立空白資料表。 |
| 建立資料表作為選取 | 將 select 陳述式的結果填入新資料表。 資料表的欄位和資料類型是基於 SELECT 語句的結果。 若要匯入資料,可以使用該陳述式從外部資料表中選擇資料。 |
此範例會建立具有兩個資料行的資料表:
CREATE TABLE MyTable (col1 int, col2 int );
Fabric Data Warehouse 支援在表格中加入 IDENTITY 欄位,以自動插入遞增的數字序列。 若要開始使用,請參閱在 Fabric Data Warehouse 中使用 IDENTITY 資料行。
綱要名稱
倉儲支援建立自訂結構描述。 就像 SQL Server 一樣,結構是將類似用途的物件分組的好方法。 下列程式碼會建立一個稱為的。
- 結構描述名稱不能包含
/或\或者以.結尾。
CREATE SCHEMA wwi;
資料類型
Microsoft Fabric 支援最常用的 T-SQL 資料型態。
- 欲了解更多資料型態,請參閱Fabric Data Warehouse<>中的
資料型別。 - 當你在倉庫中建立資料表時,請檢視 CREATE TABLE (Transact-SQL) 中的資料類型參考。
- 如需在 Warehouse 中建立資料表的指南,請參閱建立資料表。
定序
Fabric 資料倉儲是根據工作區的排序規則進行配置,預設為大小寫區分(CS)排序規則Latin1_General_100_BIN2_UTF8。 建立 新倉庫時,將使用工作區的排序規則。 更多資訊請參見 Data Warehouse collation。
支援的倉庫定序包括:
-
Latin1_General_100_BIN2_UTF8(預設) Latin1_General_100_CI_AS_KS_WS_SC_UTF8
您可以使用 REST API 建立具有非預設定序的倉儲。 如需詳細資訊,請參閱 如何:使用不區分大小寫 (CI) 定序建立倉儲。
一旦在資料庫建立期間設定了排序規則,所有後續物件(表、列等)都將繼承此預設排序規則。 建立倉庫後,無法變更對照設定。
統計資料
查詢最佳化工具會在建立執行查詢的計畫時,使用資料行層級統計資料。 若要改善查詢效能,取得個別資料行的統計資料非常重要,尤其是查詢聯結中使用的資料行。 倉儲支援自動建立統計資料。
統計更新不會自動進行。 新增或變更大量資料列之後,更新統計資料。 例如,在載入之後更新統計資料。 更多資訊請參閱
主要索引鍵、外部索引鍵和唯一索引鍵
對於倉庫,僅當同時使用 PRIMARY KEY 和 UNIQUE 時,才支援 NONCLUSTERED 和 NOT ENFORCED 限制。
FOREIGN KEY 僅當使用 NOT ENFORCED 時支援。
- 如需語法,請檢查 ALTER TABLE。
- 如需詳細資訊,請參閱 主索引鍵、外部索引鍵和唯一索引鍵。
將來源資料與資料倉儲對齊
倉儲資料表是透過從另一個資料來源載入資料來填入的。 若要成功載入,來源資料中資料行的數目和資料類型必須與倉儲中的表格定義一致。
如果資料來自多個資料存放區,您可以將資料移植到倉儲中,並將其儲存在整合表格中。 一旦資料進入整合表,你就可以利用倉庫的力量來實作轉換操作。 備妥資料之後,您可以將它插入生產資料表中。
限制
倉儲支援其他資料庫提供的許多 (但並非所有) 資料表功能。
- 目前不支援全域暫存資料表。
下列清單顯示目前不支援的一些資料表功能。
每個資料表最多 1,024 個資料行
計算資料行
具索引的檢視
分區資料表
序列
稀疏欄位
同義字
觸發器
唯一索引
使用者定義型別
外部數據表
倉庫物件的元資料由 Fabric Data Warehouse 快取,以提供對物件及其定義的快速存取。 對於具有超過 750,000 個物件 (例如資料表、檢視、預存程序和函數) 的超大型倉儲,系統不再快取中繼資料。 相反地,Schema 操作會直接查詢中繼資料存放區。 這確保了系統的穩定性,並防止了超大型資料庫中的快取不足。 不過,相較於啟用中繼資料快取的小型倉儲,結構描述重新整理作業可能需要更長的時間。
重要
使用 Git Integration 進行 Fabric 倉庫開發時,新增資料表約束或欄位會受到一些限制。