Share via


table()

La fonction table() référence une table en fournissant son nom en tant qu’expression de type string.

Syntax

table(TableName [,DataScope] )

Découvrez les conventions de syntaxe.

Paramètres

Nom Type Obligatoire Description
TableName string ✔️ Nom de la table référencée. La valeur de cette expression doit être constante au point d’appel à la fonction, ce qui signifie qu’elle ne peut pas varier selon le contexte de données.
Datascope string Utilisé pour restreindre la référence de table aux données en fonction de la façon dont ces données entrent dans la stratégie de cache effective de la table. S’il est utilisé, l’argument réel doit être l’une des valeurs d’étendue de données valides.

Valeurs d’étendue de données valides

Valeur Description
hotcache Seules les données catégorisées en tant que cache à chaud seront référencées.
all Toutes les données de la table seront référencées.
default La valeur par défaut est all, sauf si elle a été définie hotcache sur par l’administrateur du cluster.

Retours

table(T) retourne :

  • Données de la table T si une table nommée T existe.
  • Données retournées par la fonction T si une table nommée T n’existe pas, mais qu’une fonction nommée T existe. La fonction T ne doit prendre aucun argument et doit retourner un résultat tabulaire.
  • Une erreur sémantique est générée s’il n’existe aucune table nommée T et aucune fonction nommée T.

Exemples

Utiliser table() pour accéder à la table de la base de données active

table('StormEvents') | count

Sortie

Count
59066

Utiliser table() dans les instructions let

La requête ci-dessus peut être réécrite en tant que fonction définie par la requête (instruction let) qui reçoit un paramètre tableName qui est passé à la fonction table().

let foo = (tableName:string)
{
    table(tableName) | count
};
foo('StormEvents')

Sortie

Count
59066

Utiliser table() dans Functions

La même requête que celle ci-dessus peut être réécrite pour être utilisée dans une fonction qui reçoit un paramètre tableName , qui est passé à la fonction table().

.create function foo(tableName:string)
{
    table(tableName) | count
};

Notes

Ces fonctions peuvent être utilisées uniquement localement et non dans la requête inter-cluster.

Utiliser table() avec un paramètre non constant

Un paramètre, qui n’est pas une chaîne de constante scalaire, ne peut pas être passé en tant que paramètre à la table() fonction.

Vous trouverez ci-dessous un exemple de solution de contournement pour ce cas.

let T1 = print x=1;
let T2 = print x=2;
let _choose = (_selector:string)
{
    union
    (T1 | where _selector == 'T1'),
    (T2 | where _selector == 'T2')
};
_choose('T2')

Sortie

x
2