关键路径转化


  • 需求

    在一条指定的业务流程中,各个步骤的完成人数及相对上一个步骤的百分比

  • 模型设计

    定义好业务流程中的页面标识
    Step1、  /item
    Step2、 /category
    Step3、 /index
    Step4、 /order
    CREATE TABLE dw_oute_numbs AS
    SELECT 'step1' AS step,COUNT(DISTINCT remote_addr) AS numbs FROM ods_click_pageviews
    WHERE datestr = '20130920'
    AND request LIKE '/item%'
    UNION ALL
    SELECT 'step2' AS step,COUNT(DISTINCT remote_addr) AS numbs FROM ods_click_pageviews
    WHERE datestr = '20130920'
    AND request LIKE '/category%'
    UNION ALL
    SELECT 'step3' AS step,COUNT(DISTINCT remote_addr) AS numbs FROM ods_click_pageviews
    WHERE datestr = '20130920'
    AND request LIKE '/order%'
    UNION ALL
    SELECT 'step4' AS step,COUNT(DISTINCT remote_addr) AS numbs FROM ods_click_pageviews
    WHERE datestr = '20130920'
    AND request LIKE '/index%';
    +---------------------+----------------------+--+
    | dw_oute_numbs.step | dw_oute_numbs.numbs |
    +---------------------+----------------------+--+
    | step1 | 1029 |
    | step2 | 1029 |
    | step3 | 1028 |
    | step4 | 1018 |
    +---------------------+----------------------+--+

  • 求取每一步相对于上一步的转化率

    SELECT t.rnnumbs/t.rrnumbs AS rate
    FROM (
    SELECT
    rn.step AS rnstep,
    rn.numbs AS rnnumbs,
    rr.step AS rrstep,
    rr.numbs AS rrnumbs
    FROM dw_oute_numbs rn
    INNER JOIN dw_oute_numbs rr
    WHERE rr.step = 'step1' ) t;
  • 求取每一步相对于第一步的转化率

    SELECT t.rrnumbs/t.rnnumbs AS rate
    FROM (
    SELECT
    rn.step AS rnstep,
    rn.numbs AS rnnumbs,
    rr.step AS rrstep,
    rr.numbs AS rrnumbs
    FROM dw_oute_numbs rn
    INNER JOIN dw_oute_numbs rr
    WHERE CAST(substr(rn.step,5,1) AS INT) = CAST(SUBSTR(rr.step,5,1) AS INT) - 1 ) t;
  • 也可以将两个合并到一起

    SELECT abs.step,abs.numbs,abs.rate AS abs_ratio,
    rel.rate AS leakage_rate
    FROM (
    SELECT tmp.rnstep AS step,tmp.rnnumbs AS numbs, tmp.rnnumbs/tmp.rrnumbs AS rate
    FROM (
    SELECT
    rn.step AS rnstep,
    rn.numbs AS rnnumbs,
    rr.step AS rrstep,
    rr.numbs AS rrnumbs
    FROM dw_oute_numbs rn
    INNER JOIN dw_oute_numbs rr ) tmp
    WHERE tmp.rrstep = 'step1' ) abs
    LEFT OUTER JOIN (
    SELECT tmp.rrstep AS step,tmp.rrnumbs/tmp.rnnumbs AS rate
    FROM (
    SELECT
    rn.step AS rnstep,
    rn.numbs AS rnnumbs,
    rr.step AS rrstep,
    rr.numbs AS rrnumbs
    FROM dw_oute_numbs rn
    INNER JOIN dw_oute_numbs rr ) tmp
    WHERE CAST(substr(tmp.rnstep,5,1) AS INT) = CAST(SUBSTR(tmp.rrstep,5,1) AS INT) - 1 ) rel
    ON abs.step=rel.step;

