Types de données dans Microsoft Fabric

S’applique à :✅ point de terminaison d’analytique SQL et Warehouse dans Microsoft Fabric

Les tables dans Microsoft Fabric prennent en charge les types de données T-SQL les plus couramment utilisés.

  • Pour plus d’informations sur la création de tables, consultez Tables.
  • Pour la syntaxe, consultez CREATE TABLE

Types de données dans l’entrepôt

Warehouse prend en charge un sous-ensemble de types de données T-SQL. Chaque type de données proposé est basé sur le type de données SQL Server du même nom. Pour plus d’informations, consultez l’article de référence pour chacun dans le tableau suivant.

Catégorie Types de données prises en charge
Valeurs numériques exactes
Valeurs numériques approximatives
Date et heure
Chaînes de caractères de longueur fixe
Chaînes de caractères de longueur variable
Chaînes binaires

* La précision pour datetime2 et time est limitée à 6 chiffres de précision sur des fractions de secondes.

** Le type de données uniqueidentifier est un type de données T-SQL, sans type de données correspondant dans Delta Parquet. Par conséquent, il est stocké en tant que type binaire. L’entrepôt prend en charge le stockage et la lecture de colonnes uniqueidentifier, mais ces valeurs ne peuvent pas être lues sur le point de terminaison d’analytique SQL. La lecture des valeurs uniqueidentifier dans le lakehouse affiche une représentation binaire des valeurs d’origine. Par conséquent, les fonctionnalités telles que les jointures croisées entre l’entrepôt et le point de terminaison d’analytique SQL à l’aide d’une colonne uniqueidentifier ne fonctionnent pas comme prévu.

La prise en charge de varchar (max) et varbinary (max) est actuellement en préversion.

Pour plus d’informations sur les types de données pris en charge, y compris leurs précisions, consultez types de données dans la référence CREATE TABLE.

Types de données non pris en charge

Pour les types de données T-SQL qui ne sont actuellement pas pris en charge, certaines alternatives sont disponibles. Veillez à évaluer l’utilisation de ces types, car la précision et le comportement des requêtes varient :

Type de données non pris en charge Alternatives disponibles
money et smallmoney Utilisez decimal, mais notez qu’il ne peut pas stocker l’unité monétaire.
datetime et smalldatetime Utilisez datetime2.
datetimeoffset Utilisez datetime2, mais vous pouvez utiliser datetimeoffset pour convertir des données avec CAST pour la fonction AT TIME ZONE (Transact-SQL). Pour un exemple, consultez datetimeoffset.
nchar et nvarchar Utilisez respectivement char et varchar, car il n’existe pas de type de données unicode similaire dans Parquet. Les types char et varchar dans un classement UTF-8 peuvent utiliser plus de stockage que nchar et nvarchar pour stocker des données unicode. Pour comprendre l’impact sur votre environnement, consultez Différences de stockage entre UTF-8 et UTF-16.
text et ntext Utilisez varchar.
image Utilisez varbinary.
tinyint Utiliser smallint.
Geography Aucun équivalent.

Les types de données non pris en charge peuvent toujours être utilisés dans le code T-SQL pour les variables, ou toute utilisation en mémoire dans la session. La création de tables ou de vues qui conservent des données sur le disque avec l’un de ces types n’est pas autorisée.

Pour obtenir un guide de création d’une table dans Warehouse, consultez Créer des tables.

Types de données générés automatiquement dans le point de terminaison d’analytique SQL

Les tables du point de terminaison d’analytique SQL sont automatiquement créées chaque fois qu’une table est créée dans le Lakehouse associé. Les types de colonnes dans les tables de point de terminaison d’analytique SQL sont dérivés des types Delta sources.

Les règles de mappage des types Delta d’origine aux types SQL dans le point de terminaison d’analytique SQL sont présentées dans le tableau suivant :

Type de données Delta Type de données SQL (mappé)
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) avec classement Latin1_General_100_BIN2_UTF8
STRING, VARCHAR(n) varchar(n) avec classement Latin1_General_100_BIN2_UTF8
STRING, VARCHAR(MAX) varchar(MAX) avec Latin1_General_100_BIN2_UTF8 collation
BINARY varbinary(n)
DECIMAL, DEC, NUMERIC decimal(p,s)

Les colonnes dont les types ne sont pas listés dans la table ne sont pas représentées en tant que colonnes de table dans le point de terminaison d’analytique SQL.