メインコンテンツまでスキップ
バージョン: 2.1

QUANTILE_STATE

QUANTILE_STATE

説明

QUANTILE_STATE

2.0では、agg_state関数をサポートしており、この型の代わりにagg_state quantile_union(quantile_state not null)の使用を推奨します。

QUANTILE_STATEはキー列として使用できません。HLL型の列はAggregateTable、DuplicateTable、UniqueTableで使用できます。AggregateTableで使用する場合、Table構築時の集約タイプはHLL_UNIONです。

ユーザーは長さとデフォルト値を指定する必要がありません。長さはデータ集約の度合いに応じてシステム内で制御されます。 また、QUANTILE_STATE列は、サポートされているQUANTILE_PERCENT、QUANTILE_UNION、TO_QUANTILE_STATE関数を通じてのみクエリまたは使用できます。
QUANTILE_STATEは分位数の近似値を計算するための型です。同じキーを持つ異なる値は、読み込みプロセス中に事前集約されます。集約される値の数が2048を超えない場合、すべてのデータが詳細に記録されます。集約される値の数が2048を超える場合、TDigestアルゴリズムを使用してデータを集約(クラスタ化)し、クラスタ化後の重心点を保存します。

関連関数:

QUANTILE_UNION(QUANTILE_STATE):

この関数は集約関数で、異なる分位数計算の中間結果を集約するために使用されます。この関数が返す結果は依然としてQUANTILE_STATEです


TO_QUANTILE_STATE(DOUBLE raw_data [,FLOAT compression]):

この関数は数値型をQUANTILE_STATE型に変換します
compressionパラメータはオプションで、[2048, 10000]の範囲で設定できます。
値が大きいほど分位数近似計算の精度が高くなり、メモリ消費量が増加し、計算時間が長くなります。
compressionパラメータが未指定または設定値が[2048, 10000]の範囲外の場合、デフォルト値2048で実行されます

QUANTILE_PERCENT(QUANTILE_STATE, percent):
この関数は分位数計算の中間結果変数(QUANTILE_STATE)を特定の分位数値に変換します

注意

現在QUANTILE_STATEはAggregateモデルTableでのみ使用できます。使用前に以下のコマンドでQUANTILE_STATE型機能のスイッチを有効にする必要があります:

$ mysql-client > admin set frontend config("enable_quantile_state_type"="true");

この方法では、FEプロセスの再起動後にconfigがリセットされます。永続的な設定のためには、fe.conf内にconfig enable_quantile_state_type=trueを追加できます。

example

select QUANTILE_PERCENT(QUANTILE_UNION(v1), 0.5) from test_table group by k1, k2, k3;

keywords

QUANTILE_STATE, QUANTILE_UNION, TO_QUANTILE_STATE, QUANTILE_PERCENT