table()

table() 関数は、型 string の式として名前を指定することで、テーブルを参照します。

構文

table(TableName [, DataScope])

構文規則について詳しく知る。

パラメーター

件名 タイプ Required 説明
TableName string ✔️ 参照されているテーブルの名前。 この式の値は、関数の呼び出し時点で定数である必要があります。つまり、データ コンテキストによって変化することはできません。
DataScope string このデータがテーブルの有効な cache ポリシーに従ってデータへのテーブル参照を制限するために使用。 使用する場合、実際の引数は、 Valid データ スコープ値のいずれかである必要があります

有効なデータ スコープ値

Value 説明
hotcache ホット キャッシュとして分類されたデータのみが参照されます。
all テーブル内のすべてのデータが参照されます。
default クラスター管理者によってhotcacheに設定されている場合を除き、既定値はallです。

返品

table(T) が次のように返します。

  • テーブル T のデータT という名前のテーブルが存在する場合
  • 関数 T T という名前のテーブルが存在せず、 T という名前の関数が存在する場合に返されるデータ。 関数 T は引数を受け取らなければならず、表形式の結果を返す必要があります。
  • T という名前のテーブルがなく、T という名前の関数がない場合、セマンティック エラーが発生します。

table() を使用して、現在のデータベースのテーブルにアクセスする

table('StormEvents') | count

出力

カウント
59066

let ステートメント内で table () を使用する

上記のクエリは、table() 関数に渡されるパラメーター tableName を受け取るクエリ定義関数 (let ステートメント) として書き換えることができます。

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

出力

カウント
59066

関数内で table() を使用する

上記と同じクエリを、パラメーター tableName を受け取る関数を使用するように書き換えることができます。このパラメーターが table() 関数に渡されます。

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

Note

このような関数はローカルでのみ使用でき、クラスター間のクエリでは使用できません。

定数以外のパラメーターを指定して table() を使用する

スカラー定数文字列ではないパラメーターは、パラメーターとして table() 関数に渡すことはできません。

次に、このような場合の回避策の例を示します。

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

出力

x
2