- 类别:
聚合函数 (Cardinality Estimation) , 窗口函数的语法和用法
DATASKETCHES_HLL_ESTIMATE¶
返回给定草图的基数估计值。
此函数是 HLL HyperLogLog 函数的一个版本,可以读取 Apache DataSketches 使用的格式的二进制草图。有关更多信息,请参阅 Apache DataSketches 文档 (https://datasketches.apache.org/docs/HLL/HllSketches.html)。
由 DATASKETCHES_HLL_COMBINE 函数生成的草图可用于使用 DATASKETCHES_HLL_ESTIMATE 函数计算基数估计值。
语法¶
DATASKETCHES_HLL_ESTIMATE( <binary_sketch> )
实参¶
binary_sketch
包含二进制格式草图信息的表达式。
返回¶
该函数返回 DOUBLE 类型的值。
如果输入为空,则输出为 0.0
。
备注
此函数返回的值与 HLL_ESTIMATE 函数的类型不同,后者返回一个 INTEGER 值。
示例¶
创建表并插入值:
CREATE OR REPLACE TABLE datasketches_demo(v INT, g INT);
INSERT INTO datasketches_demo SELECT 1, 1;
INSERT INTO datasketches_demo SELECT 2, 1;
INSERT INTO datasketches_demo SELECT 2, 1;
INSERT INTO datasketches_demo SELECT 2, 1;
INSERT INTO datasketches_demo SELECT 1, 2;
INSERT INTO datasketches_demo SELECT 1, 2;
INSERT INTO datasketches_demo SELECT 4, 2;
INSERT INTO datasketches_demo SELECT 4, 2;
INSERT INTO datasketches_demo SELECT 5, 2;
以下示例使用表中的数据:
返回累积二进制草图的基数估计值¶
以下示例执行以下操作:
DATASKETCHES_HLL_ACCUMULATE 函数为
v
列中的数据创建两个二进制草图,按列g
内的值1
和2
分组DATASKETCHES_HLL_ESTIMATE 函数返回每张累积草图的基数估计值。
WITH
accumulated AS (
SELECT g,
DATASKETCHES_HLL_ACCUMULATE(v) AS accumulated_sketches
FROM datasketches_demo
GROUP BY g)
SELECT g, DATASKETCHES_HLL_ESTIMATE(accumulated_sketches) AS accumulated_estimate
FROM accumulated;
+---+----------------------+
| G | ACCUMULATED_ESTIMATE |
|---+----------------------|
| 1 | 2.000000005 |
| 2 | 3.000000015 |
+---+----------------------+
您可以在 DATASKETCHES_HLL_ACCUMULATE 中的示例中看到累积草图的值。
返回组合二进制草图的基数估计值¶
以下示例执行以下操作:
DATASKETCHES_HLL_ACCUMULATE 函数为
v
列中的数据创建两个二进制草图,按列g
内的值1
和2
分组DATASKETCHES_HLL_COMBINE 函数将这些二进制草图组合起来,使其统一。
DATASKETCHES_HLL_ESTIMATE 函数返回统一草图的基数估计值。
WITH
accumulated AS (
SELECT g,
DATASKETCHES_HLL_ACCUMULATE(v) AS accumulated_sketches
FROM datasketches_demo
GROUP BY g),
combined AS (
SELECT DATASKETCHES_HLL_COMBINE(accumulated_sketches) AS unified
FROM accumulated)
SELECT DATASKETCHES_HLL_ESTIMATE(unified) AS unified_estimate
FROM combined;
+------------------+
| UNIFIED_ESTIMATE |
|------------------|
| 4.00000003 |
+------------------+
您可以在 DATASKETCHES_HLL_COMBINE 中的示例中看到组合草图的值。