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 IF THEN ELSE 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 . |
Conteúdo relacionado
- Saiba mais sobre SQL Server emulação no Azure Data Explorer
- Usar o SQL para Linguagem de Consulta Kusto folha de referências
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de