Todos os produtos
Search
Central de documentação

Simple Log Service:Função de mineração de padrões (análise detalhada de dados tabulares)

Última atualização: Jul 03, 2026

A função de mineração de padrões analisa amostras com múltiplos atributos com base em condições específicas. Ela identifica padrões distintos que afetam o particionamento dos dados e ajuda a identificar rapidamente as causas das diferenças entre as condições.

diff_patterns

Esta função compara dois conjuntos de dados com a mesma estrutura para identificar padrões de atributos discretos (dimensões) divergentes. O recurso foi projetado para comparar modelos (conjuntos de itens frequentes) em dados tabulares.

Sintaxe

diff_patterns($TABLE, $HEADER, $SPLIT_COLUMN, $TEST_VAL, $CONTROL_VAL, $METRIC_COLUMN, $WEIGHT_COLUMN, $PARAM)

Parâmetros

Importante

Ao usar a função de estatísticas de diferença de padrões, garanta que $SPLIT_COLUMN contenha linhas tanto para $TEST_VAL quanto para $CONTROL_VAL. A comparação falhará se faltarem dados do grupo de teste ou do grupo de controle.

Parâmetro

Tipo de dados

Obrigatório

Descrição

$TABLE

row<array<T>, array<E>, ..., array<F>>

Sim

Tabela de entrada da função diff_patterns. Cada coluna representa uma dimensão para análise detalhada.

$HEADER

array<varchar>

Sim

Nomes das colunas correspondentes em $TABLE. A quantidade de nomes no cabeçalho deve ser igual ao número de colunas da tabela.

$SPLIT_COLUMN

varchar

Sim

Nome da coluna alvo usada para distinguir os grupos. Atualmente, a categoria de tag suporta apenas o tipo string.

$TEST_VAL

varchar

Sim

Valor em $SPLIT_COLUMN correspondente ao grupo de teste.

Garanta que $TEST_VAL exista em $SPLIT_COLUMN. Caso contrário, não será possível distinguir os dois grupos. Geralmente, $TEST_VAL corresponde a um valor anômalo.

$CONTROL_VAL

varchar

Sim

Valor em $SPLIT_COLUMN correspondente ao grupo de controle.

Garanta que $CONTROL_VAL exista em $SPLIT_COLUMN. Caso contrário, não será possível distinguir os dois grupos. $CONTROL_VAL corresponde a um valor normal.

$METRIC_COLUMN

double/int

Não

Coluna de métrica. O valor padrão é '', indicando que nenhuma coluna de métrica foi especificada.

Para analisar o impacto das combinações de dimensões sobre uma métrica específica além dos grupos de dados, especifique uma coluna de métrica. Por exemplo, se uma coluna 'qps' registrar sua métrica, o algoritmo poderá calcular as diferenças nessa métrica para várias combinações de dimensões.

$WEIGHT_COLUMN

varchar

Não

Coluna de peso. O valor padrão é '', indicando que nenhuma coluna de peso foi especificada.

Se este parâmetro não for definido, todas as linhas terão o mesmo peso. Quando uma coluna de peso é configurada, todos os cálculos consideram esses pesos. Por exemplo, uma linha com peso 2 é tratada como se aparecesse duas vezes em comparação com linhas de peso 1.

$PARAM

varchar

Não

Para mais informações, consulte detalhes do parâmetro param.

Detalhes do parâmetro param

Parâmetro

Descrição

Tipo

Obrigatório

Padrão

Valores válidos

minimum_support_fraction

Suporte mínimo de um padrão de saída no grupo de teste. Por exemplo, se um padrão aparecer com frequência de 0,1 no grupo de teste, seu suporte será 0,1. Este parâmetro controla a quantidade de padrões de saída ajustando a sensibilidade.

double

Não

0,05

(0, 1)

allow_sample

Defina se a amostragem é permitida nos cálculos.

bool

Não

true

[true, false]

agg_op

Um padrão filtra múltiplas linhas de dados. Em seguida, a função calcula o valor agregado dessas linhas na METRIC_COLUMN. Este parâmetro especifica a operação de agregação a ser usada. Se METRIC_COLUMN não for especificada, o valor padrão é 1 para o grupo de teste e 0 para o grupo de controle.

string

Não

"avg"

["sum", "avg", "max", "min", "count", "p95"]

shapley_value_min_fraction

Fração mínima do valor de Shapley para uma condição. Este parâmetro controla o número de condições em um padrão.

double

Não

0,1

(0, 1)

