热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

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

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

Piwik的底层数据表包括piwik_log_visit、piwik_log_conversion、piwik_log_conversion_item、piwik_log_link_visit_action、piwik_goal、piwik_log_action共6个基础表,当然除了这些表以外还有归档表、系统运维表等。

Piwik底层仓库以piwik_log_visit和piwik_log_conversion为事实核心,以piwik_log_conversion_item、piwik_log_link_visit_action、piwik_goal、piwik_log_action为纬度表形成的。

下面是对各个表的基本介绍

  1. piwik_log_visit是网站中的行为数据,每次触发Server Call(简单的理解为页面请求)都会触发一条记录。
  2. piwik_log_conversion是网站中的转化数据(转化包括电子商务转化和目标转化)。
  3. piwik_log_conversion_item是对电子商务转化数据的拓展,包含商品分类、SKU、价格、数量等记录。
  4. piwik_log_link_visit_action是对访问用户的信息拓展,包括自定义变量、服务器请求时间、各种来源页面的ID等。
  5. piwik_goal是对转化目标的拓展,包括匹配类型、目标名称、是否大小写敏感、价值等变量。
  6. piwik_log_action是对页面内容的扩展,每个页面在该表中都对应一条记录,包含页面ID、名称、哈希值、类型等变量。

Piwik数据仓库的模型如下:

这种模型的好处是把一张大表进行查词拆分,并以访问和转化为拆分依据,形成两个事实核心的数据仓库。当然,piwik的数据仓库还是比较简单,由于该工具本身的功能性一般,没有特别多的特色功能,因此也没有很多纬度。不过它的优势在于本地化安装和数据处理,且部署简单,加上其开源性可以节省网站系统费用,底层的数据已经经过一轮清洗,开发难度小,比较容易在初创型公司使用。当然,由于是开源的,该工具没有很好的服务支持,专业并且了解底层的网站分析师是必须的。

我相信,它的基本功能已经可以满足大多数企业的日常需求,很多商用网站分析工具比它好的地方也不过是服务支持较好(看国内服务商情况)、正负向路径的无限扩展(Piwik本身有路径,虽然还不是很强大)、强大的自定义功能(虽然没有太多变量,但piwik的5个自定义群体和虚拟事件基本上可以满足一般需求)、实时数据(Piwik是本地化的,实时性根据系统硬件和定时JOB完成)。因此其开源性、结构化数据、本地化是比较吸引我的地方,我知道有的公司已经基于piwik在做数据仓库开发和上层报表的应用,中小企业百万级的流量处理能力还是没有问题的。

 

推荐阅读
  • 深入解析:存储技术的演变与发展
    本文探讨了从单机文件系统到分布式文件系统的存储技术发展过程,详细解释了各种存储模型及其特点。 ... [详细]
  • Java虚拟机及其发展历程
    Java虚拟机(JVM)是每个Java开发者日常工作中不可或缺的一部分,但其背后的运作机制却往往显得神秘莫测。本文将探讨Java及其虚拟机的发展历程,帮助读者深入了解这一关键技术。 ... [详细]
  • H5技术实现经典游戏《贪吃蛇》
    本文将分享一个使用HTML5技术实现的经典小游戏——《贪吃蛇》。通过H5技术,我们将探讨如何构建这款游戏的两种主要玩法:积分闯关和无尽模式。 ... [详细]
  • 从理想主义者的内心深处萌发的技术信仰,推动了云原生技术在全球范围内的快速发展。本文将带你深入了解阿里巴巴在开源领域的贡献与成就。 ... [详细]
  • 精选10款Python框架助力并行与分布式机器学习
    随着神经网络模型的不断深化和复杂化,训练这些模型变得愈发具有挑战性,不仅需要处理大量的权重,还必须克服内存限制等问题。本文将介绍10款优秀的Python框架,帮助开发者高效地实现分布式和并行化的深度学习模型训练。 ... [详细]
  • 本文详细介绍了如何搭建一个高可用的MongoDB集群,包括环境准备、用户配置、目录创建、MongoDB安装、配置文件设置、集群组件部署等步骤。特别关注分片、读写分离及负载均衡的实现。 ... [详细]
  • Python学习day3网络基础之网络协议篇
    一、互联网协议连接两台计算机之间的Internet实际上就是一系列统一的标准,这些标准称之为互联网协议,互联网的本质就是一系列网络协议。二、为什么要有互联网协议互联网协议就相当于计 ... [详细]
  • 一家位于长沙的知名网络安全企业,现面向全国诚聘高级后端开发工程师,特别欢迎具有一线城市经验的技术精英回归故乡,共创辉煌。 ... [详细]
  • 本文介绍如何使用JavaScript中的for循环来创建一个九九乘法表,适合初学者学习循环结构的应用。 ... [详细]
  • 本文介绍了如何利用X_CORBA实现远程对象调用,并通过多个示例程序展示了其功能与应用,包括基础的Hello World示例、文件传输工具以及一个完整的聊天系统。 ... [详细]
  • 本文探讨了一种统一的语义数据模型,旨在支持物联网、建筑及企业环境下的数据转换。该模型强调简洁性和可扩展性,以促进不同行业间的插件化和互操作性。对于智能硬件开发者而言,这一模型提供了重要的参考价值。 ... [详细]
  • Redis:缓存与内存数据库详解
    本文介绍了数据库的基本分类,重点探讨了关系型与非关系型数据库的区别,并详细解析了Redis作为非关系型数据库的特点、工作模式、优点及持久化机制。 ... [详细]
  • 本文详细记录了 MIT 6.824 课程中 MapReduce 实验的开发过程,包括环境搭建、实验步骤和具体实现方法。 ... [详细]
  • 对象存储与块存储、文件存储等对比
    看到一篇文档,讲对象存储,好奇,搜索文章,摘抄,学习记录!背景:传统存储在面对海量非结构化数据时,在存储、分享与容灾上面临很大的挑战,主要表现在以下几个方面:传统存储并非为非结 ... [详细]
  • 【转】强大的矩阵奇异值分解(SVD)及其应用
    在工程实践中,经常要对大矩阵进行计算,除了使用分布式处理方法以外,就是通过理论方法,对矩阵降维。一下文章,我在 ... [详细]
author-avatar
zevbin_187
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有