数据仓库中集成了企业几乎所有的可以获取到的数据以用于数据分析和决策支持。进入到数据仓库中的数据无外乎三种类型:结构化数据、半结构化数据和非结构化数据,它们经过转化后以某种形式统一地储存在数据仓库中,即通常说的ETL(Extract, Transform, Load,抽取、转换、装载)的过程。下面主要说一下这三种数据类型的区别,它们分别包括哪些源数据以及这些数据在网站数据分析中的作用。

结构化数据

这类数据的格式非常规范,典型的代表就是关系数据库中的数据,这些数据可以用二维表来存储,有固定的字段数,每个字段有固定的数据类型(数字、字符、日期等),并且每个字段的字节长度也相对固定。这类数据也是最易管理维护的,同时对于查询、展示和分析而言也是最为方便的一类数据格式。

结构化的数据在网站中一般指的是网站内部的数据库数据以及一些外部开放的数据库接口中获取的数据。这些数据可以直接通过ETL导入到数据仓库中进行集成化管理,而在网站分析和数据分析中直接可以根据需要通过SQL语句查询导出。

结构化的数据在网站数据分析中占据着举足轻重的地位,这些存储在数据库中的数据一般都是网站的运营数据及用户操作的结果数据(Outcome),比如网站的注册用户数、博客的文章数、评论数……而对于电子商务类网站而言,那些订单和销售数据也直接的存储与数据库中,而基于这些数据计算得到的总利润、每个订单平均利润、每个用户创造利润等KPI数据可以直接分析网站的目标是否实现。

半结构化数据

半结构化数据的格式较为规范,一般都是纯文本数据,可以通过某种方式解析得到每项的数据。最常见的就是日志数据、XML、JSON等格式的数据,它们每条记录可能会有预定义的规范,但是可能每条记录包含的信息不尽相同,也可能会有不同的字段数,包含不同的字段名或字段类型,或者包含着嵌套的格式。这类数据一般都是以纯文本的形式输出,管理维护也较为方便,但在需要使用这些数据时,如获取、查询或分析数据时,可能需要先对这些数据格式进行相应的解析。

半结构化的数据通常是指网站的日志数据,或者因为某些需求以XML或JSON格式输出的数据。最常见的就是网站的Apache日志,它根据预定义的字段顺序打出相应的值:

72.14.192.1 – - [09/May/2010:03:35:02 +0800] “GET / HTTP/1.1″ 200 13726 “-” “Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-US),gzip(gfe) (via translate.google.com)”

而JSON格式则会以键值对(Key/Value)的形式输出数据:

{time: 1234567890, action: “comment”, respond: true, user: {userid: 1, username: “abc”}}

对于像Apache日志那样的数据,我们可以根据需要切分出那些有用的数据将它们导入到数据仓库,而xml和JSON格式的数据我们可以调用各类字符串解析的方法通过它们的标签或者名称来获取相应的值,对于嵌套结构可以使用逐层遍历的方法依次获取,同样选取那些对于分析有用的数据存在数据仓库。在这个过程中,ETL中的转换部分会显得较为复杂,因为这里需要进行格式解析,而这一步的优劣直接影响ETL的稳定性和健壮性。还有一个令人头疼的问题就是数据的格式和存放问题,也许有必要创建一些自定义字段类型;或者选择NOSQL数据库,关于NOSQL数据库的讨论一度热火朝天,从Google的Big table、Amazon的Dynamo到Facebook的Cassandra,NOSQL数据库提供了可扩展性的海量数据存储,对于WEB数据管理提供了新的解决方案。

半结构化数据对于网站数据分析同样非常重要,网站的点击流日志及一些用户行为数据一般都是以半结构化数据的形式输出的,当我们需要统计网站分析中的各类指标或者进行用户行为分析时,这类数据就必不可少。

非结构化数据

非结构化数据指的是那些非纯文本类数据,没有标准格式,无法直接地解析出相应的值。常见的非结构化数据有富文本文档、网页、多媒体(图像、声音、视频等)。这类数据不易收集管理,也无法直接查询和分析,所以对这类数据需要使用一些不同的处理方式。

富文本、图片、声音、视频等这些信息,除非需要进行高级的文本挖掘或者多媒体数据挖掘,否者对于一些日常涉及的数据统计和分析而言,非结构化数据本身是没有分析的价值的。所以一般不会将非结构化数据直接以二进制的形式存入数据仓库,数据仓库之父——Inmon的建议是在数据仓库中只需要储存非结构化数据的元数据(Meta Data),或者称为解释型数据。所以我们一般将非结构化的数据存放在文件系统(File System)中,而在数据仓库里面记录这些数据的信息,以便快速地索引和寻找需要的数据。如Word文档的标题、摘要、作者、创建时间、最近一次修改时间等,而图片则可能还包括像素、分辨率等。就像你右击文件属性的详细信息标签下看到的那些数据项,这些非结构化数据的元数据能够通过标准的形式记录,并且能帮助快速地搜索查询到对应的非结构化数据,同样可以被用于统计和分析,其实就是给每个非结构化数据贴上了标签,并将标签信息记录到了数据仓库中。

可能对于大多数网站而言,这类非结构化数据除非被用于高级的数据挖掘,在大部分时间中它们对数据的统计分析作用并不大,但对于某些网站,比如图片、视频类网站,这些数据就至关重要。对于图片、视频网站而言,每个图片和视频就是网站的产品,而记录图片视频的元数据就是这些产品的详细信息数据,产品分析、产品细分等都依赖于这些数据;同样,对于一些公司的内部归档的文档、资料而言,如果有数据仓库统一地记录这些文件的信息,就能够在必要时快速地搜索找到需要的文件,对于信息的统一集成化管理非常有效。

