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 . |
Conteúdo relacionado
- Saiba mais sobre a emulação do SQL Server no Azure Data Explorer
- Use o folha de referências rápidas de SQL para Linguagem de Consulta Kusto