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.
Applies to: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
Agrupa um conjunto de cadeias de caracteres com base na semelhança de valores.
Para cada um desses grupos, o operador retorna um pattern, counte representative. O pattern descreve melhor o grupo, no qual o caractere * representa um curinga. O count é o número de valores no grupo e o representative é um dos valores originais no grupo.
Syntax
T|reduce [kind=ReduceKind] byExpr [with [threshold=Threshold] [,characters=Characters]]
Learn more about syntax conventions.
Parameters
| Name | Tipo | Required | Description |
|---|---|---|---|
| Expr | string |
✔️ | O valor pelo qual reduzir. |
| Threshold | real |
Um valor entre 0 e 1 que determina a fração mínima de linhas necessária para corresponder aos critérios de agrupamento a fim de desencadear uma operação de redução. O valor padrão é 0.1. O parâmetro limiar determina o nível mínimo de semelhança necessário para que os valores sejam agrupados. Com um valor limite menor (mais próximo de 0), mais valores semelhantes são agrupados, resultando em menos grupos, mas mais semelhantes. Um valor limite maior (mais próximo de 1) requer menos semelhança, resultando em mais grupos menos semelhantes. Recomendamos definir um pequeno valor limite para entradas grandes. See Examples. |
|
| Characters | string |
Uma lista de caracteres que separam entre termos. O padrão é cada caractere numérico não-ascii. For examples, see Examples. | |
| ReduceKind | string |
O único valor válido é source. Se source for especificado, o operador acrescentará a coluna Pattern às linhas existentes na tabela em vez de agregar por Pattern. |
Returns
Uma tabela com tantas linhas quantos grupos e colunas intitulados pattern, counte representative. O pattern descreve melhor o grupo, no qual o caractere * representa um curinga ou espaço reservado para uma cadeia de caracteres de inserção arbitrária. O count é o número de valores no grupo e o representative é um dos valores originais no grupo.
Por exemplo, o resultado de reduce by city pode incluir:
| Pattern | Count | Representative |
|---|---|---|
| San * | 5182 | San Bernard |
| Saint * | 2846 | Saint Lucy |
| Moscow | 3726 | Moscow |
| * -em- * | 2730 | Um contra um |
| Paris | 2716 | Paris |
Examples
O exemplo nesta seção mostra 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.
O exemplo a seguir gera um intervalo de números, cria uma nova coluna com cadeias de caracteres concatenadas e inteiros aleatórios e, em seguida, agrupa as linhas pela nova coluna com parâmetros de redução específicos. O limite é definido como 0,001, o que significa que o operador agrupa valores que são muito semelhantes entre si.
range x from 1 to 1000 step 1
| project MyText = strcat("MachineLearningX", tostring(toint(rand(10))))
| reduce by MyText with threshold=0.001 , characters = "X"
Output
| Pattern | Count | Representative |
|---|---|---|
| MachineLearning* | 1000 | MachineLearningX4 |
O exemplo a seguir gera um intervalo de números, cria uma nova coluna com cadeias de caracteres concatenadas e inteiros aleatórios e, em seguida, agrupa as linhas pela nova coluna com parâmetros de redução específicos. O limite é definido como 0,9, o que significa que o operador agrupa valores de forma menos rigorosa e permite mais variância.
range x from 1 to 1000 step 1
| project MyText = strcat("MachineLearningX", tostring(toint(rand(10))))
| reduce by MyText with threshold=0.9 , characters = "X"
Output
O resultado inclui apenas os grupos em que o valor MyText aparece em pelo menos 90% das linhas.
| Pattern | Count | Representative |
|---|---|---|
| MachineLearning* | 177 | MachineLearningX9 |
| MachineLearning* | 102 | MachineLearningX0 |
| MachineLearning* | 106 | MachineLearningX1 |
| MachineLearning* | 96 | MachineLearningX6 |
| MachineLearning* | 110 | MachineLearningX4 |
| MachineLearning* | 100 | MachineLearningX3 |
| MachineLearning* | 99 | MachineLearningX8 |
| MachineLearning* | 104 | MachineLearningX7 |
| MachineLearning* | 106 | MachineLearningX2 |
If the Characters parameter is unspecified, by default the operator treats all non-alphanumeric characters (including spaces and punctuation) as term separators.
The following example shows how the reduce operator behaves when the Characters parameter isn't specified.
range x from 1 to 10 step 1 | project str = strcat("foo", "Z", tostring(x)) | reduce by str
Output
| Pattern | Count | Representative |
|---|---|---|
| others | 10 |
No entanto, se você especificar que "Z" é um separador, é como se cada valor em str fosse dois termos: foo e tostring(x):
range x from 1 to 10 step 1 | project str = strcat("foo", "Z", tostring(x)) | reduce by str with characters="Z"
Output
| Pattern | Count | Representative |
|---|---|---|
| foo* | 10 | fooZ1 |
O exemplo a seguir mostra como se pode aplicar o operador reduce a uma entrada "higienizada", na qual os GUIDs na coluna que está sendo reduzida são substituídos antes de reduzir:
Comece com alguns registros da tabela Rastrear. Em seguida, reduza a coluna Texto, que inclui GUIDs aleatórios. Como GUIDs aleatórios interferem na operação de redução, substitua-os todos pela string "GUID". Agora execute a operação de redução. No caso de existirem outros identificadores "quase aleatórios" com caracteres '-' ou '_' incorporados, trate os caracteres como não separadores de termos.
Trace
| take 10000
| extend Text = replace(@"[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}", "GUID", Text)
| reduce by Text with characters="-_"
Related content
Note
A implementação de reduce operador é amplamente baseada no artigo A Data Clustering Algorithm for Mining Patterns From Event Logs, de Risto Vaarandi.