Consultar dados com t-SQL

O editor de consultas do Azure Data Explorer suporta a utilização do T-SQL, além da linguagem de consulta principal, a linguagem de consulta Kusto (KQL). Embora o KQL seja a linguagem de consulta recomendada, o T-SQL pode ser útil para ferramentas que não conseguem utilizar o KQL.

Nota

Apenas são suportados os comandos da Linguagem de Consulta de Dados (DQL). Para obter mais informações, consulte Cobertura.

Consultar com T-SQL

Para executar uma consulta T-SQL, inicie a consulta com uma linha de comentários T-SQL vazia: --. A -- sintaxe indica ao editor de consultas para interpretar a seguinte consulta como T-SQL e não KQL.

Exemplo

--
SELECT * FROM StormEvents

T-SQL para Linguagem de Pesquisa Kusto

O editor de consultas suporta a capacidade de traduzir consultas T-SQL para KQL. Esta funcionalidade de tradução pode ser útil para os utilizadores que estão familiarizados com o SQL e querem saber mais sobre o KQL.

Para obter o KQL equivalente para uma instrução T-SQL SELECT , adicione a palavra-chave explain antes da consulta. O resultado será a versão KQL da consulta, que pode ser útil para compreender a sintaxe e os conceitos de KQL correspondentes.

Lembre-se de preceder consultas T-SQL com uma linha de comentários T-SQL, --, para dizer ao editor de consultas para interpretar a seguinte consulta como T-SQL e não KQL.

Exemplo

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

Saída

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)

Executar funções armazenadas

Ao utilizar o T-SQL, recomendamos que crie consultas KQL otimizadas e as encapsule em funções armazenadas, uma vez que, ao fazê-lo, minimiza o código T-SQL e pode aumentar o desempenho. Por exemplo, se tiver uma função armazenada, conforme descrito na tabela seguinte, pode executá-la conforme mostrado no exemplo de código.

Name Parâmetros Corpo Pasta DocString
MyFunction (myLimit: long) {StormEvents | take myLimit} MyFolder Função de demonstração com parâmetro
SELECT * FROM kusto.MyFunction(10)

Nota

Para distinguir entre funções armazenadas e procedimentos armazenados do sistema SQL emulado, execute funções armazenadas com uma referência explícita ao kusto esquema. No exemplo, a função armazenada é executada com kusto.Myfunction.

Definir propriedades do pedido

As propriedades do pedido controlam a forma como uma consulta executa e devolve resultados. Para definir as propriedades do pedido com T-SQL, prefacete a consulta com uma ou mais instruções com a seguinte sintaxe:

Syntax

DECLARE @__kql_set_valor do tipo=requestPropertyName;

Parâmetros

Nome Tipo Necessário Descrição
requestPropertyName string ✔️ O nome da propriedade do pedido a definir.
tipo string ✔️ O tipo de dados T-SQL do valor.
value escalar ✔️ O valor a atribuir à propriedade do pedido.

Nota

  • Duas instruções têm de ser separadas por ponto e vírgula e não deve haver uma linha vazia antes da consulta.
  • As propriedades do pedido aplicam-se apenas às instruções de expressão tabular que se seguem imediatamente.

Exemplos

A tabela seguinte mostra exemplos de como definir as propriedades do pedido com o T-SQL.

Propriedade Do pedido Exemplo
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 HORA = "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 definir as propriedades do pedido com kQL, veja definir instrução.

Cobertura

O Azure Data Explorer oferece suporte limitado para T-SQL. A tabela seguinte descreve as instruções e funcionalidades T-SQL que não são suportadas ou são parcialmente suportadas.

Instrução ou funcionalidade T-SQL Description
CREATE, INSERT, DROPe ALTER Não suportado
Modificações de esquemas ou dados Não suportado
ANY, ALLe EXISTS Não suportado
WITHIN GROUP Não suportado
TOP PERCENT Não suportado
TOP WITH TIES Avaliado como regular TOP
TRUNCATE Devolve o valor mais próximo
SELECT * A ordem das colunas pode ser diferente da expetativa. Utilize nomes de colunas se a ordem for importante.
AT TIME ZONE Não suportado
Cursores de SQL Não suportado
Subconsultas correlacionadas Não suportado
CTEs Recursivos Não suportado
Instruções dinâmicas Não suportado
Instruções de controlo de fluxo Apenas IFTHENELSE as instruções com um esquema idêntico para THEN e ELSE são suportadas.
Duplicar nomes de colunas Não suportado. O nome original é preservado para uma coluna.
Tipos de dados Os dados devolvidos podem diferir do tipo SQL Server. Por exemplo, TINYINT e SMALLINT não têm equivalente no Azure Data Explorer e podem devolver como INT32 ou INT64 em vez de BYTE ou INT16.