热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

基于COOKIE的点击流数据仓库构建思路(三)

网站数据是企业数据的重要组成部分,在大型企业中,数据通常以关系型数据仓库进行存储。当然,部分企业也在向基于Hadoop等开源框架的分布式非关系型数据仓库结构转变,但这仍只

网站数据是企业数据的重要组成部分,在大型企业中,数据通常以关系型数据仓库进行存储。当然,部分企业也在向基于Hadoop等开源框架的分布式非关系型数据仓库结构转变,但这仍只是少数。大部分公司仍然是关系型数据仓库(RDB)居于主流。接下来的三篇文章会介绍三种基于COOKIE的点击流数据仓库构建思路。本篇是第三篇,基于Webtrekk、Webtrends底层数据的数据仓库作为原型。

Webtrekk和Webtrends的数据仓库模型把每一个事实进行拆分,分为搜索、点击、购物车事件、订单事件、表单事件、媒体事件共6个事实表,纬度表分为页面纬、推荐来源纬、站外广告纬、表单纬、媒体纬、时间纬、自定义客户纬、事件纬、商品纬等共10个纬度。

事实表

  • 搜索事实表:以搜索为核心,记录搜索关键词、类别(如果有)、搜索次数、搜索结果数等。
  • 点击事实表:以页面查看为核心,记录每一次页面查看的页面ID、次数、用户信息等。
  • 购物车事件事实表:以我的购物车为核心,记录购物车内商品ID、数量、购物车ID等。
  • 订单事件事实表:以提交订单为核心,记录提交订单的ID、数量、商品ID等。
  • 表单事件事实表:以表单记录为核心,记录固定表单ID、触发次数、返回正确和错误代码次数等。
  • 媒体事件事实表:以站内媒体事件为核心,记录站内媒体如Flash、视频等ID、点击次数、时长等数据。
  • 自定义事件事实表:比如监测某个区块点击,页面流量分布等。

纬度表

  • 页面纬:页面维度以页面ID未主键,定义页面ID对应的网站不同层级,如某个产品终端页的ID可以对应出页面类型(产品终端页)、页面子类型(手机产品页)等。
  • 推荐来源纬:推荐来源表是Referral表,以ReferralID为主键,用来表示推荐来源、类别、推荐网站具体信息等。
  • 站外广告纬:站外广告纬是自定义Campaign的扩展,以CampaignID为主键,如定义渠道ID为123,可以按照模块、渠道类型、渠道位置等字段进行扩展。
  • 表单纬:表单纬是解释表单对应的页面、类型和具体信息的,常见的是注册表单、购物车表单。
  • 媒体纬:媒体纬是拓展站内媒体类型、所处页面、位置、活动、名称等。
  • 时间纬:时间纬通常可以扩展分为日期纬度和时间纬度两个表,根据公司实际情况而定。通常在日期维度里面以日期为主键,形成对应的周、周几、星期、季度、年等;时间维度以时间纬度主键,形成对应的上午/下午、小时、分钟、秒、小时制(12/24)、小时等。
  • 自定义客户纬:自定义客户纬度以CustomerID为主键,拓展定义的群体信息,如定义的是用户ID,那么可根据此ID为主键扩展用户CRM信息。
  • 事件纬:事件纬度以事件ID为主键,扩展时间信息。如定义的事件可能包含事件类别、事件价值、事件序号等。
  • 商品纬:商品纬度以商品ID(也可以是SKU)为主键,扩展商品类别(一二三级)、品牌、名称,甚至可以把自定义标签放上,比如颜色,尺码等。

数据仓库逻辑模型

以上事实表和维度表构成了这样的一个数据仓库模型:

由于存在非常多的维度表和事实表,所以关系看起来比较复杂,大体结构如下:

以维度表为说明维度:

  1. Referral表、Campaign表、时间表、日期表、自定义客户表和所有的事实表关联;
  2. 商品表只和购物车、订单事实表关联;
  3. 页面表只和点击事实表关联;
  4. 事件表只和自定义时间表关联;
  5. 表单表只和表单事实表关联;

上面这些事实和维度表是主要的底层表,除此以外,还可能会包括站内促销事实表和维度表(内部广告位等跟踪),订单维度表 (如自建和第三方等信息),围绕产品ID展开的产品属性信息,围绕会员ID展开的会员事实和属性信息,围绕订单展开的物流配送信息等。当然,这些扩展开就形成了企业级数据仓库雪花型模型。

