table()

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

構文

table(TableName [,DataScope] )

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

パラメーター

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

有効なデータ スコープ値

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

戻り値

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

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

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

table('StormEvents') | count

出力

Count
59066

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

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

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

出力

Count
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