Freigeben über


table()

Die Table()-Funktion verweist auf eine Tabelle, indem der Name als Ausdruck des Typs stringangegeben wird.

Syntax

table(TableName [, DataScope])

Erfahren Sie mehr über Syntaxkonventionen.

Parameter

Name Type Erforderlich Beschreibung
TableName string ✔️ Der Name der Tabelle, auf die verwiesen wird. Der Wert dieses Ausdrucks muss am Punkt des Aufrufs der Funktion konstant sein, was bedeutet, dass er vom Datenkontext nicht variieren kann.
DataScope string Wird verwendet, um den Tabellenverweis auf Daten entsprechend der Art und Art einzuschränken, wie diese Daten unter die effektive Cacherichtlinie der Tabelle fallen. Wenn dieses Argument verwendet wird, muss es sich um einen der Gültigen Datenbereichswerte handeln.

Gültige Datenbereichswerte

Wert Beschreibung
hotcache Nur Daten, die als hot cache kategorisiert sind, werden referenziert.
all Auf alle Daten in der Tabelle wird verwiesen.
default Die Standardeinstellung lautet all, außer wenn sie vom Clusteradministrator festgelegt hotcache wurde.

Gibt zurück

table(T) gibt Folgendes zurück:

  • Daten aus Tabelle T , wenn eine Tabelle mit dem Namen T vorhanden ist.
  • Daten, die von Funktion T zurückgegeben werden, wenn eine Tabelle mit dem Namen T nicht vorhanden ist, aber eine Funktion mit dem Namen T vorhanden ist. Funktion T darf keine Argumente annehmen und ein tabellarisches Ergebnis zurückgeben.
  • Ein semantischer Fehler wird ausgelöst, wenn keine Tabelle mit dem Namen T und keine Funktion mit dem Namen T vorhanden ist.

Beispiele

Verwenden von Tabelle() für den Zugriff auf die Tabelle der aktuellen Datenbank

table('StormEvents') | count

Ausgabe

Anzahl
59066

Verwenden von "table() inside let"-Anweisungen

Die oben genannte Abfrage kann als abfragedefinierte Funktion (let-Anweisung) umgeschrieben werden, die einen Parameter tableName empfängt , der an die Table()-Funktion übergeben wird.

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

Ausgabe

Anzahl
59066

Verwenden von "table()" innerhalb von Funktionen

Die gleiche Abfrage wie oben kann neu geschrieben werden, um in einer Funktion zu verwenden, die einen Parameter tableName empfängt - der an die Table()-Funktion übergeben wird.

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

Hinweis

Solche Funktionen können nur lokal und nicht in der clusterübergreifenden Abfrage verwendet werden.

Use table() with non-constant parameter

Ein Parameter, der keine skalare Konstante ist, kann nicht als Parameter an die table() Funktion übergeben werden.

Im Folgenden finden Sie ein Beispiel für eine Problemumgehung für diesen Fall.

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

Ausgabe

x
2