Partager via


Types de données pris en charge dans les modèles tabulaires

s’applique à : SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

Cet article décrit les types de données qui peuvent être utilisés dans les modèles tabulaires et décrit la conversion implicite des types de données lorsque les données sont calculées ou utilisées dans une formule DAX (Data Analysis Expressions).

Types de données utilisés dans les modèles tabulaires

Lorsque vous importez des données ou utilisez une valeur dans une formule, même si la source de données d’origine contient un type de données différent, les données sont converties en un des types de données suivants. Les valeurs résultant de formules utilisent également ces types de données.

En général, ces types de données sont implémentés pour permettre des calculs précis dans des colonnes calculées et, pour la cohérence, les mêmes restrictions s’appliquent au reste des données dans les modèles.

Les formats utilisés pour les nombres, la devise, les dates et les heures doivent suivre le format des paramètres régionaux spécifiés sur le client utilisé pour utiliser les données du modèle. Vous pouvez utiliser les options de mise en forme dans le modèle pour contrôler la façon dont la valeur est affichée.

Type de données dans le modèle Type de données dans DAX Descriptif
Nombre entier Valeur intégrale '64 bits' (huit octets) *

Remarque :
Les formules DAX ne prennent pas en charge les types de données trop petits pour contenir la valeur minimale répertoriée dans la description.
Nombres qui n’ont pas de décimales. Les entiers peuvent être des nombres positifs ou négatifs, mais doivent être des nombres entiers compris entre -9 223 372 036 854 775 807 (-2^63+1) et 9 223 372 036 854 775 806 (2^63-2).
Nombre décimal Nombre réel 64 bits (huit octets) *

Remarque :
Les formules DAX ne prennent pas en charge les types de données trop petits pour contenir la valeur minimale répertoriée dans la description.
Les nombres réels sont des nombres qui peuvent avoir des décimales. Les nombres réels couvrent un large éventail de valeurs :

Valeurs négatives comprises entre -1,79E +308 et -2,23E -308

Zéro

Valeurs positives de 2,23E -308 à 1,79E + 308

Toutefois, le nombre de chiffres significatifs est limité à 15 chiffres décimaux.
Booléen Booléen Soit une valeur Vrai ou Faux.
Texte Chaîne Chaîne de données de caractères Unicode. Il peut s’agir de chaînes, de nombres ou de dates représentées dans un format de texte. La taille maximale effective d’une chaîne est soumise à une limite de 32767 octets.
Binaire Chaîne Données binaires non structurées, par exemple des images. Les colonnes avec ce type de données ont des fonctionnalités limitées dans DAX. La taille maximale effective d’une valeur de données binaires est soumise à une limite d’octets 67108864.
Date Date/heure Dates et heures dans une représentation date-heure acceptée.

Les dates valides sont toutes les dates postérieures au 1er mars 1900.
Monnaie Monnaie Le type de données monétaire autorise les valeurs comprises entre -922 337 203 685 477,5807 à 922 337 203 685 477,5806 avec quatre chiffres décimaux de précision fixe.
Variante Variante Utilisé pour les expressions, telles que les mesures DAX, qui peuvent retourner différents types de données. Par exemple, une mesure DAX qui retourne un nombre entier ou une chaîne sera de type variant.
N/A Vide Un champ vide est un type de données dans DAX qui représente et remplace les valeurs NULL SQL. Vous pouvez créer un vide à l’aide de la fonction BLANK et tester les vides à l’aide de la fonction logique ISBLANK.

* Si vous tentez d’importer des données qui ont de grandes valeurs numériques, l’importation peut échouer avec l’erreur suivante :

Erreur de base de données en mémoire : la colonne «< nom> de colonne » de la table «< nom> de table » contient une valeur, « 1.7976931348623157e+308 », qui n’est pas prise en charge. L’opération a été annulée.

Cette erreur se produit parce que le concepteur de modèles utilise cette valeur pour représenter des valeurs Null. Les valeurs de la liste suivante sont des synonymes de la valeur null mentionnée précédemment :

Valeur
9223372036854775807
-9223372036854775808
1.7976931348623158e+308
-1.7976931348623158e+308

Supprimez la valeur de vos données et réessayez d’importer.

Remarque

Vous ne pouvez pas importer à partir d’une colonne varchar(max) qui contient une longueur de chaîne de plus de 131 072 caractères.

Type de données de table

En outre, DAX utilise un type de données de table. Ce type de données est utilisé par DAX dans de nombreuses fonctions, telles que les agrégations et les calculs d’intelligence temporelle. Certaines fonctions nécessitent une référence à une table ; d’autres fonctions retournent une table qui peut ensuite être utilisée comme entrée dans d’autres fonctions. Dans certaines fonctions qui nécessitent une table en tant qu’entrée, vous pouvez spécifier une expression qui prend la valeur d’une table ; pour certaines fonctions, une référence à une table de base est requise. Pour plus d’informations sur les exigences des fonctions spécifiques, consultez référence de fonction DAX.

Conversion implicite et explicite du type de données dans les formules DAX

Chaque fonction DAX a des exigences spécifiques quant aux types de données utilisées comme entrées et sorties. Par exemple, certaines fonctions nécessitent des entiers pour certains arguments et des dates pour d’autres ; d’autres fonctions nécessitent du texte ou des tableaux.

