Consulta de datos mediante T-SQL
El editor de consultas de Azure Data Explorer admite el uso de T-SQL además de su lenguaje de consulta principal, 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, vea 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
T-SQL a Lenguaje de consulta 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 anteponer las consultas T-SQL con una línea de comentario de T-SQL, --
, para indicar al editor de consultas que interprete la consulta siguiente como T-SQL y no 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)
Ejecución de funciones almacenadas
Al usar T-SQL, se recomienda crear consultas KQL optimizadas y encapsularlas en funciones almacenadas, ya que esto 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 demo con el 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 kusto
esquema. En el ejemplo, la función almacenada se ejecuta mediante kusto.Myfunction
.
Establecimiento de 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, antepone la consulta con una o varias instrucciones con la sintaxis siguiente:
Syntax
DECLARE
@__kql_set_
valor de tipo=
requestPropertyName;
Parámetros
Nombre | Tipo | Requerido | 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 | escalar | ✔️ | Valor que se va a asignar a la propiedad de solicitud. |
Nota
- Dos instrucciones deben estar separadas por un 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.
Request (propiedad) | 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, consulte set statement( Instrucción set).
Cobertura
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 compatible |
WITHIN GROUP |
No compatible |
TOP PERCENT |
No compatible |
TOP WITH TIES |
Se evalúa como normal TOP |
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 es importante. |
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 IF THEN ELSE se admiten instrucciones con un esquema idéntico para THEN y ELSE . |
Nombres de columna duplicados | No compatible. 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 pueden devolver como INT32 o INT64 en lugar de BYTE o INT16 . |
Contenido relacionado
- Obtenga información sobre la emulación de SQL Server en Azure Data Explorer
- Uso de SQL para Lenguaje de consulta Kusto hoja de referencia rápida
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de