Exemplos

  • Análise de consulta:

    A flag set session enable_remote_functions=true é necessária porque este recurso está em preview público. Adicione essa flag manualmente. Esse requisito será removido em versões futuras.
    * | set session enable_remote_functions=true ;
    with t0 as (select  JSON_EXTRACT_SCALAR(entity, '$.platform') AS platform,  JSON_EXTRACT_SCALAR(entity, '$.region') AS region, cast(value as double) as value, if((value > 100), 'true', 'false') as anomaly_label from log), 
    t1 as ( select array_agg(platform) as platform, array_agg(region) as region, array_agg(anomaly_label) as anomaly_label, array_agg(value) as value from t0),
    t2 as (select row(platform, region, anomaly_label, value) as table_row from t1),
    t3 as (select diff_patterns(table_row, ARRAY['platform', 'region', 'anomaly_label', 'value'],'anomaly_label', 'true', 'false', 'value') as ret from t2)
    select * from t3
  • Saídas:

    [["\"platform\"='Amazon Prime'","\"platform\"='Console'","\"platform\"='VR'","\"platform\"='Mobile'","\"platform\"='PC'","\"platform\"='Hulu'","\"platform\"='Netflix' AND \"region\"='Asia'","\"platform\"='YouTube'","\"platform\"='Disney+' AND \"region\"='South America'"],[18720,56921,44516,47520,44640,8640,4320,15840,4320],[0,4999,7324,5760,4320,0,0,1440,0],[0.05248902272841978,0.15960083668399478,0.12481844742405635,0.13324136538752713,0.1251661311216164,0.024225702797732206,0.012112851398866103,0.04441378846250904,0.012112851398866103],[0.0,0.0032988991351195829,0.004833194091941553,0.003801092022062172,0.0028508190165466289,0.0,0.0,0.000950273005515543,0.0],[0.05248902272841978,0.1563019375488752,0.1199852533321148,0.12944027336546497,0.12231531210506977,0.024225702797732206,0.012112851398866103,0.0434635154569935,0.012112851398866103],[608.6946996258738,552.6152340898742,501.3011076154948,525.0147121416072,580.8151715760738,409.282718625793,631.6115865793741,603.7699053925991,526.960199868643],[0.0,58.46518308219622,55.396758003518488,49.12926473747681,44.68946999270535,0.0,0.0,20.76262974302821,0.0],null]

Detalhes do valor de retorno

Parâmetro

Tipo

Descrição

Exemplo

$RET.patterns

array<varchar>

Modelos da tabela correspondentes aos conjuntos de itens frequentes.

["\"platform\"='Amazon Prime'","\"platform\"='Console'","\"platform\"='VR'","\"platform\"='Mobile'","\"platform\"='PC'","\"platform\"='Hulu'","\"platform\"='Netflix' AND \"region\"='Asia'","\"platform\"='YouTube'","\"platform\"='Disney+' AND \"region\"='South America'"]

$RET.test_supports

array<bigint>

Frequência do modelo correspondente no grupo de teste.

[18720,56921,44516,47520,44640,8640,4320,15840,4320],[0,4999,7324,5760,4320,0,0,1440,0]

$RET.control_supports

array<bigint>

Frequência do modelo correspondente no grupo de controle.

Em comparação, os resultados exibidos primeiro na saída de diff_patterns têm frequência muito maior no grupo de teste (grupo anômalo) do que no grupo de controle (grupo normal).

0,4999,7324,5760,4320,0,0,1440,0]

$RET.test_ratio

array<double>

Proporção do modelo correspondente no grupo de teste (label=1) em relação ao conjunto total de dados de teste.

[0.05248902272841978,0.15960083668399478,0.12481844742405635,0.13324136538752713,0.1251661311216164,0.024225702797732206,0.012112851398866103,0.04441378846250904,0.012112851398866103]

$RET.control_ratio

array<double>

Proporção do modelo correspondente no grupo de controle (label=0) em relação ao conjunto total de validação.

[0.0,0.0032988991351195829,0.004833194091941553,0.003801092022062172,0.0028508190165466289,0.0,0.0,0.000950273005515543,0.0]

$RET.difference

array<double>

Diferença entre os dados do grupo de teste e os dados do grupo de controle.

[0.05248902272841978,0.1563019375488752,0.1199852533321148,0.12944027336546497,0.12231531210506977,0.024225702797732206,0.012112851398866103,0.0434635154569935,0.012112851398866103]

$RET.test_average_metric

array<double>

Valor médio da METRIC_COLUMN para dados que correspondem ao padrão. Se METRIC_COLUMN for '', este valor de retorno não tem significado.

[608.6946996258738,552.6152340898742,501.3011076154948,525.0147121416072,580.8151715760738,409.282718625793,631.6115865793741,603.7699053925991,526.960199868643]

$RET.control_average_metric

array<double>

Valor médio da METRIC_COLUMN para dados que não correspondem ao padrão. Se METRIC_COLUMN for '', este valor de retorno não tem significado.

[0.0,58.46518308219622,55.396758003518488,49.12926473747681,44.68946999270535,0.0,0.0,20.76262974302821,0.0]

$RET.error_msg

varchar/null

Mensagem de erro. Se nenhum erro ocorrer, o valor de retorno será null.

null