table()

De functie table() verwijst naar een tabel door de naam op te geven als een expressie van het type string.

Syntax

table(TableName [,DataScope] )

Meer informatie over syntaxisconventies.

Parameters

Naam Type Vereist Beschrijving
TableName string ✔️ De naam van de tabel waarnaar wordt verwezen. De waarde van deze expressie moet constant zijn op het moment van aanroepen van de functie, wat betekent dat deze niet kan variëren op basis van de gegevenscontext.
DataScope string Wordt gebruikt om de tabelreferentie te beperken tot gegevens op basis van de manier waarop deze gegevens onder het effectieve cachebeleid van de tabel vallen. Als u het argument gebruikt, moet het werkelijke argument een van de geldige gegevensbereikwaarden zijn.

Geldige waarden voor gegevensbereik

Waarde Beschrijving
hotcache Er wordt alleen verwezen naar gegevens die zijn gecategoriseerd als hot-cache.
all Naar alle gegevens in de tabel wordt verwezen.
default De standaardwaarde is all, behalve als deze is ingesteld hotcache op door de clusterbeheerder.

Retouren

table(T) Retourneert:

  • Gegevens uit tabel T als er een tabel met de naam T bestaat.
  • Gegevens die worden geretourneerd door functie T als een tabel met de naam T niet bestaat, maar een functie met de naam T wel bestaat. Functie T mag geen argumenten hebben en moet een tabellair resultaat retourneren.
  • Er treedt een semantische fout op als er geen tabel met de naam T en geen functie met de naam T is.

Voorbeelden

Table() gebruiken voor toegang tot de tabel van de huidige database

table('StormEvents') | count

Uitvoer

Count
59066

Table() gebruiken in let-instructies

De bovenstaande query kan worden herschreven als een querygedefinieerde functie (let-instructie) die een parameter tableName ontvangt die wordt doorgegeven aan de functie table().

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

Uitvoer

Count
59066

Table() gebruiken in Functions

Dezelfde query als hierboven kan worden herschreven om te worden gebruikt in een functie die een parameter tableName ontvangt, die wordt doorgegeven aan de functie table().

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

Notitie

Dergelijke functies kunnen alleen lokaal worden gebruikt en niet in de clusteroverschrijdende query.

Table() gebruiken met een niet-constante parameter

Een parameter, die geen scalaire constante tekenreeks is, kan niet als parameter worden doorgegeven aan de table() functie.

Hieronder ziet u een voorbeeld van een tijdelijke oplossing voor een dergelijk geval.

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

Uitvoer

x
2