作者
digoal
日期
2019-11-28
标签
PostgreSQL , roaringbitmap , tag , 图像 , cube , 向量相似 , 扩选人群
背景
用户画像系统是让数据产生价值变现的常用手段,是精准对接供需双方的桥梁。例如有一批实时用户画像,广告主根据要求可以快速从用户画像数据中圈选精准目标人群。根据某些特征值,圈选具有相似特征值的人群。
针对用户画像人群精准圈选、特征值向量相似扩选人群,两类需求。PostgreSQL里面有标准的解决方案。
1、圈选:varbitx, pg_roaringbitmap
2、相似扩选:cube, imgmlr, 或者自定义扩展算法(作为PG的插件引入到PG中,支持索引加速)
例子 - 画像圈选
连续数据离散化(例如连续的 数值、地理位置)
确实无法离散的,在正向关系数据表中二次查询
1、pg_roaringbitmap
2、创建正向和反向关系表
create table t_tags(tagid int, users rb);
create table t_users(uid int8, tag1 int, tag2 int, ....);
3、业务需求转换为sql
select 有多少人满足条件(人数cardinat) from t_tags where tag(bit运算, 与、或、非、异或)
select newrb from t_tags where tag(bit运算, 与、或、非、异或)
select 展开人群uid unnest(newrb) from t_tags where tag(bit运算, 与、或、非、异或)
insert into t_tags(新的人群) select newtagid, newrb from t_tags where tag(bit运算, 与、或、非、异或)
select tag1, count(*) 圈选出来的目标人群画像 from t_users where uid = any (rb_to_array(newrb));
以上所有操作,参考pg_roaringbitmap的操作方法
《PostgreSQL pg_roaringbitmap - 用户画像、标签、高效检索》
例子 - 特征值扩选
人群扩展可以直接使用内置算法imgsmlr、cube,也可以根据业务特点扩展相似算法。
《阿里云PostgreSQL 向量搜索、相似搜索、图像搜索 插件 palaemon - ivfflat , hnsw , nsg , ssg》
《PostgreSQL 多维、图像 欧式距离、向量距离、向量相似 查询优化 - cube,imgsmlr - 压缩、分段、异步并行》
《PostgreSQL 11 相似图像搜索插件 imgsmlr 性能测试与优化 3 - citus 8机128shard (4亿图像)》
《PostgreSQL 11 相似图像搜索插件 imgsmlr 性能测试与优化 2 - 单机分区表 (dblink 异步调用并行) (4亿图像)》
《PostgreSQL 11 相似图像搜索插件 imgsmlr 性能测试与优化 1 - 单机单表 (4亿图像)》
《脑王水哥王昱珩惜败人工智能, 这不可能. - 图像识别到底是什么鬼》
《PostgreSQL 多维空间几何对象 相交、包含 高效率检索实践 - cube》
《PostgreSQL 相似人群圈选,人群扩选,向量相似 使用实践 - cube》
分布式,增加计算能力
画像系统、人群圈选的业务比较单一,很容易扩展:例如 citus, plproxy。
《PostgreSQL 最佳实践 - 水平分库(基于plproxy)》
《PostgreSQL sharding : citus 系列1 - 多机部署(含OLTP(TPC-B)测试)- 含Citus MX模式》
参考
《PostgreSQL pg_roaringbitmap - 用户画像、标签、高效检索》
《PostgreSQL (varbit, roaring bitmap) VS pilosa(bitmap库)》
《地理位置画像、连锁店圈人、地理围栏圈人、多地圈选、multi-polygon圈选、多点圈选》
《HTAP数据库 PostgreSQL 场景与性能测试之 20 - (OLAP) 用户画像圈人场景 - 多个字段任意组合条件筛选与透视》
《HTAP数据库 PostgreSQL 场景与性能测试之 19 - (OLAP) 用户画像圈人场景 - 数组相交查询与聚合》
《HTAP数据库 PostgreSQL 场景与性能测试之 18 - (OLAP) 用户画像圈人场景 - 数组包含查询与聚合》
《阿里云RDS for PostgreSQL varbitx插件与实时画像应用场景介绍》
《基于 阿里云 RDS PostgreSQL 打造实时用户画像推荐系统(varbitx)》
《恭迎万亿级营销(圈人)潇洒的迈入毫秒时代 - 万亿user_tags级实时推荐系统数据库设计》
PostgreSQL 许愿链接
您的愿望将传达给PG kernel hacker、数据库厂商等, 帮助提高数据库产品质量和功能, 说不定下一个PG版本就有您提出的功能点. 针对非常好的提议,奖励限量版PG文化衫、纪念品、贴纸、PG热门书籍等,奖品丰富,快来许愿。开不开森.