Fabric 数据仓库中的数据类型

适用于:✅SQL 分析端点和 Microsoft Fabric 中的仓库

Microsoft Fabric 中的表支持最常用的 T-SQL 数据类型。

Fabric 数据仓库中的数据类型

仓库支持 T-SQL 数据类型的子集。 提供的每个数据类型都基于同名的 SQL Server 数据类型。 有关详细信息,请参阅下表中对于每种类型的参考文章。

类别 支持的数据类型
精确数字
近似数字
日期和时间
固定长度字符串
可变长度字符串
  • varchar - varchar(max) 中的存储限制目前为 Fabric 数据仓库中的 16 MB。
二进制数据

* datetime2time 的精度限制为以秒为单位的 6 位小数。

** uniqueidentifier 数据类型是 T-SQL 数据类型,在 Delta Parquet 中没有匹配的数据类型。 因此,它会被存储为二进制类型。 仓库支持存储和读取 uniqueidentifier 列,但无法在 SQL 分析终结点上读取这些值。 读取湖屋中的 uniqueidentifier 值时,会显示原始值的二进制表示形式。 因此,使用 uniqueidentifier 列在仓库和 SQL 分析端点之间进行交叉连接等功能无法按预期运行。

有关支持的数据类型(包括其精度)的详细信息,请参阅 CREATE TABLE 参考中的数据类型

不支持的数据类型

对于当前不支持的 T-SQL 数据类型,可以使用一些替代方法。 请确保评估这些类型的使用情况,因为精度和查询行为有所不同:

不支持的数据类型 可用的替代项
小钱 使用十进制,但请注意,它不能存储货币单位。
datetimesmalldatetime 使用datetime2
datetimeoffset 使用 datetime2,但是可以使用 datetimeoffset 通过 CASTAT TIME ZONE (Transact-SQL) 函数转换数据。 有关示例,请参阅 datetimeoffset
ncharnvarchar 分别使用 char 和 varchar,因为 Parquet 中没有类似的 unicode 数据类型。 UTF-8 排序规则中的 char 和 varchar 类型可能会使用比 nchar 和 nvarchar 更多的存储空间来存储 unicode 数据。 若要了解对环境的影响,请参阅 UTF-8 和 UTF-16 之间的存储差异
text 和 ntext 使用varchar
图像 使用 varbinary
tinyint 请使用smallint
地理 以(纬度、经度)列对或含常见二进制内容的 varbinary 列的形式存储地理数据,并将其强制转换为地理值。 或者,使用 varchar 类型,并将数据存储为已知文本。
几何学 将几何数据存储为(纬度,经度)列对或具有已知二进制内容的 varbinary 列,并将其转换为几何值。作为另一种选择,可使用 varchar 类型,并以已知文本格式存储数据。
json 使用varchar
xml 无等效项。
用户定义的类型 (CLR) 无等效项。

不支持的数据类型仍可用于 T-SQL 代码中的变量、函数和存储过程的参数或输出,或会话中的任何内存使用。 不允许使用任何这些类型创建在磁盘上持久保存数据的表或视图。

有关在 Warehouse 中创建表的指南,请参阅创建表

SQL 分析端点中自动生成的数据类型

每当在关联的 Lakehouse 中创建表时,系统都会自动创建 SQL 分析终结点中的表。 SQL 分析终结点表中的列类型派生自源 Delta 类型。

表中未列出的类型不表示为 SQL 分析终结点中的表列。

下表显示了将原始 Delta 类型映射到 SQL 分析终结点中的 SQL 类型的规则:

Delta 数据类型 SQL 数据类型(已映射)
LONGBIGINT bigint
BOOLEANBOOL 比特
INTINTEGER int
TINYINTBYTESMALLINTSHORT smallint
加倍 浮点
FLOATREAL 真正
DATE 日期
时间戳 datetime2
CHAR(n) varchar(n) 与 Latin1_General_100_BIN2_UTF8 排序规则
VARCHAR(n) 其中 n < 2000 varchar(4*n)使用Latin1_General_100_BIN2_UTF8 排序规则
STRING, VARCHAR(n)其中 n >= 2000 在 Lakehouse 的 SQL 分析终结点中,字符类型为 varchar(8000);对于镜像项,在 SQL 分析终结点中,则为 varchar(max)* 。
varchar 列具有Latin1_General_100_BIN2_UTF8排序规则。
二进制 varbinary(n)
DECIMALDECNUMERIC decimal(p,s)

* varchar(max) 中的存储限制目前为 SQL 分析终结点和 Fabric 数据仓库中的 16 MB。