table()
Platí pro: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
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 |