Consultar dados usando T-SQL

O editor de consultas do Azure Data Explorer dá suporte ao uso do T-SQL, além de sua linguagem de consulta principal, KQL (linguagem de consulta Kusto). Embora o KQL seja a linguagem de consulta recomendada, o T-SQL pode ser útil para ferramentas que não podem utilizar o KQL.

Observação

Há suporte apenas para comandos DQL (Linguagem de Consulta de Dados). Para obter mais informações, consulte Cobertura.

Consulta com T-SQL

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

Exemplo

--
SELECT * FROM StormEvents

T-SQL para Linguagem de Consulta Kusto

O editor de consultas dá suporte à capacidade de converter consultas T-SQL em KQL. Esse recurso de tradução pode ser útil para usuários que estão familiarizados com o SQL e querem saber mais sobre o KQL.

Para obter o KQL equivalente para uma instrução T-SQLSELECT, adicione o palavra-chave explain antes da consulta. A saída será a versão KQL da consulta, que pode ser útil para entender a sintaxe e os conceitos KQL correspondentes.

Lembre-se de preceder consultas T-SQL com uma linha de comentário T-SQL, --, para dizer ao editor de consultas para interpretar a consulta a seguir 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 usar o T-SQL, recomendamos criar consultas KQL otimizadas e encapsulá-las em funções armazenadas, pois isso minimiza o código T-SQL e pode aumentar o desempenho. Por exemplo, se você tiver uma função armazenada conforme descrito na tabela a seguir, poderá executá-la conforme mostrado no exemplo de código.

Nome 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)

Observação

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

Definir propriedades de solicitação

As propriedades da solicitação controlam como uma consulta é executada e retorna resultados. Para definir propriedades de solicitação com T-SQL, preceda sua consulta com uma ou mais instruções com a seguinte sintaxe:

Syntax

DECLARE@__kql_set_valor do tipo=requestPropertyName;

Parâmetros

Nome Tipo Obrigatório Descrição
requestPropertyName string ✔️ O nome da propriedade de solicitação a ser definida.
tipo string ✔️ O tipo de dados T-SQL do valor.
value escalar ✔️ O valor a ser atribuído à propriedade de solicitação.

Observação

  • Duas instruções devem ser separadas por ponto e vírgula e não deve haver nenhuma linha vazia antes da consulta.
  • As propriedades de solicitação se aplicam somente às instruções de expressão tabular que se seguem imediatamente.

Exemplos

A tabela a seguir mostra exemplos de como definir propriedades de solicitação com T-SQL.

Propriedade Request 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 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 definir propriedades de solicitação com KQL, consulte instrução set.

Cobertura

O Azure Data Explorer oferece suporte limitado para T-SQL. A tabela a seguir descreve as instruções T-SQL e os recursos que não têm suporte ou têm suporte parcial.

Instrução ou recurso T-SQL Descrição
CREATE, INSERT, DROP e ALTER Sem suporte
Modificações de esquema ou dados Sem suporte
ANY, ALL, e EXISTS Sem suporte
WITHIN GROUP Sem suporte
TOP PERCENT Sem suporte
TOP WITH TIES Avaliado como regular TOP
TRUNCATE Retorna o valor mais próximo
SELECT * A ordem das colunas pode ser diferente da expectativa. Use nomes de coluna se a ordem for importante.
AT TIME ZONE Sem suporte
Cursores SQL Sem suporte
Subconsultas correlacionadas Sem suporte
CTEs recursivas Sem suporte
Instruções dinâmicas Sem suporte
Instruções de controle de fluxo Somente IFTHENELSE instruções com um esquema idêntico para THEN e ELSE têm suporte.
Nomes de coluna duplicados Não há suporte. O nome original é preservado para uma coluna.
Tipos de dados Os dados retornados podem ser diferentes no tipo de SQL Server. Por exemplo, TINYINT e SMALLINT não têm equivalente no Azure Data Explorer e podem retornar como INT32 ou INT64 em vez de BYTE ou INT16.