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 . |
Contenido relacionado
- Más información sobre la emulación de SQL Server en Azure Data Explorer
- Uso de la hoja de características clave del lenguaje de consulta SQL a Kusto