数据仓库的源数据类型相关推荐

  1. 数据仓库之源数据类型

    数据仓库中集成了企业几乎所有的可以获取到的数据以用于数据分析和决策支持.这些进入到数据仓库中的数据无外乎三种类型:结构化数据.半结构化数据和非结构化数据,它们经过转化后以某种形式统一地储存在数据仓库中 ...

  2. 【SQL开发实战技巧】系列(十八):数据仓库中时间类型操作(进阶)INTERVAL、EXTRACT以及如何确定一年是否为闰年及周的计算

    系列文章目录 [SQL开发实战技巧]系列(一):关于SQL不得不说的那些事 [SQL开发实战技巧]系列(二):简单单表查询 [SQL开发实战技巧]系列(三):SQL排序的那些事 [SQL开发实战技巧] ...

  3. 【SQL开发实战技巧】系列(十六):数据仓库中时间类型操作(初级)日、月、年、时、分、秒之差及时间间隔计算

    系列文章目录 [SQL开发实战技巧]系列(一):关于SQL不得不说的那些事 [SQL开发实战技巧]系列(二):简单单表查询 [SQL开发实战技巧]系列(三):SQL排序的那些事 [SQL开发实战技巧] ...

  4. 【SQL开发实战技巧】系列(十九):数据仓库中时间类型操作(进阶)如何一个SQL打印当月或一年的日历?如何确定某月内第一个和最后—个周内某天的日期?

    系列文章目录 [SQL开发实战技巧]系列(一):关于SQL不得不说的那些事 [SQL开发实战技巧]系列(二):简单单表查询 [SQL开发实战技巧]系列(三):SQL排序的那些事 [SQL开发实战技巧] ...

  5. 【SQL开发实战技巧】系列(二十一):数据仓库中时间类型操作(进阶)识别重叠的日期范围,按指定10分钟时间间隔汇总数据

    系列文章目录 [SQL开发实战技巧]系列(一):关于SQL不得不说的那些事 [SQL开发实战技巧]系列(二):简单单表查询 [SQL开发实战技巧]系列(三):SQL排序的那些事 [SQL开发实战技巧] ...

  6. 【SQL开发实战技巧】系列(十七):数据仓库中时间类型操作(初级)确定两个日期之间的工作天数、计算—年中周内各日期出现次数、确定当前记录和下一条记录之间相差的天数

    系列文章目录 [SQL开发实战技巧]系列(一):关于SQL不得不说的那些事 [SQL开发实战技巧]系列(二):简单单表查询 [SQL开发实战技巧]系列(三):SQL排序的那些事 [SQL开发实战技巧] ...

  7. mybatis获取mysql源数据类型_spring集成mybatis实现mysql数据库读写分离

    前言 在网站的用户达到一定规模后,数据库因为负载压力过高而成为网站的瓶颈.幸运的是目前大部分的主流数据库都提供主从热备功能,通过配置两台数据库主从关系,可以将一台数据库的数据更新同步到另一台服务器上. ...

  8. 浅谈数据仓库的基本架构

    数据仓库的目的是构建面向分析的集成化数据环境,为企业提供决策支持(Decision Support).其实数据仓库本身并不"生产"任何数据,同时自身也不需要"消费&quo ...

  9. 数据仓库的架构-参考

    数据仓库的目的是构建面向分析的集成化数据环境,为企业提供决策支持(Decision Support).其实数据仓库本身并不"生产"任何数据,同时自身也不需要"消费&quo ...

最新文章

  1. 用chrome的snippets片段功能创建页面js外挂程序,从控制台创建js小脚本
  2. 阿里巴巴的持久层抛弃了hibernate,采用的却是MyBatis框架。。。
  3. 流放之路材质过滤怎么设置_三种不同材质的精密过滤设备特点
  4. CoreData / MagicalRecord
  5. html跑马灯可以上下动ma,使用 JS 实现上下滚动走马灯
  6. python中pickle模块_Python pickle模块的用法
  7. cmake BUILD_SHARED_LIB变量
  8. 关于qq创始人----马化腾的一些琐事
  9. 基于virtualbox安装ubuntu18.04
  10. SQLite-database disk image is malformed问题的解决
  11. Python 字典(Dictionary) items()方法
  12. ppt学习05——配色
  13. linux SIGABRT信号
  14. 少儿编程是不是智商税
  15. SEO文章图片添加水印,批量SEO文章图片去除水印
  16. 工业类计算机主板维修,工控机电脑主板坏了如何维修
  17. Windows 平台部署前后端分离项目
  18. android基础知识13:AndroidManifest.xml文件解析【转载】
  19. PHP绕过strpos()
  20. 计算机二级本科免修,计算机二级证书可以免考自考的哪些科目?

热门文章

  1. FabFilter Pro Q3 for Mac(EQ均衡效果器插件)破解版
  2. 手机号码转码_手机号码导入数据库乱码
  3. excel拆分成多个文档
  4. hibernate的查询条件lt_hibernate的多条件查询——Criteria Query的应用
  5. unity5中AssetBundle相关
  6. bashsupport插件_利用bash-support.zip插件构建shell的vi集成开发环境
  7. 跑动大数据的笔记本配置_大数据告诉你,最完美的跑步姿势就是你这样的!
  8. SPAD SiPM 激光雷达sensor 简介
  9. Markdown mermaid种草(4)_ 甘特图
  10. 树莓派gpio指令问题:找不到指令或不能识别板子类型