Sdílet prostřednictvím


table()

Funkce table() odkazuje na tabulku zadáním jejího názvu jako výrazu typu string.

Syntaxe

table(TableName [, DataScope])

Přečtěte si další informace o konvencích syntaxe.

Parametry

Název Type Požadováno Popis
TableName string ✔️ Název tabulky, na kterou se odkazuje. Hodnota tohoto výrazu musí být konstantní v okamžiku volání funkce, což znamená, že se nemůže lišit podle kontextu dat.
DataScope string Používá se k omezení odkazu na tabulku na data podle toho, jak tato data spadají do efektivních zásad mezipaměti tabulky. Pokud se použije, musí být skutečný argument jednou z platných hodnot oboru dat.

Platné hodnoty oboru dat

Hodnota Popis
hotcache Odkazují se pouze data, která jsou zařazena do kategorií jako horká mezipaměť.
all Na všechna data v tabulce se budou odkazovat.
default Výchozí hodnota je all, s výjimkou případu, kdy ji nastavil hotcache správce clusteru.

Návraty

table(T) návraty:

  • Data z tabulky T , pokud tabulka s názvem T existuje.
  • Data vrácená funkcí T , pokud tabulka s názvem T neexistuje, ale funkce s názvem T existuje. Funkce T nesmí přijímat žádné argumenty a musí vracet tabulkový výsledek.
  • Pokud neexistuje žádná tabulka s názvem T a žádná funkce s názvem T, vyvolá se sémantická chyba.

Příklady

Použití table() pro přístup k tabulce aktuální databáze

table('StormEvents') | count

Výstup

Počet
59066

Použití table() uvnitř příkazů let

Výše uvedený dotaz lze přepsat jako funkci definovanou dotazem (příkaz let), která přijímá parametr tableName – který se předává do funkce table().

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

Výstup

Počet
59066

Použití table() uvnitř funkcí

Stejný dotaz jako výše je možné přepsat, aby se použil ve funkci, která přijímá parametr tableName – který se předává do funkce table().

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

Poznámka:

Tyto funkce je možné používat pouze místně a ne v dotazu mezi clustery.

Použití table() s jiným než konstantním parametrem

Parametr, který není skalárním konstantním řetězcem, nelze funkci předat jako parametr table() .

Níže je uveden příklad alternativního řešení pro takový případ.

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')

Výstup

linka
2