Data Type Reference¶
Not all SQL data types are supported for Data Clustering in Microsoft Fabric Warehouse. The advisor evaluates each candidate column's data type and factors this into the score.
Support Matrix¶
| Category | Data Type | Clustering Supported | Notes |
|---|---|---|---|
| Exact numerics | bigint |
Yes | Fully supported |
int |
Yes | Fully supported | |
smallint |
Yes | Fully supported | |
decimal(p) where p ≤ 18 |
Yes | Fully supported | |
numeric(p) where p ≤ 18 |
Yes | Fully supported | |
decimal(p) where p > 18 |
Yes (with warnings) | Predicates won't push down to storage | |
numeric(p) where p > 18 |
Yes (with warnings) | Predicates won't push down to storage | |
bit |
No | Not supported | |
| Approximate numerics | float |
Yes | Fully supported |
real |
Yes | Fully supported | |
| Date/time | date |
Yes | Fully supported |
datetime2 |
Yes | Fully supported | |
time |
Yes | Fully supported | |
| Character strings | char(n) where n ≤ 32 |
Yes | Fully supported |
varchar(n) where n ≤ 32 |
Yes | Fully supported | |
char(n) where n > 32 |
Yes (with warnings) | Only first 32 characters produce stats | |
varchar(n) where n > 32 |
Yes (with warnings) | Only first 32 characters produce stats | |
| LOB types | varchar(max) |
No | LOB type — cannot be clustered |
varbinary(max) |
No | LOB type — cannot be clustered | |
| Binary / other | varbinary |
No | Not supported |
uniqueidentifier |
No | Not supported |
Impact on Scoring¶
The data type assessment affects the score in two ways:
1. Data Type Factor (up to 15 points by default)¶
| Assessment | Score |
|---|---|
| Fully supported | 100% of weight (15 points) |
| Supported with warnings | 65% of weight (≈10 points) |
| Not supported | 0 points |
2. Recommendation Label¶
Columns with unsupported data types are labelled "Not recommended
(unsupported data type)" regardless of their composite score. If such a
column is currently in a CLUSTER BY, it receives "Already clustered —
NOT RECOMMENDED (unsupported data type)".
Warnings Explained¶
decimal/numeric with precision > 18¶
While these types can be clustered, the query engine cannot push predicates down to the V-Order storage layer when precision exceeds 18. This means queries filtering on such columns won't benefit from the columnar segment elimination that makes clustering effective.
Recommendation: If possible, reduce precision to ≤ 18. If the full precision is required, clustering this column will have limited benefit.
char/varchar with max_length > 32¶
Fabric Warehouse only considers the first 32 characters of string columns for clustering statistics. If your filtering predicates depend on characters beyond position 32, segment elimination won't be effective.
Recommendation: This is usually fine for columns like short codes
(CountryCode, Currency), but less effective for long natural-language
columns or identifiers that share a common prefix.
How the Advisor Detects Data Types¶
Column data types are read from sys.columns joined with sys.types
in Phase 1 (Metadata Collection). The relevant fields are:
data_type— the type name (e.g.,int,varchar)max_length— storage length in bytes (−1 for MAX types)precision— numeric precision (relevant fordecimal/numeric)
These are passed to assess_data_type() which returns a
DataTypeAssessment with:
is_supported— whether clustering is allowedsupport_label— human-readable label ("Yes", "Yes (with warnings)", "No")optimization_flag— "OK" or a warning messagedetail— full explanation string