Microsoft Fabric 中的資料類型
適用於:✅ Microsoft Fabric 中的 SQL 分析端點和倉儲
Microsoft Fabric 中的資料表支援最常用的 T-SQL 資料類型。
- 如需有關建立資料表的詳細資訊,請參閱資料表。
- 倉儲支持的數據類型與 Fabric 中支援的 SQL 資料庫 數據類型不同。
- 如需語法,請參閱 CREATE TABLE
倉儲中的資料類型
倉儲支援 T-SQL 資料類型的子集。 每個子集提供的資料類型都以相同名稱的 SQL Server 資料類型為基礎。 如需詳細資訊,請參閱下列資料中各項的參考文章。
類別 | 支援的資料類型 |
---|---|
精確數值 | |
近似數值 | |
日期和時間 | |
固定長度字元字串 | |
可變長度字元字串 |
|
二進位字串 |
* datetime2 和 time 的有效位數限制為 6 位數的有效位數 (秒數的小數部分)。
** uniqueidentifier 資料類型是 T-SQL 資料類型,在 Delta Parquet 中沒有相符的資料類型。 因此,它會儲存為二進位類型。 Warehouse 支援儲存和讀取 uniqueidentifier 資料欄,但這些值無法在 SQL 分析端點上讀取。 在 Lakehouse 中讀取 uniqueidentifier 值會顯示原始值的二進位表示法。 因此,使用 uniqueidentifier 數據行的倉儲與 SQL 分析端點之間的交叉聯結等功能無法如預期般運作。
varchar (max) 和 varbinary (max) 的支援目前為預覽狀態。
如需受支援資料類型的詳細資訊,包括其精確度,請參閱 CREATE TABLE 參考中的資料類型。
不支援的資料類型
針對目前不受支援的 T-SQL 資料類型,有一些替代方案可供使用。 請務必評估這些類型的用法,因為精確度和查詢行為會有所差異:
不受支援的資料類型 | 可用的替代方案 |
---|---|
money 和 smallmoney | 使用十進位,但請注意,無法儲存貨幣單位。 |
datetime 和 smalldatetime | 使用 datetime2。 |
datetimeoffset | 使用 datetime2,不過您可以使用 datetimeoffset 搭配 AT TIME ZONE (Transact-SQL) 函數 CAST 來轉換資料。 如需範例,請參閱 datetimeoffset。 |
nchar 和 nvarchar | 分別使用 char 和 varchar,因為 Parquet 中沒有類似的 Unicode 資料類型。 UTF-8 定序中的 char 和 varchar 類型可能會使用比 nchar 和 nvarchar 更多的記憶體來儲存 Unicode 資料。 若要了解對您環境的影響,請參閱 UTF-8 與 UTF-16 之間的儲存差異。 |
text 和 ntext | 使用 varchar。 |
image | 使用 varbinary。 |
tinyint | 使用 smallint。 |
地理位置 | 沒有同等項目。 |
不受支援的資料類型仍可用於 T-SQL 程式碼中的變數,或工作階段中的任何記憶體內使用。 不允許建立在磁碟上以任何這些類型保存資料的資料表或檢視。
如需在 Warehouse 中建立資料表的指南,請參閱建立資料表。
SQL 分析端點中自動產生的資料類型
每當在關聯的 Lakehouse 中建立資料表時,就會在 SQL 分析端點中自動建立資料表。 SQL 分析端點資料表中的資料欄類型衍生自來源 Delta 類型。
下表顯示將原始 Delta 類型對應至 SQL 分析端點中 SQL 類型的規則:
Delta 資料類型 | SQL 資料類型 (對應) |
---|---|
LONG、BIGINT | bigint |
BOOLEAN、BOOL | bit |
INT、INTEGER | int |
TINYINT、BYTE、SMALLINT、SHORT | smallint |
DOUBLE | float |
FLOAT、REAL | real |
DATE | date |
TIMESTAMP | datetime2 |
CHAR(n) | varchar(n),具有 Latin1_General_100_BIN2_UTF8 定序 |
STRING、VARCHAR(n) | varchar(n),具有 Latin1_General_100_BIN2_UTF8 定序 |
STRING、VARCHAR(MAX) | 具有定序的 Latin1_General_100_BIN2_UTF8 varchar(MAX) |
二元的 | varbinary(n) |
DECIMAL、DEC、NUMERIC | decimal(p,s) |
資料表中未列出類型的資料欄不會表示為 SQL 分析端點中的資料表資料欄。