前言

Hologres提供了一套高效的路径分析函数,包括路径明细计算和结果解析功能,能够帮助用户深入理解用户行为路径,并通过桑基图实现数据可视化。

一、核心功能

  • 路径明细计算:精确记录用户在产品或功能中的完整访问路径
  • 结果解析:对路径数据进行深度分析和指标计算
  • 可视化支持:生成桑基图展示路径流量分布和转化情况
    在这里插入图片描述

二、路径明细函数

1. 路径明细函数(path_analysis_detail

path_analysis_detail函数用于将指定的事件数据深度解析并呈现为详细的路径结构。其输出结果以序列化数组的形式展现,内容详尽丰富,涵盖了路径的完整序列、路径内各个节点间的父子关系,以及每个路径步骤的执行耗时等关键信息。

语法
path_analysis_detail(event, event_time, start_event, session_interval_sec, path_depth, path_offset, is_reverse,
split_session_by_event)
参数说明

在这里插入图片描述

2. 路径漏斗函数(pad_funnel

pad_funnel函数用于获取特定事件组合构成的子路径信息。

语法
pad_full_path(path_analysis_detail())
参数说明

path_analysis_detail():路径明细函数返回的路径明细的聚合结果数组。

返回值说明
pad_sub_path_left(unnested_pad_result)
pad_sub_path_right(unnested_pad_result)
pad_sub_index_left(unnested_pad_result)
pad_sub_index_right(unnested_pad_result)
pad_sub_cost(unnested_pad_result)
pad_sub_session(unnested_pad_result)

在这里插入图片描述

3. pad_session_path_array

pad_session_path_array路径结果解析函数可以根据指定的会话ID,精准提取出该会话内发生的事件序列,并按照路径前缀进行有序组织。

语法
pad_session_path_array(path_analysis_detail(), session_idx)
参数说明
  • path_analysis_detail():路径明细函数返回的路径明细的聚合结果数组。
  • session_idx:指定的会话序号。

三、使用示例

1. 准备数据

--创建Extension,Extension是DB级别的函数,一个DB只需执行一次即可
CREATE extension flow_analysis;
--准备数据
CREATE TABLE path_demo( uid text,event text,event_time timestamptz
);INSERT INTO path_demo VALUES
('1','注册','2023-11-24 16:01:23+08'),
('1','登录','2023-11-24 16:02:10+08'),
('1','浏览','2023-11-24 16:02:15+08'),
('1','看直播','2023-11-24 16:03:10+08'),
('1','浏览','2023-11-24 16:03:15+08'),
('1','收藏','2023-11-24 16:04:20+08'),
('1','浏览','2023-11-24 16:07:21+08'),
('1','购买','2023-11-24 16:08:23+08'),
('1','退出','2023-11-24 16:09:05+08'),('2','登录','2023-11-24 16:10:23+08'),
('2','购买','2023-11-24 16:12:23+08'),('3','登录','2023-11-24 16:02:23+08'),
('3','浏览','2023-11-24 16:02:23+08'),
('3','收藏','2023-11-24 16:03:53+08'),
('3','看直播','2023-11-24 16:04:53+08'),('4','登录','2023-11-24 16:02:23+08'),
('4','浏览','2023-11-24 16:03:53+08'),
('4','购买','2023-11-24 16:04:23+08'),
('4','看直播','2023-11-24 16:05:53+08'),
('4','取消下单','2023-11-24 16:06:53+08');

2. 使用案例

示例1:记录事件全部路径
  • 按照时间切分SESSION:指定起始事件,按照时间切分SESSION,并设置SESSION间隔为180 s,匹配的序列长度为7。
--按照时间切分:指定开始事件为“登录”,SESSION时间间隔为180 s,匹配序列长度为7,并通过pad_full_path函数对结果解码
SELECT uid, pad_full_path(path_analysis_detail(event, event_time, '登录', 180, 7, 0, false)) AS ret FROM path_demo GROUP BY uid;

在这里插入图片描述

  • 按照时间和事件切分SESSION:指定起始事件,SESSION时间间隔为180 s,匹配序列长度为7。
--按照时间和事件切分:起始事件为"浏览",间隔时间为180 s,序列长度为7,并通过pad_full_path函数对结果解码
SELECT uid, pad_full_path(path_analysis_detail(event, event_time, '浏览', 180, 7, 0, false,TRUE)) AS ret FROM path_demo GROUP BY uid;

在这里插入图片描述

示例2:展开路径结果
--将路径展开
SELECT uid, unnest(pad_full_path(path_analysis_detail(event, event_time, '登录', 180, 7, 0, false))) AS ret FROM path_demo GROUP BY uid;

在这里插入图片描述

示例3:展开子路径并获取每一步的路径明细
--展开子路径
SELECTuid,pad_sub_session (ret) AS session_id,pad_sub_path_left (ret) AS sub_path_left,pad_sub_path_right (ret) AS sub_path_right,pad_sub_index_left (ret) AS sub_index_left,pad_sub_index_right (ret) AS sub_index_right,pad_sub_cost (ret) AS sub_cost
FROM (SELECTuid,unnest( path_analysis_detail (event, event_time, '登录', 180, 7, 0, FALSE)) AS retFROMpath_demo GROUP BYuid) a ;

在这里插入图片描述
同时我们也可以结合可视化工具,例如DataV的Echarts 桑基图,将计算结果形成可视化的桑基图,示例如下:

在这里插入图片描述

示例4:计算每个子路径的PV、UV(未去重)
--计算每个子路径的uv/pv,未去重,如果需要去重,可以对uid做
SELECTsub_index,sub_path_left,sub_path_right,count(uid)
FROM (SELECTuid,pad_sub_path_left (ret) AS sub_path_left,pad_sub_path_right (ret) AS sub_path_right,pad_sub_index_right (ret) AS sub_indexFROM (SELECTuid,unnest(path_analysis_detail (event, event_time, '登录', 180, 7, 0, FALSE)) AS retFROMpath_demoGROUP BYuid) a) a
GROUP BYsub_index,sub_path_left,sub_path_right
ORDER BYsub_index,sub_path_left,sub_path_right;

在这里插入图片描述

示例5:计算每个子路径的平均耗时
--计算子路径的平均耗时
SELECTsub_path_left,sub_path_right,avg(sub_cost)
FROM (SELECTuid,pad_sub_path_left (ret) AS sub_path_left,pad_sub_path_right (ret) AS sub_path_right,pad_sub_cost (ret) AS sub_costFROM (SELECTuid,unnest(path_analysis_detail (event, event_time, '登录', 180, 7, 0, FALSE)) AS retFROMpath_demoGROUP BYuid) a) a
GROUP BYsub_path_left,sub_path_right
ORDER BYsub_path_left,sub_path_right;

在这里插入图片描述

示例6:会话路径与子路径明细关联
`--会话路径与子路径关联
selectuid,pad_sub_session(item) as session_id,full_path [pad_sub_session(item)+1] as full_path,pad_sub_path_left(item) as sub_path_left,pad_sub_path_right(item) as sub_path_right,pad_sub_index_right(item) as sub_idx,pad_sub_cost(item) as sub_cost
from(selectuid,unnest(ret) as item,pad_full_path(ret) as full_pathfrom(selectuid,path_analysis_detail(event, event_time, '登录', 180, 7, 0, false) as retfrompath_demogroup byuid) a) a;

在这里插入图片描述

示例7:查看指定的部分路径明细
--通过pad_funnel函数可以查看指定的部分路径明细,示例只看Browse>purchase 的转化情况,查看对应的明细,或者子路径情况
SELECT uid, pad_full_path(pad_funnel(path_analysis_detail(event, event_time, '登录', 180, 7, 0, false), array['登录', '购买'])) AS ret FROM path_demo GROUP BY uid;

在这里插入图片描述

四、结束语

通过路径分析,可以清晰地了解产品每个关键功能的访问情况,进一步辅助运营和产品进行下一步的业务策略优化和产品迭代,帮助业务更加健康地成长。

相关内容

Hologres实战:优雅处理字符串数组
https://blog.csdn.net/weixin_43932609/article/details/149934590
开启数据湖 “宝匣”
https://blog.csdn.net/weixin_43932609/article/details/144406593
数据仓库:智控数据中枢
https://blog.csdn.net/weixin_43932609/article/details/144393368
湖仓一体:数据未来之路
https://blog.csdn.net/weixin_43932609/article/details/144433084
————————————————

=========================================================

人生得意须尽欢,莫使金樽空对月!
__一个热爱说唱的程序员。
今日份推荐音乐:单依纯《李白 (live)》

=========================================================

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/93545.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/93545.shtml
英文地址,请注明出处:http://en.pswp.cn/web/93545.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

产品开发实践(常见的软硬结合方式)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】前面说过,传统的纯软件开发,在国内的大背景下面是很难存活的。但是如果是把软件,构建在硬件基础之上&#xff0c…

Linux | i.MX6ULL网络通信-套字节 UDP(第十八章)

01 Linux | i.MX6ULL网络通信-套字节 TCP(第十七章) 02 iTOP-IMX6ULL 实现基于 UDP 的 socket 编程。

学习嵌入式第三十天

文章目录进程和线程&#xff08;续&#xff09;线程1.线程传参2.线程属性3.线程间通信1.概念2.方式3.互斥锁4.死锁5.信号量习题 进程和线程&#xff08;续&#xff09; 线程 1.线程传参使用第四个参数实现对线程内部的传参 代码实现&#xff1a; #include <stdio.h> #inc…

GaussDB 数据库架构师修炼(十三)安全管理(3)-行级访问控制

1 背景行级访问控制特性将数据库的访问控制精确到数据表行级别 &#xff0c;只允许用户查看 、更新或删除特定的行数据。2 实例场景实例以医生只能看到治疗的病人&#xff0c;不能看其它医生的病人为例&#xff1a;1)医院病人的信息表pat_info&#xff1a;csdn> set search_…

Wi-Fi 与蜂窝网络(手机网络)的核心区别,以及 Wi-Fi 技术未来的发展方向

在日常生活中&#xff0c;我们既离不开家里的 Wi-Fi&#xff0c;也离不开手机的 4G/5G 网络。它们都能把我们连接到互联网&#xff0c;但底层的工作方式却大不相同。一、设计初衷的不同Wi-Fi诞生于 1997 年的 IEEE 802.11 标准&#xff0c;定位是局域网无线替代。它的目标是让电…

C++编程实战:高效解决算法与数据结构问题

个人主页 &#xff1a; zxctscl 专栏 【C】、 【C语言】、 【Linux】、 【数据结构】、 【算法】 如有转载请先通知 题目1. 数字统计2. 两个数组的交集3. 牛牛的快递4. 点击消除5. 最小花费爬楼梯6. 简写单词1. 数字统计 BC153 数字统计 #include <iostream> using na…

《零基础入门AI:深度学习中的视觉处理(卷积神经网络(CNN)进阶)》

一、卷积知识扩展 1. 二维卷积 单通道版本 对于单通道输入图像 III (尺寸 HWH \times WHW) 和卷积核 KKK (尺寸 FFF \times FFF)&#xff0c;输出特征图 OOO 的计算公式为&#xff1a; O(i,j)∑m0F−1∑n0F−1I(im,jn)⋅K(m,n)O(i,j) \sum_{m0}^{F-1} \sum_{n0}^{F-1} I(im, j…

pyecharts可视化图表-pie:从入门到精通(进阶篇)

欢迎来到pyecharts饼图系列教程的进阶篇&#xff01;在上一篇基础教程中&#xff0c;我们学习了饼图的基本概念和简单实现。在本文中&#xff0c;我们将深入探索pyecharts中饼图的六种高级用法和自定义选项&#xff0c;包括环形饼图、富文本标签饼图、滚动图例饼图、环形图、嵌…

【JAVA 核心编程】面向对象高级:类变量与方法 抽象类与接口

一、类变量与类方法&#xff08;静态变量&#xff09; 1&#xff09;类变量 class Child{private String name;//定义一个变量count&#xff0c;是一个类变量&#xff08;静态变量&#xff09;static静态//该变量最大的特点就是会被Child 类的所有对象访问public static int co…

【Java基础面试题】数据类型

Java面试高频总结&#xff1a;基本数据类型深度解析 &#x1f4ca; 八种基本数据类型详解数据类型关键字字节数位数默认值取值范围核心特性字节型byte180-128 ~ 127最小整数类型短整型short2160-32,768 ~ 32,767较少使用整型int4320-2 ~ 2-1 (约21亿)最常用整数类型长整型long8…

攻防世界—unseping(反序列化)

一.审题<?php highlight_file(__FILE__);class ease{private $method;private $args;function __construct($method, $args) {$this->method $method;$this->args $args;}function __destruct(){if (in_array($this->method, array("ping"))) {call_u…

AI热点周报(8.10~8.16):AI界“冰火两重天“,GPT-5陷入热议,DeepSeek R2模型训练受阻?

名人说&#xff1a;博观而约取&#xff0c;厚积而薄发。——苏轼《稼说送张琥》 创作者&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 目录3分钟速览版&#xff1a;一张表看懂本周AI大事一、GPT-5&#xff1a;期待越高&#x…

Python_vue3_django旅拍在线婚纱摄影网站的设计与实现016023190_源码LW_讲解安装

目录前言-本系统介绍已开发项目效果实现截图开发技术详细介绍论文设计框架系统测试核心代码参考示例总结源码获取详细视频演示或者查看其他版本&#xff1a;文章底部获取博主联系方式&#xff01;前言-本系统介绍 利用Python语言、MySQL数据库&#xff0c;Django框架&#xff0…

Python爬虫-爬取政务网站的文档正文内容和附件数据

前言 本文是该专栏的第67篇,后面会持续分享python爬虫干货知识,记得关注。 本文,笔者以某政务网站为例子。基于Python爬虫采集某政务网站的文档正文内容和其关联的附件数据。 具体的实现思路以及完整实现代码逻辑,笔者将在正文进行详细介绍。废话不多说,跟着笔者直接往下…

Python:如何在Pycharm中显示geemap地图?

01 说明 或许在旧版本的python和jupyter中并不能成功. 作为参考&#xff0c;这里给出实验成功的版本&#xff1a;名称版本通道geemap0.36.1conda-forgejupyter1.1.1conda-forgepycharm2024.1.4 (Professional Edition)nullpython3.11.13conda-forge此外&#xff0c;由于显示底图…

力扣3:无重复字符的最长子串

力扣3:无重复字符的最长子串题目思路代码题目 给定一个字符串 s &#xff0c;请你找出其中不含有重复字符的 最长 子串 的长度。 思路 这道题的思路其实是很简单的&#xff0c;最后我们需要得到子串的长度所以我们可以定义两个变量即子串的左边界和右边界这样有了左右边界就…

Git登录配置的详细方法

Git登录绑定主要涉及配置用户信息和设置身份验证。以下是详细的配置方法&#xff1a; 1. 配置基本用户信息 # 全局配置用户名和邮箱 git config --global user.name "你的用户名" git config --global user.email "你的邮箱example.com"# 或者为单个仓库配…

测试工程师的AI转型指南:从工具使用到测试策略重构

测试工程师的AI转型指南&#xff1a;从工具使用到测试策略重构 测试工程师正站在职业转型的十字路口。当GitHub Copilot能自动生成测试用例&#xff0c;AI性能工具能预测系统瓶颈&#xff0c;传统“手动执行用例、人工分析结果”的工作模式正被颠覆。某互联网公司测试团队的调研…

3D打印——给开发板做外壳

3D打印——给开发板做外壳前言一、建立开发板3D模型根据开发板尺寸绘制草图绘制PCB草图&#xff08;手动&#xff09;绘制PCB草图&#xff08;导入&#xff09;拉伸PCB板下载零件3D模型装配零件二、建立外壳3D模型盒子盖子&#xff08;卡扣&#xff09;最终效果三、问题记录前言…

Spring AI架构分析

Spring AISpring AI开发框架提供对接应用与AI模型的集成开发能力&#xff0c;让开发者更加容易地开发智能体以及其他生成式人工智能的应用&#xff1a;模型&#xff08;Model&#xff09;AI模型是算法与数据的集合&#xff0c;用于处理信息以及生成信息&#xff0c;主要AI模型的…