Compartilhar via


Consultar dados usando T-SQL

O editor de consultas do Azure Data Explorer dá suporte ao uso de T-SQL, além da sua linguagem de consulta principal, 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 podem utilizar o KQL.

Observação

Só há suporte para comandos da Linguagem de Consulta de Dados (DQL). 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 como KQL.

Exemplo

--
SELECT * FROM StormEvents

T-SQL para a linguagem de consulta Kusto

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

Para obter o KQL equivalente a uma instrução T-SQL SELECT, adicione a 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 prefixar consultas T-SQL com uma linha de comentário T-SQL, --, para informar ao editor de consultas que interprete a consulta seguinte 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 T-SQL, recomendamos que você crie consultas KQL otimizadas e as encapsule 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 as funções armazenadas e os procedimentos armazenados do sistema SQL emulado, execute as funções armazenadas com uma referência explícita ao esquema kusto. No exemplo, a função armazenada será executada usando kusto.Myfunction.

Definir as propriedades da solicitação

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

Sintaxe

DECLARE @__kql_set_requestPropertyName tipo = valor;

Parâmetros

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

Observação

  • As 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 declarações de expressão tabular que as seguem imediatamente.

Exemplos

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

Propriedade de solicitação 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; DECLARE @__kql_set_notruncation BIT = 1;
norequesttimeout DECLARE @__kql_set_norequesttimeout BIT = 0; DECLARE @__kql_set_norequesttimeout BIT = 0;

Para definir propriedades de solicitação com KQL, consulte a instrução set.

Cobertura

O Azure Data Explorer dá suporte limitado para T-SQL. A tabela a seguir descreve os comandos e recursos T-SQL 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 esperada. Use os nomes das colunas 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 Há suporte apenas para IF THEN ELSE com um esquema idêntico para THEN e ELSE.
Nomes de coluna duplicados Não há suporte. O nome original é preservado para uma coluna.
Tipos de dados Os dados retornados podem diferir em tipo do 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.