Share via


table()

La función table() hace referencia a una tabla proporcionando su nombre como una expresión de tipo string.

Syntax

table(TableName [,DataScope] )

Más información sobre las convenciones de sintaxis.

Parámetros

Nombre Tipo Requerido Descripción
TableName string ✔️ Nombre de la tabla a la que se hace referencia. El valor de esta expresión debe ser constante en el punto de llamada a la función, lo que significa que no puede variar según el contexto de datos.
Datascope string Se usa para restringir la referencia de tabla a los datos según cómo estos datos se encuentran en la directiva de caché efectiva de la tabla. Si se usa, el argumento real debe ser uno de los valores de ámbito de datos válidos.

Valores de ámbito de datos válidos

Valor Descripción
hotcache Solo se hará referencia a los datos clasificados como caché activa.
all Se hará referencia a todos los datos de la tabla.
default El valor predeterminado es all, excepto si el administrador del clúster lo ha establecido hotcache en .

Devoluciones

table(T) devuelve lo siguiente:

  • Datos de la tabla T si existe una tabla denominada T .
  • Los datos devueltos por la función T si una tabla denominada T no existe, pero existe una función denominada T . La función T no debe tomar ningún argumento y debe devolver un resultado tabular.
  • Se produce un error semántico si no hay ninguna tabla denominada T y ninguna función denominada T.

Ejemplos

Uso de table() para acceder a la tabla de la base de datos actual

table('StormEvents') | count

Salida

Count
59066

Uso de table() dentro de instrucciones let

La consulta anterior se puede reescribir como una función definida por consulta (instrucción let) que recibe un parámetro tableName , que se pasa a la función table().

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

Salida

Count
59066

Uso de table() dentro de Functions

La misma consulta que la anterior se puede reescribir para usarse en una función que recibe un parámetro tableName , que se pasa a la función table().

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

Nota

Estas funciones solo se pueden usar localmente y no en la consulta entre clústeres.

Uso de table() con parámetro no constante

Un parámetro, que no es una cadena de constante escalar, no se puede pasar como parámetro a la table() función.

A continuación, se proporciona un ejemplo de solución alternativa para este 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')

Salida

x
2