AnalyticDB for PostgreSQL mencakup fitur-fitur Greenplum Database dan mendukung ekstensi hll. Produk ini ideal untuk industri seperti periklanan internet dan analisis estimasi yang memerlukan estimasi cepat terhadap metrik bisnis seperti jumlah tampilan halaman (PV) dan pengunjung unik (UV).
Instal ekstensi hll
Sebelum menggunakan ekstensi hll pada instance AnalyticDB for PostgreSQL, instal ekstensi hll melalui halaman Ekstensi dari instance tersebut. Untuk informasi lebih lanjut, lihat Instal, Perbarui, dan Hapus Ekstensi.
Tipe dasar
Jalankan pernyataan berikut untuk membuat tabel dengan bidang hll:
create table agg (id int primary key,userids hll);Jalankan pernyataan berikut untuk mengonversi tipe int menjadi tipe hll_hashval:
select 1::hll_hashval;
Operator dasar
Tipe hll mendukung operator =, !=, <>, ||, dan #.
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);Tipe hll_hashval mendukung operator =, !=, dan <>.
select 1::hll_hashval = 2::hll_hashval; select 1::hll_hashval <> 2::hll_hashval;
Fungsi dasar
Fungsi hash seperti hll_hash_boolean, hll_hash_smallint, dan hll_hash_bigint.
select hll_hash_boolean(true); select hll_hash_integer(1);hll_add_agg: Mengonversi nilai tipe int menjadi tipe hll_hashval dan menggabungkan nilai tersebut.
select hll_add_agg(1::hll_hashval);hll_union: Menggabungkan bidang hll.
select hll_union(hll_add_agg(1::hll_hashval),hll_add_agg(2::hll_hashval));hll_set_defaults: Menetapkan Presisi.
select hll_set_defaults(15,5,-1,1);hll_print: Menampilkan informasi debugging.
select hll_print(hll_add_agg(1::hll_hashval));
Contoh
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);
postgres=# select #userids from access_date where acc_date=current_date;
?column?
------------------
9.725,85273370708
(1 baris)
postgres=# select #userids from access_date where acc_date=current_date-1;
?column?
------------------
14.968,6596883279
(1 baris)
postgres=# select #userids from access_date where acc_date=current_date-2;
?column?
------------------
29.361,5209149911
(1 baris)