Share via


table()

A função table() faz referência a uma tabela fornecendo seu nome como uma expressão do tipo string.

Syntax

table(TableName [,DataScope] )

Saiba mais sobre as convenções de sintaxe.

Parâmetros

Nome Tipo Obrigatório Descrição
TableName string ✔️ O nome da tabela que está sendo referenciada. O valor dessa expressão deve ser constante no ponto de chamada para a função, o que significa que ela não pode variar de acordo com o contexto de dados.
Datascope string Usado para restringir a referência de tabela aos dados de acordo com a forma como esses dados se enquadram na política de cache efetiva da tabela. Se usado, o argumento real deve ser um dos valores de escopo de dados válidos.

Valores de escopo de dados válidos

Valor Descrição
hotcache Somente os dados categorizados como cache quente serão referenciados.
all Todos os dados na tabela serão referenciados.
default O padrão é all, exceto se ele tiver sido definido hotcache como pelo administrador do cluster.

Retornos

O table(T) retorna:

  • Dados da tabela T se houver uma tabela chamada T .
  • Dados retornados pela função T se uma tabela chamada T não existir, mas existir uma função chamada T . A função T não deve usar argumentos e deve retornar um resultado tabular.
  • Um erro semântico será gerado se não houver nenhuma tabela chamada T e nenhuma função chamada T.

Exemplos

Usar table() para acessar a tabela do banco de dados atual

table('StormEvents') | count

Saída

Contagem
59066

Usar table() dentro de instruções let

A consulta acima pode ser reescrita como uma função definida por consulta (instrução let) que recebe um parâmetro tableName , que é passado para a função table().

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

Saída

Contagem
59066

Usar table() dentro do Functions

A mesma consulta acima pode ser reescrita para ser usada em uma função que recebe um parâmetro tableName , que é passado para a função table().

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

Observação

Essas funções podem ser usadas apenas localmente e não na consulta entre clusters.

Usar table() com parâmetro não constante

Um parâmetro, que não é uma cadeia de caracteres de constante escalar, não pode ser passado como um parâmetro para a table() função.

Abaixo, dado um exemplo de solução alternativa para esse caso.

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

Saída

x
2