HLL_COUNT_INIT 関数は、同じ型の値を集約して、新しい HyperLogLog++ (HLL++) データ構造 (スケッチ) を作成します。
注意事項
HLL_COUNT_EXTRACT、HLL_COUNT_MERGE、および HLL_COUNT_MERGE_PARTIAL の各関数で使用する `BINARY` データは、HLL_COUNT_INIT 関数で生成されたものでなければなりません。他のシステムやメソッドで生成されたデータは使用できません。
コマンド構文
BINARY HLL_COUNT_INIT(<col_name> [, BIGINT <precision>])パラメーター
col_name: 必須。カラム名。カラムは `BIGINT`、`DECIMAL`、`STRING`、または `BINARY` データ型である必要があります。
precision: 任意。推定精度。値は `10` から `24` までの範囲の `BIGINT` 整数である必要があります。デフォルト値は `15` です。値が大きいほど精度は高くなりますが、スケッチに必要なストレージ領域も増加します。
戻り値
BINARY HLL++ スケッチを返します。入力 col_name が NULL の場合、戻り値は NULL です。
スケッチをマージするには、HLL_COUNT_MERGE または HLL_COUNT_MERGE_PARTIAL を使用します。
一意の値の数を取得するには、HLL_COUNT_EXTRACT を使用します。
利用シーン
次のクエリでは、HLL++ スケッチを作成し、国ごとに請求書に含まれる一意の顧客数を計算します。
SELECT
country,
HLL_COUNT_INIT(customer_id, 10) AS hll_sketch
FROM values
('UA', 'customer_id_1', 'invoice_id_11'),
('BR', 'customer_id_3', 'invoice_id_31'),
('CZ', 'customer_id_2', 'invoice_id_22'),
('CZ', 'customer_id_2', 'invoice_id_23'),
('BR', 'customer_id_3', 'invoice_id_31'),
('UA', 'customer_id_2', 'invoice_id_24')
t(country, customer_id, invoice_id)
GROUP BY country;次の結果が返されます。
+---------+------------+
| country | hll_sketch |
+---------+------------+
| BR | =02=01=0A=00=01=00=00=00=20s=8E=00 |
| CZ | =02=01=0A=00=01=00=00=00=98_$=03 |
| UA | =02=01=0A=00=02=00=00=00=F0=8B=DD=00=98_$=03 |
+---------+------------+関連関数
HLL_COUNT_INIT は HLL++ 関数です。MaxCompute は、近似集約のための一連の HLL++ 関数をサポートしています。詳細については、「HyperLogLog++ 関数」をご参照ください。