Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Applies to: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
As consultas enviadas ao Kusto podem incluir um conjunto de pares de nomes ou valores. The pairs are called query parameters, together with the query text itself. A consulta pode fazer referência a um ou mais valores, especificando nomes e tipo, em uma instrução de declaração de parâmetros de consulta .
Os parâmetros de consulta têm dois usos principais:
- Como mecanismo de proteção contra ataques de injeção.
- Como forma de parametrizar consultas.
In particular, client applications that combine user-provided input in queries that they then send to Kusto should use the mechanism to protect against the Kusto equivalent of SQL Injection attacks.
Declarando parâmetros de consulta
Para fazer referência a parâmetros de consulta, o texto da consulta, ou as funções que ele usa, deve primeiro declarar qual parâmetro de consulta ele usa. Para cada parâmetro, a declaração fornece o nome e o tipo escalar. Opcionalmente, o parâmetro também pode ter um valor padrão. O padrão é usado se a solicitação não fornecer um valor concreto para o parâmetro. Kusto então analisa o valor do parâmetro de consulta, de acordo com suas regras normais de análise para esse tipo.
Syntax
declare
query_parameters
(
Name1:Type1 [=DefaultValue1] [,...] );
Learn more about syntax conventions.
Parameters
| Name | Tipo | Required | Description |
|---|---|---|---|
| Name1 | string |
✔️ | O nome de um parâmetro de consulta usado na consulta. |
| Type1 | string |
✔️ | O tipo correspondente, como string ou datetime. Os valores fornecidos pelo usuário são codificados como strings. O método de análise apropriado é aplicado ao parâmetro query para obter um valor fortemente tipado. |
| DefaultValue1 | string |
Um valor padrão para o parâmetro. Esse valor deve ser um literal do tipo escalar apropriado. |
Note
- Como funções definidas pelo usuário, os parâmetros de consulta do tipo
dynamicnão podem ter valores padrão. - As instruções Let, set e tabular são amarradas juntas/separadas por um ponto-e-vírgula, caso contrário, elas não serão consideradas parte da mesma consulta.
Example
Os exemplos nesta seção mostram como usar a sintaxe para ajudá-lo a começar.
The examples in this article use publicly available tables in the help cluster, such as the
StormEventstable in the Samples database.
The examples in this article use publicly available tables, such as the
Weathertable in the Weather analytics sample gallery. Talvez seja necessário modificar o nome da tabela na consulta de exemplo para corresponder à tabela em seu espaço de trabalho.
Declarar parâmetros de consulta
This query retrieves storm events from the StormEvents table where the total number of direct and indirect injuries exceeds a specified threshold (default is 90). It then projects the EpisodeId, EventType, and the total number of injuries for each of these events.
declare query_parameters(maxInjured:long = 90);
StormEvents
| where InjuriesDirect + InjuriesIndirect > maxInjured
| project EpisodeId, EventType, totalInjuries = InjuriesDirect + InjuriesIndirect
Output
| EpisodeId | EventType | totalInjuries |
|---|---|---|
| 12459 | Winter Weather | 137 |
| 10477 | Excessive Heat | 200 |
| 10391 | Heat | 187 |
| 10217 | Excessive Heat | 422 |
| 10217 | Excessive Heat | 519 |
Especificar parâmetros de consulta em um aplicativo cliente
Os nomes e valores dos parâmetros de consulta são fornecidos como valores string pelo aplicativo que faz a consulta. Nenhum nome pode repetir-se.
A interpretação dos valores é feita de acordo com a instrução de declaração de parâmetros de consulta. Cada valor é analisado como se fosse um literal no corpo de uma consulta. A análise é feita de acordo com o tipo especificado pela instrução de declaração de parâmetros de consulta.
API REST
Os parâmetros de consulta são fornecidos por aplicativos cliente por meio do slot de properties do objeto JSON do corpo da solicitação, em um pacote de propriedades aninhado chamado Parameters. Por exemplo, aqui está o corpo de uma chamada de API REST para Kusto que calcula a idade de algum usuário, presumivelmente fazendo com que o aplicativo peça o aniversário do usuário.
{
"ns": null,
"db": "myDB",
"csl": "declare query_parameters(birthday:datetime); print strcat(\"Your age is: \", tostring(now() - birthday))",
"properties": "{\"Options\":{},\"Parameters\":{\"birthday\":\"datetime(1970-05-11)\",\"courses\":\"dynamic(['Java', 'C++'])\"}}"
}
Kusto SDKs
To learn how to provide the names and values of query parameters when using Kusto client libraries, see Use query parameters to protect user input.
Kusto.Explorer
To set the query parameters sent when making a request to the service, use the Query parameters "wrench" icon (ALT + P).