Compartir a través de


table()

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

Sintaxis

table(TableName [, DataScope])

Obtenga más información sobre las convenciones de sintaxis.

Parámetros

Nombre Type Obligatorio 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 de acuerdo con cómo estos datos se encuentra 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 que se clasifican 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 no existe una tabla denominada T , pero existe una función denominada T . La función T no debe tomar ningún argumento y debe devolver un resultado tabular.
  • Se genera un error semántico si no hay ninguna tabla denominada T y ninguna función denominada T.

Ejemplos

Uso de table() para tener acceso 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

Se puede volver a escribir la misma consulta que antes 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 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