Hoja de referencia rápida de SQL a Kusto

Kusto admite un subconjunto del lenguaje SQL. Consulte la lista de problemas conocidos de SQL para obtener una lista completa de las características no admitidas.

El lenguaje principal para interactuar con Kusto es KQL (lenguaje de consulta Kusto). Para facilitar la transición y la experiencia de aprendizaje, puede usar Kusto para traducir consultas SQL a KQL. Envíe una consulta SQL a Kusto con un prefijo de verbo "EXPLAIN".

Por ejemplo:

EXPLAIN 
SELECT COUNT_BIG(*) as C FROM StormEvents 
Consultar
StormEvents
| summarize C=count()
| proyecto C

Hoja de referencia rápida de SQL a Kusto

En la tabla siguiente se muestran las consultas de ejemplo en SQL y sus equivalentes en KQL.

Category Consulta SQL Consulta de Kusto
Selección de datos de una tabla SELECT * FROM dependencies dependencies
-- SELECT name, resultCode FROM dependencies dependencies | project name, resultCode
-- SELECT TOP 100 * FROM dependencies dependencies | take 100
Evaluación de un valor nulo DEPENDENCIAS SELECT * FROM
WHERE resultCode IS NOT NULL
Dependencias
| where isnotnull(resultCode)
Operadores de comparación (fecha) DEPENDENCIAS SELECT * FROM
WHERE timestamp > getdate()-1
Dependencias
| where timestamp > ago(1d)
-- DEPENDENCIAS SELECT * FROM
WHERE timestamp BETWEEN ... Y...
Dependencias
| where timestamp > datetime(2016-10-01)
  y timestamp < = datetime(2016-11-01)
Operadores de comparación (cadena) DEPENDENCIAS SELECT * FROM
WHERE type = "Azure blob"
Dependencias
| where type == "Azure blob"
-- -- subcadena
DEPENDENCIAS SELECT * FROM
Tipo WHERE como "%blob%"
Subcadena
dependencies
| donde type contiene "blob"
-- -- comodín
DEPENDENCIAS SELECT * FROM
Tipo WHERE como "Azure%"
Comodín
dependencies
| donde el tipo comienza con "Azure"
O
dependencies
| donde el tipo coincide con regex "^Azure.*"
Comparación (valores booleanos) DEPENDENCIAS SELECT * FROM
¡DÓNDE! (correcto)
Dependencias
| where success == "False"
Agrupación, agregación Select name, AVG(duration) FROM dependencies
Nombre de GROUP BY
Dependencias
| summarize avg(duration) by name
Distinct SELECT DISTINCT name, type FROM dependencies Dependencias
| summarize por nombre, tipo
-- SELECT name, COUNT(DISTINCT type)
Dependencias from
Nombre de GROUP BY
Dependencias de
| summarize por nombre, escriba | summarize count() por nombre
o aproximado para conjuntos grandes
dependencies
| summarize dcount(type) by name
Alias de columna, extensión SELECT operationName como Nombre, AVG(duration) como dependencias AvgD FROM
Nombre de GROUP BY
Dependencias
| summarize AvgD = avg(duration) by Name=operationName
Ordenación Select name, timestamp FROM dependencies
ASC de marca de tiempo ORDER BY
Dependencias
| nombre del proyecto, marca de tiempo
| order by timestamp asc nulls last
Principales n por medida SELECT TOP 100 name, COUNT(*) as Count FROM dependencies
Nombre de GROUP BY
ORDER BY Count DESC
Dependencias
| summarize Count = count() por nombre
| top 100 by Count desc
Union DEPENDENCIAS SELECT * FROM
UNION
SELECT * FROM excepciones
union dependencies, exceptions
-- DEPENDENCIAS SELECT * FROM
WHERE timestamp > ...
UNION
SELECT * FROM excepciones
WHERE timestamp > ...
Dependencias
| where timestamp > ago(1d)
| Unión
  (excepciones)
  | where timestamp > ago(1d))
Join DEPENDENCIAS SELECT * FROM
Excepción LEFT OUTER JOIN
ON dependencies.operation_Id = exceptions.operation_Id
Dependencias
| join kind = leftouter
  (excepciones)
on $left.operation_Id == $right.operation_Id
Consultas anidadas DEPENDENCIAS SELECT * FROM
WHERE resultCode ==
(SELECT TOP 1 resultCode FROM dependencies
WHERE resultId = 7
ORDER BY timestamp DESC)
Dependencias
| where resultCode == toscalar(
  dependencies
  | where resultId == 7
  | top 1 by timestamp desc
  | project resultCode)
Having Dependencias SELECT COUNT(*) FROM
Nombre de GROUP BY
HAVING COUNT(*) > 3
Dependencias
| summarize Count = count() por nombre
| where Count > 3