Compartir vía


Consulta de datos mediante T-SQL

El editor de consultas de Azure Data Explorer es compatible con el uso de T-SQL además de su lenguaje de consulta principal, el Lenguaje de consulta Kusto (KQL). Aunque KQL es el lenguaje de consulta recomendado, T-SQL puede ser útil para las herramientas que no pueden usar KQL.

Nota:

Solo se admiten comandos del lenguaje de consulta de datos (DQL). Para obtener más información, consulte Cobertura.

Consulta con T-SQL

Para ejecutar una consulta T-SQL, comience la consulta con una línea de comentario de T-SQL vacía: --. La sintaxis -- indica al editor de consultas que interprete la siguiente consulta como T-SQL y no KQL.

Ejemplo

--
SELECT * FROM StormEvents

Lenguaje de consulta de T-SQL a Kusto

El editor de consultas admite la capacidad de traducir consultas T-SQL a KQL. Esta característica de traducción puede ser útil para los usuarios que están familiarizados con SQL y quieren obtener más información sobre KQL.

Para obtener el KQL equivalente para una instrucción T-SQL SELECT, agregue la palabra clave explain antes de la consulta. La salida será la versión KQL de la consulta, que puede ser útil para comprender la sintaxis y los conceptos de KQL correspondientes.

Recuerde incluir en las consultas T-SQL una línea de comentario de T-SQL, --, para indicar al editor de consultas que interprete la consulta siguiente como T-SQL y no como KQL.

Ejemplo

--
explain
SELECT top(10) *
FROM StormEvents
ORDER BY DamageProperty DESC

Salida

StormEvents
| project
    StartTime,
    EndTime,
    EpisodeId,
    EventId,
    State,
    EventType,
    InjuriesDirect,
    InjuriesIndirect,
    DeathsDirect,
    DeathsIndirect,
    DamageProperty,
    DamageCrops,
    Source,
    BeginLocation,
    EndLocation,
    BeginLat,
    BeginLon,
    EndLat,
    EndLon,
    EpisodeNarrative,
    EventNarrative,
    StormSummary
| sort by DamageProperty desc nulls first
| take int(10)

Ejecutar funciones almacenadas

Al usar T-SQL, se recomienda crear consultas KQL optimizadas y encapsularlas en funciones almacenadas, ya que, al hacerlo, se minimiza el código T-SQL y puede aumentar el rendimiento. Por ejemplo, si tiene una función almacenada como se describe en la tabla siguiente, puede ejecutarla como se muestra en el ejemplo de código.

Nombre Parámetros Cuerpo Carpeta DocString
MyFunction (myLimit: long) {StormEvents | take myLimit} MyFolder Función de demostración con parámetro
SELECT * FROM kusto.MyFunction(10)

Nota:

Para distinguir entre funciones almacenadas y procedimientos almacenados emulados del sistema SQL, ejecute funciones almacenadas con una referencia explícita al esquema kusto. En el ejemplo, la función almacenada se ejecuta mediante kusto.Myfunction.

Establecer las propiedades de solicitud

Las propiedades de solicitud controlan cómo se ejecuta una consulta y devuelve los resultados. Para establecer las propiedades de solicitud con T-SQL, incluya en la consulta una o varias instrucciones con la sintaxis siguiente:

Sintaxis

DECLARE @__kql_set_requestPropertyName tipo = valor;

Parámetros

Nombre Type Obligatorio Descripción
requestPropertyName string ✔️ Nombre de la propiedad de solicitud que se va a establecer.
type string ✔️ Tipo de datos T-SQL del valor.
value escalares ✔️ Valor que se va a asignar a la propiedad de solicitud.

Nota:

  • Dos instrucciones deben estar separadas por punto y coma y no debe haber ninguna línea vacía antes de la consulta.
  • Las propiedades de solicitud solo se aplican a las instrucciones de expresión tabular que siguen inmediatamente.

Ejemplos

En la tabla siguiente se muestran ejemplos de cómo establecer propiedades de solicitud con T-SQL.

Propiedad de solicitud Ejemplo
query_datetimescope_to DECLARE @__kql_set_query_datetimescope_to DATETIME = '2023-03-31 03:02:01';
request_app_name DECLARE @__kql_set_request_app_name NVARCHAR = 'kuku';
query_results_cache_max_age DECLARE @__kql_set_query_results_cache_max_age TIME = '00:05:00';
truncationmaxsize DECLARE @__kql_set_truncationmaxsize BIGINT = 4294967297;
maxoutputcolumns DECLARE @__kql_set_maxoutputcolumns INT = 3001;
notruncation DECLARE @__kql_set_notruncation BIT = 1;
norequesttimeout DECLARE @__kql_set_norequesttimeout BIT = 0;

Para establecer las propiedades de solicitud con KQL, vea establecer instrucción.

Coverage

Azure Data Explorer ofrece compatibilidad limitada con T-SQL. En la tabla siguiente se describen las instrucciones y características de T-SQL que no se admiten o que se admiten parcialmente.

Instrucción o característica de T-SQL Descripción
CREATE, INSERT, DROP y ALTER. No compatible
Modificaciones de esquema o datos No compatible
ANY, ALL y EXISTS No se admite
WITHIN GROUP No compatible
TOP PERCENT No compatible
TOP WITH TIES Se evalúa como TOP normal
TRUNCATE Devuelve el valor más cercano
SELECT * El orden de las columnas puede diferir de la expectativa. Use nombres de columna si el orden importa.
AT TIME ZONE No compatible
Cursores SQL No compatible
Subconsultas correlacionadas No compatible
CTE recursivas No compatible
Instrucciones dinámicas No compatible
Instrucciones de control de flujo Solo se admiten instrucciones IF THEN ELSE con un esquema idéntico para THEN y ELSE.
Nombres de columna duplicados No admitida. El nombre original se conserva para una columna.
Tipos de datos Los datos devueltos pueden diferir en el tipo de SQL Server. Por ejemplo, TINYINT y SMALLINT no tienen ningún equivalente en Azure Data Explorer y se pueden devolver como INT32 o INT64 en lugar de BYTE o INT16.