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 , DROP e ALTER |
Não suportado |
Modificações de esquemas ou dados | Não suportado |
ANY , ALL e 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 IF THEN ELSE 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 . |
Conteúdo relacionado
- Saiba mais sobre a emulação de SQL Server no Azure Data Explorer
- Utilizar o SQL para Linguagem de Pesquisa Kusto truques e dicas