行业综述
AnalyticDB PostgreSQL助力某互联网企业完成数仓建设和行为日志的数据采集,入库,清洗,分析和洞察的全链路。将重点行为事件进行提取并于用户信息,订单信息,运营推广等维度和事实表进行关联分析,甄别关键链路并打造可视化大屏;于此同时,通过小批高频的入库能力,提供了近实时的业务追踪和运营分析手段。本次,引入Serverless版本的弹性能力和单点计算能力增强,对现有架构进行改造升级,大幅缩短了单次计算的效率,提高了的业务实时性并最终实现了10+的性价比增长。
客户场景
AnalyticDB PostgreSQL助力某互联网企业完成数仓建设和行为日志的数据采集,入库,清洗,分析和洞察的全链路。将重点行为事件进行提取并于用户信息,订单信息,运营推广等维度和事实表进行关联分析,甄别关键链路并打造可视化大屏;于此同时,通过小批高频的入库能力,提供了近实时的业务追踪和运营分析手段。本次,引入Serverless版本的弹性能力和单点计算能力增强,对现有架构进行改造升级,大幅缩短了单次计算的效率,提高了的业务实时性并最终实现了10+的性价比增长。
架构设计
(脱敏后)
链路解析:
-
对导入的数据进行结构化的清洗,过滤掉无用的数据,并将核心的事件行为结构化后添加如表;
-
提供企业内业务的数据分析师,对行为数据的目标进行关联分析; 例如
-
分析整体的用户行为趋势,观测核心指标的健康度;
-
行为数据+用户数据来建立不同的用户群组及行为特征;
-
针对历史行为的在用户上,建模来预测是否用户存在潜在的流失风险;
-
行为数据+订单数据来进行哪些行为关联用户行为及付费转换,可为之后的运营活动进行目标客群的定位;
-
-
同时对于成熟的分析模型持久化,配合主流的BI工具如Tableau和QuickBI等,搭建数据看板,AnalyticDB PostgreSQL支持秒级的高频刷新,可实现近实时的数据分析。AnalyticDB的BI工具集成可 点击查询 :
-
若选用Serverless实例,在工作时段和运营的高峰的时端存在着并发和较大的查询密集度。 此时AnalyticDB PostgreSQL支持在线扩容,在秒级即可完成产品的横向扩容,对交互式查询的业务影响极低。在业务闲时可将资源释放,确保极高的资源使用效率。
性能测试
以下是我们在服务用户使用Serverless版本与OLAP海外头部友商在同等价位上进行POC的性能对比;
测试数据集
用户的性能测试涉及了3张核心表,以下所有的数据字段均脱敏,不指代任何业务意义;
表A(50+列,19亿行数据,压缩后88GB),date这一列是sortkey的第一列,客户会根据date做各种where条件筛选。
Column | Type | Modifiers
--------------+------------------------+-------------------------------
apple | bigint |
banana | character varying(32) |
cherry | character varying(64) |
durian | integer |
date | integer |
Distributed by: (cherry)
Order by: (date, cherry, apple, durian, banana)
表B(30+列,7000W行数据,压缩后1.2GB)
Column | Type | Modifiers
--------------+------------------------+-------------------------------
apple | bigint |
cherry | character varying(64) | default ''::character varying
durian | integer |
date | integer |
Distributed by: (cherry)
Order by: (date, cherry, apple, durian)
表C(20+列,5亿行数据,压缩后7.8GB)
Column | Type | Modifiers
---------------------+-----------------------+-------------------------------
apple | bigint |
durian | integer |
cherry | character varying(64) | not null
date | integer |
Distributed by: (cherry)
Order by: (date, cherry, apple, durian)
测试业务SQL
客户本次测试选择包含272条业务常用SQL,对于数据的扫描范围范围为30天。
客户的分析SQL大多数是针对上述三个表中的两个或者三个做join和sum/group by的场景,然后通过join key和where条件做进一步筛选。
Sample Query如下:
select apple,
durian,
date,
sum(col1)
from(
select A.apple, A.durain, A.date, max(NVL(NULLIF(A.colx, ''), '0') ::float) as col1
from A, C
where A.cherry= C.cherry
and A.apple= C.apple
and A.durain= C.durain
and A.apple in (balabala)
and A.date>= xxxx
and A.date<= yyyy
and A.durain> 0
and A.banana= 'balabala'
and A.colx in (balabala)
and C.apple in (balabala)
and C.durain> 0
group by 1, 2, 3, 4) C
group by 1,2,3
其中,join key为分布列,所以SQL所做的join就是local join。where条件列大多数是sortkey中的列,所以可以做高效统计信息过滤筛选和二分查找优化。
性能结果
本次比对,用户对两款现有产品做了性能对比测试,一个是海外友商的A OLAP产品,一个是AnalyticDB PostgreSQL最新发布的serverless版本。两款产品均具有行业领先的扩缩容能力和头部厂商的性能领先性。 用户希望能够选择稳定且高性能的OLAP产品以支撑更高的数据实时性和一致性。
由于海外友商的计算资源通过CU封装,单位CU的参数未公开,故本次性能比较选择在同等价位下,为对272个业务SQL进行的总耗时对比,性能结果如下:
测试结果显示,AnalyticDB PostgreSQL Serverless版本在多表join的数据分析性能上,领先海外友商A约40%。
总结
面对海量的行为数据,以AnalyticDB PostgreSQL 为中心的数据解决方案提供了国际领先的数据分析性能。同时可覆盖数据采集,整合,分析,洞见,配合深度集成的阿里云产品生态,可以快速助力企业完成从0到1的业务部署和落地,一站式完成场景化的深度分析;
如果需要进行类似部署或申请AnalyticDB PostgreSQL Serverless版本试用,欢迎点击联系;