基于AnalyticDB PostgreSQL + OSS + SLS构建面向应用内行为数据的分析全链路

本文涉及的产品
阿里云百炼推荐规格 ADB PostgreSQL,4核16GB 100GB 1个月
云原生数据仓库AnalyticDB MySQL版,基础版 8ACU 100GB 1个月
简介: AnalyticDB PostgreSQL助力某互联网企业完成数仓建设和面向用户行为的全链路分析。通过Serverless版本的性能助力,轻松实现了10+的性价比提升。

作者:茏城


行业综述

在泛互联网行业中,企业投入了大量的精力用于追踪用户的行为日志,尝试更好的了解用户在应用内的核心行为。企业追踪了海量的日志,清洗后获得了核心用户的行为事件并于其他业务行为进行关联分析,如市场营销触达,订单支付,用户信息等。这些分析可以帮助企业建立用户行为与结果的倾向关联,对用户生命在应用内的行为进行市场,运营等手段的有效干预,在待转换,流失,沉寂等关键生命周期点进行介入。同时建立用户的分析模型和目标转换漏斗,进行整体应用的运营指导。

 

客户场景

AnalyticDB PostgreSQL助力某互联网企业完成数仓建设和行为日志的数据采集,入库,清洗,分析和洞察的全链路。将重点行为事件进行提取并于用户信息,订单信息,运营推广等维度和事实表进行关联分析,甄别关键链路并打造可视化大屏;于此同时,通过小批高频的入库能力,提供了近实时的业务追踪和运营分析手段。本次,引入Serverless版本的弹性能力和单点计算能力增强,对现有架构进行改造升级,大幅缩短了单次计算的效率,提高了的业务实时性并最终实现了10+的性价比增长。

 

架构设计

(脱敏后)

链路解析:

  1. 对于日志的采集用户可以自建工具,同时也可以使用阿里云提供的SLS产品进行用户的站内行为事件的采集;具体可参考SLS的数据采集
  2. 将行为日志的采集数据落在OSS上进行存储;参考SLS的数据存储
  3. 通过定时任务将OSS的数据以外表的形式导入AnalyticDB PostgreSQL数据仓库中,可用自建任务调度系统或使用DMS进行任务触发
  4. 对导入的数据进行结构化的清洗,过滤掉无用的数据,并将核心的事件行为结构化后添加如表;
  5. 提供企业内业务的数据分析师,对行为数据的目标进行关联分析; 例如
  1. 分析整体的用户行为趋势,观测核心指标的健康度;
  2. 行为数据+用户数据来建立不同的用户群组及行为特征;
  3. 针对历史行为的在用户上,建模来预测是否用户存在潜在的流失风险;
  4. 行为数据+订单数据来进行哪些行为关联用户行为及付费转换,可为之后的运营活动进行目标客群的定位;
  1. 同时对于成熟的分析模型持久化,配合主流的BI工具如Tableau和QuickBI等,搭建数据看板,AnalyticDB PostgreSQL支持秒级的高频刷新,可实现近实时的数据分析。AnalyticDB的BI工具集成可点击查询
  2. 若选用Serverless实例,在工作时段和运营的高峰的时端存在着并发和较大的查询密集度。 此时AnalyticDB PostgreSQL支持在线扩容,在秒级即可完成产品的横向扩容,对交互式查询的业务影响极低。在业务闲时可将资源释放,确保极高的资源使用效率。


 

性能测试 

以下是我们在服务用户使用Serverless版本与OLAP海外头部友商在同等价位上进行POC的性能对比;

 

测试数据集

用户的性能测试涉及了3张核心表,以下所有的数据字段均脱敏,不指代任何业务意义;

 

A50+列,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)


B30+列,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)


 

C20+列,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大多数是针对上述三个表中的两个或者三个做joinsum/group by的场景,然后通过join keywhere条件做进一步筛选。

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 joinwhere条件列大多数是sortkey中的列,所以可以做高效统计信息过滤筛选和二分查找优化。

 

性能结果

本次比对,用户对两款现有产品做了性能对比测试,一个是海外友商的A OLAP产品,一个是AnalyticDB PostgreSQL最新发布的serverless版本。两款产品均具有行业领先的扩缩容能力和头部厂商的性能领先性。 用户希望能够选择稳定且高性能的OLAP产品以支撑更高的数据实时性和一致性。


