Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Applies to: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
Agrupa un conjunto de cadenas en función de la similitud de valores.
Para cada grupo de este tipo, el operador devuelve un pattern, county representative. El pattern mejor describe el grupo, en el que el * carácter representa un carácter comodín.
count es el número de valores del grupo y representative es uno de los valores originales del grupo.
Syntax
T|reduce [kind=ReduceKind] byExpr [with [threshold=Threshold] [,characters=Characters]]
Learn more about syntax conventions.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| Expr | string |
✔️ | Valor por el que se va a reducir. |
| Threshold | real |
Valor entre 0 y 1 que determina la fracción mínima de filas necesarias para que coincidan con los criterios de agrupación para desencadenar una operación de reducción. El valor predeterminado es 0.1. El parámetro threshold determina el nivel mínimo de similitud necesario para agrupar los valores. Con un valor de umbral más pequeño (más cerca de 0), se agrupan más valores similares, lo que da lugar a menos grupos pero más similares. Un valor de umbral mayor (más cerca de 1) requiere menos similitud, lo que da lugar a más grupos que son menos similares. Se recomienda establecer un valor de umbral pequeño para entradas grandes. See Examples. |
|
| Characters | string |
Lista de caracteres que separan entre términos. El valor predeterminado es cada carácter numérico no ascii. For examples, see Examples. | |
| ReduceKind | string |
El único valor válido es source. Si source se especifica, el operador anexa la Pattern columna a las filas existentes de la tabla en lugar de agregar mediante Pattern. |
Returns
Una tabla con tantas filas como hay grupos y columnas tituladas pattern, county representative. El pattern mejor describe el grupo, en el que el * carácter representa un carácter comodín o marcador de posición para una cadena de inserción arbitraria.
count es el número de valores del grupo y representative es uno de los valores originales del grupo.
Por ejemplo, el resultado de reduce by city podría incluir:
| Pattern | Count | Representative |
|---|---|---|
| San * | 5182 | San Bernard |
| Saint * | 2846 | Saint Lucy |
| Moscow | 3726 | Moscow |
| *-en-* | 2730 | Uno en uno |
| Paris | 2716 | Paris |
Examples
En el ejemplo de esta sección se muestra cómo usar la sintaxis para ayudarle a empezar.
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. Es posible que tenga que modificar el nombre de la tabla en la consulta de ejemplo para que coincida con la tabla del área de trabajo.
En el ejemplo siguiente se genera un intervalo de números, se crea una nueva columna con cadenas concatenadas y enteros aleatorios y, a continuación, se agrupan las filas por la nueva columna con parámetros de reducción específicos. El umbral se establece en 0,001, lo que significa que los valores de los operadores que son muy similares entre sí.
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 |
En el ejemplo siguiente se genera un intervalo de números, se crea una nueva columna con cadenas concatenadas y enteros aleatorios y, a continuación, se agrupan las filas por la nueva columna con parámetros de reducción específicos. El umbral se establece en 0,9, lo que significa que el operador agrupa los valores menos estrictamente y permite más varianza.
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
El resultado incluye solo los grupos en los que el valor MyText aparece en al menos 90% de las filas.
| 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 |
Sin embargo, si especifica que "Z" es un separador, es como si cada valor de str sea dos términos: foo y 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 |
En el ejemplo siguiente se muestra cómo se puede aplicar el operador reduce a una entrada "saneada", en la que los GUID de la columna que se reducen se reemplazan antes de reducir:
Comience con algunos registros de la tabla Trace. A continuación, reduzca la columna Texto que incluye GUID aleatorios. Dado que los GUID aleatorios interfieren con la operación de reducción, reemplácelos todos por la cadena "GUID". Ahora realice la operación de reducción. En caso de que haya otros identificadores "cuasialeatorios" con caracteres incrustados "-" o "_", trate los caracteres como separadores de términos.
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
La implementación del reduce operador se basa en gran medida en el documento A Data Clustering Algorithm for Mining Patterns From Event Logs, de Risto Vaarandi.