Si les données de la colonne que vous spécifiez en tant qu’argument sont incompatibles avec le type de données requis par la fonction, DAX dans de nombreux cas retourne une erreur. Toutefois, dans la mesure du possible, DAX tente de convertir implicitement les données en type de données requis. Par exemple:

  • Vous pouvez taper un nombre, par exemple « 123 », sous forme de chaîne. DAX analyse la chaîne et tente de la spécifier comme type de données numérique.

  • Vous pouvez ajouter TRUE + 1 et obtenir le résultat 2, car TRUE est implicitement converti en nombre 1 et l’opération 1+1 est effectuée.

  • Si vous ajoutez des valeurs dans deux colonnes et qu’une valeur doit être représentée sous forme de texte (« 12 ») et l’autre en tant que nombre (12), DAX convertit implicitement la chaîne en nombre, puis effectue l’ajout d’un résultat numérique. L’expression suivante retourne 44 : = « 22 » + 22

  • Si vous tentez de concaténer deux nombres, ils sont présentés sous forme de chaînes, puis concaténés. L’expression suivante retourne « 1234 » : = 12 &34

Le tableau suivant récapitule les conversions de type de données implicites effectuées dans les formules. En général, le concepteur de modèles sémantiques se comporte comme Microsoft Excel et effectue des conversions implicites dans la mesure du possible lorsque l’opération spécifiée est requise.

Table des conversions de données implicites

Le type de conversion effectué est déterminé par l’opérateur, qui convertit les valeurs requises avant d’effectuer l’opération demandée. Ces tables répertorient les opérateurs et indiquent la conversion effectuée sur chaque type de données de la colonne lorsqu’elles sont associées au type de données dans la ligne d’intersection.

Remarque

Les types de données texte ne sont pas inclus dans ces tableaux. Lorsqu’un nombre est représenté comme dans un format de texte, dans certains cas, le concepteur de modèles tente de déterminer le type de nombre et de le représenter en tant que nombre.

Ajout (+)

ENTIER MONNAIE RÉEL Date/heure
ENTIER ENTIER MONNAIE RÉEL Date/heure
DEVISE MONNAIE MONNAIE RÉEL Date/heure
RÉEL RÉEL RÉEL RÉEL Date/heure
date/heure Date/heure Date/heure Date/heure Date/heure

Par exemple, si un nombre réel est utilisé dans une opération d’addition en combinaison avec les données monétaires, les deux valeurs sont converties en REAL, et le résultat est retourné sous la forme REAL.

Soustraction (-)

Dans le tableau suivant, l’en-tête de ligne est le diminuende (côté gauche) et l’en-tête de colonne est le subtrahende (côté droit) :

ENTIER MONNAIE RÉEL Date/heure
ENTIER ENTIER MONNAIE RÉEL RÉEL
DEVISE MONNAIE MONNAIE RÉEL RÉEL
RÉEL RÉEL RÉEL RÉEL RÉEL
date/heure Date/heure Date/heure Date/heure Date/heure

Par exemple, si une date est utilisée dans une opération de soustraction avec un autre type de données, les deux valeurs sont converties en dates et la valeur de retour est également une date.

Remarque

Les modèles tabulaires prennent également en charge l’opérateur unaire , (négatif), mais cet opérateur ne modifie pas le type de données de l’opérande.

Multiplication (*)

ENTIER MONNAIE RÉEL Date/heure
ENTIER ENTIER MONNAIE RÉEL ENTIER
DEVISE MONNAIE RÉEL MONNAIE MONNAIE
RÉEL RÉEL MONNAIE RÉEL RÉEL

Par exemple, si un entier est combiné à un nombre réel dans une opération de multiplication, les deux nombres sont convertis en nombres réels et la valeur de retour est également RÉELLE.

Division (/)

Dans le tableau suivant, l’en-tête de ligne est le numérateur et l’en-tête de colonne est le dénominateur : (ligne/colonne)

ENTIER MONNAIE RÉEL Date/heure
ENTIER RÉEL MONNAIE RÉEL RÉEL
DEVISE MONNAIE RÉEL MONNAIE RÉEL
RÉEL RÉEL RÉEL RÉEL RÉEL
date/heure RÉEL RÉEL RÉEL RÉEL

Par exemple, si un entier est combiné à une valeur monétaire dans une opération de division, les deux valeurs sont converties en nombres réels et le résultat est également un nombre réel.

Opérateurs de comparaison

Seul un ensemble limité de combinaisons de types de données mixtes pour les opérations de comparaison est pris en charge. Pour en savoir plus, consultez référence d’opérateur DAX.

Gestion des vides, des chaînes vides et des valeurs zéro

Le tableau suivant récapitule les différences entre DAX et Microsoft Excel, de la façon dont les espaces sont gérés :

L'Expression DAX Exceller
VIDE + VIDE VIDE 0 (zéro)
VIDE +5 5 5
VIDE * 5 VIDE 0 (zéro)
5/VIDE Infini Erreur
0/VIDE NAN Erreur
VIDE/VIDE VIDE Erreur
FAUX OU VIDE FAUX FAUX
FAUX ET VIDE FAUX FAUX
VRAI OU VIDE VRAI VRAI
VRAI ET VIDE FAUX VRAI
In a general context where "BLANK" refers to empty spaces or unused areas, the translation could be adjusted to "ESPACE VIDE OU INUTILE". VIDE Erreur
BLANC ET BLANC VIDE Erreur

Pour plus d’informations sur la façon dont une fonction ou un opérateur particulier gère les valeurs vides, consultez les rubriques individuelles pour chaque fonction DAX, dans la section Référence de fonction DAX.