由于海外友商的计算资源通过CU封装,单位CU的参数未公开,故本次性能比较选择在同等价位下,为对272个业务SQL进行的总耗时对比,性能结果如下:

友商A

ADB PG Serverless

SQL执行总计用时(秒)

857

605

测试结果显示,AnalyticDB PostgreSQL Serverless版本在多表join的数据分析性能上,领先海外友商A约40%。


总结

面对海量的行为数据,以AnalyticDB PostgreSQL 为中心的数据解决方案提供了国际领先的数据分析性能。同时可覆盖数据采集,整合,分析,洞见,配合深度集成的阿里云产品生态,可以快速助力企业完成从0到1的业务部署和落地,一站式完成场景化的深度分析;

 

新用户可点击购买9.9首月试用;


需要进行类似部署或申请AnalyticDB PostgreSQL Serverless版本试用,欢迎点击咨询

相关实践学习
AnalyticDB MySQL海量数据秒级分析体验
快速上手AnalyticDB MySQL,玩转SQL开发等功能!本教程介绍如何在AnalyticDB MySQL中,一键加载内置数据集,并基于自动生成的查询脚本,运行复杂查询语句,秒级生成查询结果。
阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
目录
相关文章
|
20天前
|
机器学习/深度学习 人工智能 运维
智能日志分析:用AI点亮运维的未来
智能日志分析:用AI点亮运维的未来
140 15
|
1月前
|
SQL 关系型数据库 MySQL
MySQL事务日志-Undo Log工作原理分析
事务的持久性是交由Redo Log来保证,原子性则是交由Undo Log来保证。如果事务中的SQL执行到一半出现错误,需要把前面已经执行过的SQL撤销以达到原子性的目的,这个过程也叫做"回滚",所以Undo Log也叫回滚日志。
MySQL事务日志-Undo Log工作原理分析
|
2月前
|
存储 运维 监控
Linux--深入理与解linux文件系统与日志文件分析
深入理解 Linux 文件系统和日志文件分析,对于系统管理员和运维工程师来说至关重要。文件系统管理涉及到文件的组织、存储和检索,而日志文件则记录了系统和应用的运行状态,是排查故障和维护系统的重要依据。通过掌握文件系统和日志文件的管理和分析技能,可以有效提升系统的稳定性和安全性。
57 7
|
2月前
|
监控 安全 Linux
启用Linux防火墙日志记录和分析功能
为iptables启用日志记录对于监控进出流量至关重要
|
2月前
|
监控 应用服务中间件 定位技术
要统计Nginx的客户端IP,可以通过分析Nginx的访问日志文件来实现
要统计Nginx的客户端IP,可以通过分析Nginx的访问日志文件来实现
203 3
|
2月前
|
存储 关系型数据库 数据库
【赵渝强老师】PostgreSQL的数据文件
PostgreSQL的物理存储结构主要包括数据文件、日志文件等。数据文件按oid命名,超过1G时自动拆分。通过查询数据库和表的oid,可定位到具体的数据文件。例如,查询数据库oid后,再查询特定表的oid及relfilenode,即可找到该表对应的数据文件位置。
104 1
|
4月前
|
存储 缓存 关系型数据库
MySQL事务日志-Redo Log工作原理分析
事务的隔离性和原子性分别通过锁和事务日志实现,而持久性则依赖于事务日志中的`Redo Log`。在MySQL中,`Redo Log`确保已提交事务的数据能持久保存,即使系统崩溃也能通过重做日志恢复数据。其工作原理是记录数据在内存中的更改,待事务提交时写入磁盘。此外,`Redo Log`采用简单的物理日志格式和高效的顺序IO,确保快速提交。通过不同的落盘策略,可在性能和安全性之间做出权衡。
1838 14
MySQL事务日志-Redo Log工作原理分析
|
3月前
|
存储 SQL 监控
|
3月前
|
运维 监控 安全
|
3月前
|
监控 关系型数据库 MySQL
分析慢查询日志
【10月更文挑战第29天】分析慢查询日志
83 3

热门文章

最新文章

相关产品

  • 云原生数据仓库AnalyticDB MySQL版
  • 云原生数据仓库 AnalyticDB PostgreSQL版