1. 为什么先存到hbase而不是hive?
  2. 问题一:表里多个字段,比如时间分了24个小时字段,而不是里面规定好1到24的数值范围?
    1. 比如 stats_hourly表的设计
      1. 三个维度
        1. platform_dimension_id
        2. date_dimension_id
        3. kpi_dimension_id
      2. 24列
        1. hour00
        2. hour01
        3. hour02
        4. ...
        5. hour23
  3. 数据维度分析
    1. 用户基本信息分析
      1. 基本信息
        1. 会话个数
        2. 会话长度
          1. 最后一个页面停留的时间无法知晓,可能会少算(不大影响)
        3. 平均会话长度
          1. (和业务标准相比)太长,证明用户在该页面很难找到所求的目标
      2. 图形展示
        1. 数据比较 折线/柱状图
          1. 会话个数和会话长度的时间比较图
          2. 会话平均长度和用户平均会话时长
        2. 柱状图-大饼图展示
          1. 时间轴表示
          2. 时间趋势比较
    2. 浏览器分析
      1. 会话分析
      2. 会员分析
      3. PV
        1. 同一页面的浏览量
        2. 用户增加相应的PV也增加
      4. 用户分析
    3. 地域维度分析
      1. 活跃访客地域分析
      2. 跳出率分析
        1. 分析各个不同地域的跳出率情况
        2. 单PV会话个数
        3. 会话个数
        4. 跳出率
    4. 订单分析模块
      1. 折线图和数字
        1. 订单个数
        2. 支付成功订单个数
        3. 退款订单个数
        4. 当天订单金额
        5. 当天支付金额
        6. 当天退款金额
        7. 到昨天为止,退款总金额
      2. 折线图
        1. 订单金额和退款金额
    5. 事件分析模块
      1. 漏斗图
        1. 选择购买
        2. 填写信息
        3. 下单
        4. 支付
    6. 外链数据分析模块
      1. 各个不同外链带来的用户访问量数据
      2. 外链偏好分析
        1. 百度
        2. 搜狗
        3. yahoo
        4. ....
      3. 外链会话(跳出率)分析
        1. 实际情况:
          1. 0表示外链进入网站数据
          2. 1表示本网站跳转
          3. 1->0->……
          4. 0->1……
          5. 0->0->0->……
          6. 单PV会话
        2. 二次排序算法
    7. 用户访问深度分析模块
  4. 分析系统
    1. 数据展示层
    2. 分析数据层
      1. 数据获取(etl)
        1. 用户日志数据清洗
          1. SDK埋点技术
          2. JAVA
          3. js SDK
          4. 使用script标签引入
          5. 在页面加载完成后执行js,js再进行js的加载
          6. 集成方式
          7. nginx得到数据(pl=platform)
          8. PC
          9. IOS
          10. Android
          11. 浏览器
          12. 注意:
          13. 不采用ip来标识用户的唯一性,通过cookie中填充一个uuid来标识用户的唯一性
        2. 解析后数据保存到hbase
          1. 方便查询并且列式的存储节省资源
      2. 数据分析
        1. 从hbase中读取日志数据
        2. 编写mr/hive的job进行数据分析
        3. 结果保存到mysql数据库
  5. 模块数据获得方法
    1. 用户基本信息分析
      1. =用户浏览行为信息
      2. pageview事件
    2. pageview稍作修改可以完成的模块
      1. 外链数据信息和用户浏览深度分析
        1. 在pageview事件中添加访问页面的当前url和前一个页面的url来进行处理分析
      2. 浏览器信息分析
        1. 浏览器的window.navigator.userAgent
      3. 地域信息分析
        1. nginx服务器收集用户的ip地址分析
    3. 订单信息分析
      1. 要求PC端发送一个订单产生的事件
      2. 需要一个新的事件chargeRequest
    4. 事件分析
      1. 需要一个新的事件数据 定义event
      2. 设置一个launch事件记录新用户的访问
        1. 不提供对外接口,第一次打开网页时就启动
        2. 只实现该事件的数据收集
        3. 子主题 3
  6. 数据存储
    1. 数据存储设计
      1. 原始的日志数据按天保存到hdfs
      2. 经过etl清洗后保存到hbase
      3. 将分析结果保存到mysql数据库中
    2. 数据设计重点
      1. hbase
        1. rowkey和时间戳
        2. 要求:列簇一般尽量的少而且短,采用log标示列簇
        3. 结果:单列簇的rowkey包含时间戳的eventlog表
        4. rowkey:timestamp+uuid.hashcod+random(4)
      2. mysql
        1. 维度信息表
          1. 存储维度相关信息
          2. platform和date(用户基本信息)
          3. 用户基本信息模块
          4. 统计指标
          5. 会员
          6. 新增会员数目
          7. 活跃用户数
          8. 总会员数
          9. 会话
          10. 会话长度
          11. 会话个数
          12. 用户
          13. 新增用户数
          14. 活跃用户数
          15. 总用户数
          16. 维度信息id和create字都拿来标识修改时间
          17. 表名:stats_user
          18. 表名:stats_hourly
          19. 分时段的数据需求
          20. 浏览器信息模块
          21. 新增
          22. pv
          23. create
          24. 修改日期字段
          25. 表名:stats_device_browser
          26. 地域信息分析模块表
          27. 表设计
          28. 活跃用户数
          29. 会话个数
          30. 跳出会话个数 = 单pv
          31. create
          32. 表名:stats_device_location
          33. 用户浏览深度分析模块表
          34. 计算不同数量页面的用户数/会话数
          35. 8个不同数量级指标
          36. 1
          37. 2
          38. 3
          39. 4
          40. 5-10
          41. 10-30
          42. 30-60
          43. 60+
          44. +create
          45. 表名:stats_view_depth
          46. 外链信息分析模块表
          47. 外链(偏好)分析和跳出率分析
          48. 外链偏好
          49. 活跃用户数
          50. 总指标
          51. 活跃用户数
          52. 会话个数
          53. 跳出会话数
          54. create
          55. 表名:stats_inbound
          56. 订单信息分析模块表
          57. 订单数量
          58. 订单金额
          59. 成功支付的订单数量
          60. 成功支付金额
          61. 退款订单数量
          62. 退款金额
          63. 总成功支付金额
          64. 总退款金额
          65. create
          66. 事件分析模块表
          67. 主要分析事件触发次数
          68. 存储结构
          69. times触发次数
          70. create
          71. 按照最终统计的维度信息来看 8个
          72. 平台维度
          73. 地域维度
          74. 时间维度
          75. 支付方式维度
          76. 货币类型维度
          77. 外链维度
          78. event维度
          79. kpi维度
          80. 操作系统维度(os)--本次项目不会用到
          81. 名称格式:dimension_*
        2. 统计分析结果表
          1. 用户存储最终的统计将分析结果
          2. 用dimension维度id为主键,名称格式为:stats_*
        3. 分析辅助表
          1. 主要用户在分析过程中使用到的其它辅助类型表