Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
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, DROPe ALTER |
Não suportado |
| Modificações de esquemas ou dados | Não suportado |
ANY, ALLe 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 IFTHENELSE 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