Skip to content

Latest commit

 

History

History
127 lines (78 loc) · 4.82 KB

20221208_02.md

File metadata and controls

127 lines (78 loc) · 4.82 KB

PolarDB 开源版通过roaringbitmap支持高效用户画像等标签操作

作者

digoal

日期

2022-12-08

标签

PostgreSQL , PolarDB , 用户画像 , 标签操作 , roaringbitmap


背景

PolarDB 的云原生存算分离架构, 具备低廉的数据存储、高效扩展弹性、高速多机并行计算能力、高速数据搜索和处理; PolarDB与计算算法结合, 将实现双剑合璧, 推动业务数据的价值产出, 将数据变成生产力.

本文将介绍PolarDB开源版通过roaringbitmap支持用户画像等标签操作场景。.

测试环境为macos+docker, polardb部署请参考:

roaringbitmap for PolarDB

roaringbitmap是roaring bitmap库在PG数据库中的一种类型实现,支持roaring bitmap的存取、集合操作,聚合等运算。

通常被用在用户画像等标签操作场景。

例如,

  • 包含某些标签的人群集合,
  • 某些人的共同点、不同点,
  • 某人是否包含某标签。
  • 某标签中是否包含某人。
  • 同时包含某些标签的有多少人
  • 某个标签有多少人

1、部署

git clone --depth 1 https://github.com/ChenHuajun/pg_roaringbitmap  
  
cd pg_roaringbitmap/  
USE_PGXS=1 make  
USE_PGXS=1 make install  

2、加载插件成功

[postgres@67e1eed1b4b6 pg_roaringbitmap]$ psql -h 127.0.0.1  
psql (11.9)  
Type "help" for help.  
  
postgres=# create extension roaringbitmap ;  
CREATE EXTENSION  
postgres=# \q  

3、插件自测

export PGHOST=127.0.0.1  
  
[postgres@67e1eed1b4b6 pg_roaringbitmap]$ psql  
psql (11.9)  
Type "help" for help.  
  
postgres=# \q  
  
  
  
[postgres@67e1eed1b4b6 pg_roaringbitmap]$ USE_PGXS=1 make installcheck  
/home/postgres/tmp_basedir_polardb_pg_1100_bld/lib/pgxs/src/makefiles/../../src/test/regress/pg_regress --inputdir=./ --bindir='/home/postgres/tmp_basedir_polardb_pg_1100_bld/bin'      --dbname=contrib_regression roaringbitmap  
(using postmaster on 127.0.0.1, default port)  
============== dropping database "contrib_regression" ==============  
DROP DATABASE  
============== creating database "contrib_regression" ==============  
CREATE DATABASE  
ALTER DATABASE  
============== running regression test queries        ==============  
test roaringbitmap                ... ok  
  
  
==========================================================  
 All 1 tests passed.   
  
 POLARDB:  
 All 1 tests, 0 tests in ignore, 0 tests in polar ignore.   
==========================================================  

实际的应用请参考我之前写的相关文章, 实际就是使用roaringbitmap加速用户画像业务场景的筛选、统计、交并差等分析.

参考

https://github.com/ChenHuajun/pg_roaringbitmap

digoal's wechat