【Hadoop离线基础总结】关键路径转化率分析(漏斗模型)的更多相关文章

  1. 【Hadoop离线基础总结】流量日志分析网站整体架构模块开发

    目录 数据仓库设计 维度建模概述 维度建模的三种模式 本项目中数据仓库的设计 ETL开发 创建ODS层数据表 导入ODS层数据 生成ODS层明细宽表 统计分析开发 流量分析 受访分析 访客visit分 ...

  2. 【Hadoop离线基础总结】网站流量日志数据分析系统

    目录 点击流数据模型 概述 点击流模型 网站流量分析 网站流量模型分析 网站流量来源 网站流量多维度细分 网站内容及导航分析 网站转化及漏斗分析 流量常见分析角度和指标分类 指标概述 指标分类 分析角 ...

  3. 【Hadoop离线基础总结】impala简单介绍及安装部署

    目录 impala的简单介绍 概述 优点 缺点 impala和Hive的关系 impala如何和CDH一起工作 impala的架构及查询计划 impala/hive/spark 对比 impala的安 ...

  4. 【Hadoop离线基础总结】oozie的安装部署与使用

    目录 简单介绍 概述 架构 安装部署 1.修改core-site.xml 2.上传oozie的安装包并解压 3.解压hadooplibs到与oozie平行的目录 4.创建libext目录,并拷贝依赖包 ...

  5. 【Hadoop离线基础总结】Hue的简单介绍和安装部署

    目录 Hue的简单介绍 概述 核心功能 安装部署 下载Hue的压缩包并上传到linux解压 编译安装启动 启动Hue进程 hue与其他框架的集成 Hue与Hadoop集成 Hue与Hive集成 Hue ...

  6. 【Hadoop离线基础总结】Sqoop常用命令及参数

    目录 常用命令 常用公用参数 公用参数:数据库连接 公用参数:import 公用参数:export 公用参数:hive 常用命令&参数 从关系表导入--import 导出到关系表--expor ...

  7. 【Hadoop离线基础总结】Hive调优手段

    Hive调优手段 最常用的调优手段 Fetch抓取 MapJoin 分区裁剪 列裁剪 控制map个数以及reduce个数 JVM重用 数据压缩 Fetch的抓取 出现原因 Hive中对某些情况的查询不 ...

  8. 【Hadoop离线基础总结】MapReduce增强(下)

    MapReduce增强(下) MapTask运行机制详解以及MapTask的并行度 MapTask运行流程 第一步:读取数据组件InputFormat(默认TextInputFormat)会通过get ...

  9. 【Hadoop离线基础总结】MapReduce增强(上)

    MapReduce增强 MapReduce的分区与reduceTask的数量 概述 MapReduce当中的分区:物以类聚,人以群分.相同key的数据,去往同一个reduce. ReduceTask的 ...

随机推荐

  1. three.js中让模型自动居中的代码如下:

    //load_Model为需要居中的3D模型 //原理是通过boundingBoxHelper 来计算模型的大小范围 var hex = 0xff0000; var MD_Length,MD_Widt ...

  2. 接口测试中实际发生的几个问题——python中token传递

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:AFKplayer PS:如有需要Python学习资料的小伙伴可以加点 ...

  3. stand up meeting 11/27/2015-11/29/2015

    part 组员 今日工作 工作耗时/h 明日计划 工作耗时/h UI 冯晓云   确定释义显示方案并进行代码实现:     4  完成UI设计的各项动能按钮的代码实现  6 数据库 朱玉影  导入了4 ...

  4. CSS 中你应该了解的 BFC

    我们常说的文档流其实分为定位流.浮动流和普通流三种.而普通流其实就是指BFC中的FC.FC是formatting context的首字母缩写,直译过来是格式化上下文,它是页面中的一块渲染区域,有一套渲 ...

  5. lua 逻辑运算 and, or, not

    这边并非说lua低级,为了方便区分才这么写的. 高级语言中的逻辑运算符是&&,||,! a&&b : 当a和b都为真, 结果返回为真,当a或者b有一个为假,结果返回为假 ...

  6. 01、WireShark——ARP 协议包分析

     1. 什么是ARP ARP(Address Resolution Protocol)协议,即地址解析协议.该协议的功能就是将 IP 地 址解析成 MAC 地址. ARP(Address Resolu ...

  7. 浅析CopyOnWriteArrayList

    CopyOnWriteArrayList引入 模拟传统的ArrayList出现线程不安全的现象 public class Demo1 { public static void main(String[ ...

  8. kubernetes删除pod,pod一直处于Terminating状态

    删除pod,pod一直处于Terminating状态 [root@yxz-cluster01 deploy_yaml]# kubectl get pod -n yunanbao NAME READY ...

  9. Trie树-提高海量数据的模糊查询性能

    今天这篇文章源于上周在工作中解决的一个实际问题,它是个比较普遍的问题,无论做什么开发,估计都有遇到过.具体是这样的,我们有一份高校的名单(2657个),需要从海量的文章标题中找到包含这些高校的标题,其 ...

  10. 9个小技巧让你的 if else看起来更优雅

    if else 是我们写代码时,使用频率最高的关键词之一,然而有时过多的 if else 会让我们感到脑壳疼,例如下面这个伪代码: 是不是很奔溃?虽然他是伪代码,并且看起来也很夸张,但在现实中,当我们 ...