すべてのプロダクト
Search
ドキュメントセンター

Simple Log Service:パターンマイニング (表形式データドリルダウン分析) 関数

最終更新日:Nov 09, 2025

パターンマイニング関数は、指定された条件に基づいて複数の属性を持つサンプルを分析します。データのパーティション分割に影響を与える明確なパターンのセットを特定します。この関数は、条件間の差異の原因を迅速に診断するのに役立ちます。

diff_patterns

この関数は、同じ構造を持つ 2 つのデータセットを比較して、それらの間で異なる不連続属性 (ディメンション) のパターンを見つけます。この関数は、表形式データ内のテンプレート (頻出アイテムセット) を比較するように設計されています。

構文

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

パラメーター

重要

パターン差分統計関数を使用する場合、$SPLIT_COLUMN に $TEST_VAL と $CONTROL_VAL の両方の行が含まれていることを確認してください。テスト群または対照群のデータが欠落している場合、関数は比較を実行できません。

パラメーター

データ型

必須

説明

$TABLE

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

はい

diff_patterns 関数の入力テーブル。各列はドリルダウン分析のためのディメンション列です。

$HEADER

array<varchar>

はい

列名。これらの名前は $TABLE の列に対応します。ヘッダー名の数はテーブルの列数と一致する必要があります。

$SPLIT_COLUMN

varchar

はい

グループを区別するために使用されるターゲット列の名前。タグカテゴリは現在、文字列型のみをサポートしています。

$TEST_VAL

varchar

はい

$SPLIT_COLUMN 内のテスト群に対応する値。

$TEST_VAL が $SPLIT_COLUMN に存在することを確認してください。そうでない場合、2 つのグループを区別できません。通常、$TEST_VAL は異常値に対応します。

$CONTROL_VAL

varchar

はい

$SPLIT_COLUMN 内の対照群に対応する値。

$CONTROL_VAL が $SPLIT_COLUMN に存在することを確認してください。そうでない場合、2 つのグループを区別できません。$CONTROL_VAL は正常値に対応します。

$METRIC_COLUMN

double/int

いいえ

メトリック列。デフォルト値は '' で、メトリック列が指定されていないことを意味します。

データグループに加えて、特定のメトリックに対するディメンションの組み合わせの影響を分析したい場合は、メトリック列を指定します。たとえば、'qps' 列がメトリックを記録する場合、アルゴリズムはさまざまなディメンションの組み合わせについてこのメトリックの差を計算できます。

$WEIGHT_COLUMN

varchar

いいえ

重み列。デフォルト値は '' で、重み列が指定されていないことを意味します。

このパラメーターが設定されていない場合、すべての行は同じ重みを持つと見なされます。重み列が設定されている場合、すべての計算で重みが考慮されます。たとえば、重みが 2 の行は、重みが 1 の行と比較して 2 回出現したものとして扱われます。

$PARAM

varchar

いいえ

詳細については、「param パラメーターの詳細」をご参照ください。

param パラメーターの詳細

パラメーター名

説明

必須

デフォルト

有効な値

minimum_support_fraction

テスト群における出力パターンの最小サポート。たとえば、テスト群でパターンが 0.1 の頻度で出現する場合、そのサポートは 0.1 です。このパラメーターは、秘密度を調整して出力パターンの数をコントロールします。

double

いいえ

0.05

(0, 1)

allow_sample

計算にサンプリングを許可するかどうかを指定します。

bool

いいえ

true

[true, false]

agg_op

パターンは複数行のデータをフィルターします。次に関数は、METRIC_COLUMN 内のこれらの行の集約値を計算します。このパラメーターは、使用する集約操作を指定します。METRIC_COLUMN が指定されていない場合、デフォルト値はテスト群では 1、対照群では 0 です。

string

いいえ

"avg"

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

shapley_value_min_fraction

条件の最小 Shapley 値の割合。このパラメーターは、パターン内の条件の数をコントロールします。

double

いいえ

0.1

(0, 1)

  • クエリ分析:

    この機能はパブリックプレビュー中のため、set session enable_remote_functions=true フラグが必要です。このフラグは手動で追加する必要があります。この要件は将来のバージョンで削除される予定です。
    * | 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
  • 出力:

    [["\"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]

戻り値の詳細

パラメーター

説明

$RET.patterns

array<varchar>

テーブルテンプレート。頻出アイテムセットです。

["\"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>

テスト群における対応するテンプレートの頻度。

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

$RET.control_supports

array<bigint>

対照群における対応するテンプレートの頻度。

比較すると、diff_patterns の出力で先に表示される結果は、対照群 (正常なグループ) よりもテスト群 (異常なグループ) での頻度がはるかに高くなっています。

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

$RET.test_ratio

array<double>

テスト群 (label=1) における対応するテンプレートの、テストデータセット全体に対する比率。

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

$RET.control_ratio

array<double>

対照群 (label=0) における対応するテンプレートの、検証セット全体に対する比率。

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

$RET.difference

array<double>

テスト群データと対照群データの差。

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

$RET.test_average_metric

array<double>

パターンに一致するデータの METRIC_COLUMN の平均値。METRIC_COLUMN が '' の場合、この戻り値は意味がありません。

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

$RET.control_average_metric

array<double>

パターンに一致しないデータの METRIC_COLUMN の平均値。METRIC_COLUMN が '' の場合、この戻り値は意味がありません。

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

$RET.error_msg

varchar/null

エラーメッセージ。エラーが発生しない場合、戻り値は null です。

null