日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

hll插件支持的數(shù)據(jù)類型HyperLogLog(hll)可以幫助您快速預(yù)估PV、UV等業(yè)務(wù)指標(biāo)。

背景信息

hll插件支持一種可變長、類似集合的數(shù)據(jù)類型HyperLogLog(hll),常用于在指定精度下返回近似的distinct值,例如,1280字節(jié)的hll數(shù)據(jù)類型可以高精度地估計(jì)出近百億的distinct值。hll適合互聯(lián)網(wǎng)廣告分析或其他有類似預(yù)估分析計(jì)算需求的行業(yè),可以快速預(yù)估PV、UV等業(yè)務(wù)指標(biāo)。

創(chuàng)建hll插件

CREATE EXTENSION hll;

基礎(chǔ)操作

  • 創(chuàng)建一個(gè)含有hll字段的表,命令如下:

    CREATE TABLE agg (id INT PRIMARY KEY, userids hll);
  • 將int數(shù)據(jù)類型轉(zhuǎn)換為hll_hashval類型,命令如下:

    SELECT 1::hll_hashval;

基本操作符

  • hll類型支持如下操作符:

    • =

    • !=

    • <>

    • ||

    • #

    示例如下:

    SELECT hll_add_agg(1::hll_hashval) = hll_add_agg(2::hll_hashval);
    SELECT hll_add_agg(1::hll_hashval) || hll_add_agg(2::hll_hashval);
    SELECT #hll_add_agg(1::hll_hashval);
  • hll_hashval類型支持如下操作符:

    • =

    • !=

    • <>

    示例如下:

    SELECT 1::hll_hashval = 2::hll_hashval;
    SELECT 1::hll_hashval <> 2::hll_hashval;

基本函數(shù)

  • 支持hll_hash_boolean、hll_hash_smallint和hll_hash_bigint等hash函數(shù),示例如下:

    SELECT hll_hash_boolean(true);
    SELECT hll_hash_integer(1);
  • 支持hll_add_agg函數(shù),可以將int轉(zhuǎn)換為hll格式,示例如下:

    SELECT hll_add_agg(1::hll_hashval);
  • 支持hll_union函數(shù),可以將hll并集,示例如下:

    SELECT hll_union(hll_add_agg(1::hll_hashval), hll_add_agg(2::hll_hashval));
  • 支持hll_set_defaults函數(shù),可以設(shè)置精度,示例如下:

    SELECT hll_set_defaults(15,5,-1,1);
  • 支持hll_print函數(shù),用于打印debug信息,示例如下:

    SELECT hll_print(hll_add_agg(1::hll_hashval));

刪除hll插件

DROP EXTENSION hll;

示例

CREATE TABLE access_date (acc_date DATE UNIQUE, userids hll);
INSERT INTO access_date
     SELECT current_date, hll_add_agg(hll_hash_integer(user_id))
     FROM generate_series(1,10000) t(user_id);
INSERT INTO access_date
     SELECT current_date-1, hll_add_agg(hll_hash_integer(user_id))
     FROM generate_series(5000,20000) t(user_id);
INSERT INTO access_date
     SELECT current_date-2, hll_add_agg(hll_hash_integer(user_id))
     FROM generate_series(9000,40000) t(user_id);

SELECT #userids FROM access_date WHERE acc_date=current_date;
     ?column?
------------------
 9725.852733707077
(1 row)

SELECT #userids FROM access_date WHERE acc_date=current_date-1;
     ?column?
------------------
 14968.65968832792
(1 row)

SELECT #userids FROM access_date WHERE acc_date=current_date-2;
     ?column?
------------------
 29361.520914991113
(1 row)