到这里,点击流数据仓库模型构建思路基本就写完了,还是那句话,没有一个模型适用于一切业务场景。数据仓库模型只是万里长征其中的一步,从底层的原始LOG采集,到ETL格式化后进入数据仓库,进而结合公司其他数据构建企业级数据仓库,然后针对不同部门或业务场景构建数据集市,在此基础上进行数据挖掘、即席分析、报表设计,甚至要做系统开发(网站流量系统、个性化推荐系统等) 都有大量的工作在里面。另外,集中式的数据仓库架构已经不适合web2.0甚至之后发展的数据需求了,分布式关系型数据仓库、基于Hadoop的开源HIVE和HBASE的NOSQL数据库也会慢慢发展起来。

 

推荐阅读
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 【转】强大的矩阵奇异值分解(SVD)及其应用
    在工程实践中,经常要对大矩阵进行计算,除了使用分布式处理方法以外,就是通过理论方法,对矩阵降维。一下文章,我在 ... [详细]
  • 本文探讨了使用Python实现监控信息收集的方法,涵盖从基础的日志记录到复杂的系统运维解决方案,旨在帮助开发者和运维人员提升工作效率。 ... [详细]
  • 龙蜥社区开发者访谈:技术生涯的三次蜕变 | 第3期
    龙蜥社区的开发者们通过自己的实践和经验,推动着开源技术的发展。本期「龙蜥开发者说」聚焦于一位资深开发者的三次技术转型,分享他在龙蜥社区的成长故事。 ... [详细]
  • 精选10款Python框架助力并行与分布式机器学习
    随着神经网络模型的不断深化和复杂化,训练这些模型变得愈发具有挑战性,不仅需要处理大量的权重,还必须克服内存限制等问题。本文将介绍10款优秀的Python框架,帮助开发者高效地实现分布式和并行化的深度学习模型训练。 ... [详细]
  • 深入理解云计算与大数据技术
    本文详细探讨了云计算与大数据技术的关键知识点,包括大数据处理平台、社会网络大数据、城市大数据、工业大数据、教育大数据、数据开放与共享的应用,以及搜索引擎与Web挖掘、推荐技术的研究及应用。文章还涵盖了云计算的基础概念、特点和服务类型分类。 ... [详细]
  • 深入解析:存储技术的演变与发展
    本文探讨了从单机文件系统到分布式文件系统的存储技术发展过程,详细解释了各种存储模型及其特点。 ... [详细]
  • 本文介绍如何通过整合SparkSQL与Hive来构建高效的用户画像环境,提高数据处理速度和查询效率。 ... [详细]
  • Redis:缓存与内存数据库详解
    本文介绍了数据库的基本分类,重点探讨了关系型与非关系型数据库的区别,并详细解析了Redis作为非关系型数据库的特点、工作模式、优点及持久化机制。 ... [详细]
  • 本文介绍了Hadoop的核心组件,包括高可靠性和高吞吐量的分布式文件系统HDFS、分布式的离线并行计算框架MapReduce、作业调度与集群资源管理框架YARN以及支持其他模块的工具模块Common。 ... [详细]
  • 大数据领域的职业路径与角色解析
    本文将深入探讨大数据领域的各种职业和工作角色,帮助读者全面了解大数据行业的需求、市场趋势,以及从入门到高级专业人士的职业发展路径。文章还将详细介绍不同公司对大数据人才的需求,并解析各岗位的具体职责、所需技能和经验。 ... [详细]
  • 本文整理了关于Sia去中心化存储平台的重要网址和资源,旨在为研究者和用户提供全面的信息支持。 ... [详细]
  • MongoDB核心概念详解
    本文介绍了NoSQL数据库的概念及其应用场景,重点解析了MongoDB的基本特性、数据结构以及常用操作。MongoDB是一个高性能、高可用且易于扩展的文档数据库系统。 ... [详细]
  • 本文介绍了如何使用Flume从Linux文件系统收集日志并存储到HDFS,然后通过MapReduce清洗数据,使用Hive进行数据分析,并最终通过Sqoop将结果导出到MySQL数据库。 ... [详细]
  • Hadoop的文件操作位于包org.apache.hadoop.fs里面,能够进行新建、删除、修改等操作。比较重要的几个类:(1)Configurati ... [详细]
author-avatar
Z-ji
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有