基于Hadoop的数据仓库

栏目: 服务器 · 发布时间: 5年前

内容简介:数据仓库是面向主题的、集成的、具有时间特征的、稳定的数据集合,用以支持经营管理中的决策制定过程不了解的数据仓库基本概念的,可以参考之前《了解一下数据仓库》这篇文章。

1 什么是数据仓库

数据仓库是面向主题的、集成的、具有时间特征的、稳定的数据集合,用以支持经营管理中的决策制定过程

  • 典型应用:
    • 报表生成
    • 数据分析
    • 数据挖掘
  • 数据仓库其他特征
    • 数据量非常大(TB以上)
    • 是数据库的一种新型应用
    • 使用人员较少
  • 商用数据仓库
    • 典型代表: db2, teradata, vertica
    • 价格昂贵,支持数据量通常TB或以下
  • 大数据时代数据仓库
    • 数据量非常大
    • 扩展性和容错性很重要
    • 成本考量

不了解的数据仓库基本概念的,可以参考之前《了解一下数据仓库》这篇文章。

2 基于Hadoop数据仓库的基本架构

  • 技术手段
    • 通常使用Hive作为数据仓库
      • 超大数据集设计的计算扩展能力
      • 支持HQL查询 — 简单,学习代价低
      • 统一的元数据管理
  • 基本特点
    • 支持海量数据
    • 多维数据分析
    • 使用人员较少
    • 数据延迟较高

2.1 基于Hadoop的数据仓库:第一版

基于Hadoop的数据仓库

  • 优点
    • 满足了数据仓库的基本要求
    • 能够处理海量数据
    • 系统扩展性和容错性极好
  • 缺点
    • 性能较低,实时性不好

2.2 基于Hadoop的数据仓库:第二版

基于Hadoop的数据仓库

  • 改进
    • 使用MPP(Presto)系统提高查询性能
  • 优点
    • 满足了数据仓库的基本要求
    • 能够处理海量数据
    • 系统扩展性和容错性极好
    • 实时性较好
  • 缺点
    • 数据延迟高(数据从产生到入库,再到查询,整个周期长)

2.3 基于Hadoop的数据仓库:第三版(增加实时pipeline)

基于Hadoop的数据仓库

  • 改进
    • 使用Spark Streaming系统降低数据延迟
  • 优点
    • 满足了数据仓库的基本要求
    • 能够处理海量数据
    • 系统扩展性和容错性极好
    • 实时性较好
    • 数据延迟低

3 数据仓库具体实例

网站报表系统

  • 基本作用
    • 按照业务要求生成报表
    • 报表可实时产生或按天产生
  • 数据规模
    • 数据量: TB级
    • 表数目: 100+
  • 用户量
    • 约几十个

3.1 收集数据

基于Hadoop的数据仓库

3.2 ETL

基于Hadoop的数据仓库

  • ETL
    • Extract, Transform, Load
    • 可使用MapReduce/Spark/Pig实现
    • 存储格式: 行式存储与列式存储
  • 行存储与列存储

基于Hadoop的数据仓库

如何创建带压缩的ORC表

  • ETL后日志格式(文本格式)如下:

基于Hadoop的数据仓库

  • 临时表(文本格式)定义如下:
    CREATE EXTERNAL TABLE tmp_logs (
          domain_id INT,
          log_time STRING,
          log_date STRING,
          log_type INT,
          uin BIGINT
      )
      ROW FORMAT DELIMITED
      FIELDS TERMINATED BY ','
      STORED AS TEXTFILE
      LOCATION '/user/hivetest/logs';
  • 将数据导入临时表tmp_logs: LOAD DATA INPATH '/nginx/logs/2016011206' OVERWRITE INTO TABLE tmp_logs;

  • 将临时表中数据导入到orc格式的表中:
    CREATE TABLE logs (
          domain_id INT,
          log_time STRING,
          log_date STRING,
          log_type INT,
          uin BIGINT
      )
      PARTITION BY(log_time STRING)
      STORED AS ORC
      tblproperties("orc.compress"="SNAPPY");
    
      INSERT INTO TABLE logs PARTITION(dt='2016-01-12-06') SELECT * FROM tmp_logs;
  • 压缩算法

基于Hadoop的数据仓库

  • 查询
    SELECT domain_id, sum(log_type) FROM logs WHERE
      log_time>'2016-01-12-06' GROUP BY domain_id;

3.3 参数化报表与可视化

基于Hadoop的数据仓库

4 Summary

  • 基于Hadoop构建数据仓库的好处
    • 开源免费
    • 支持海量数据
    • 周边 工具 成熟
  • 基于Hadoop构建数据仓库的流程
    • 数据收集
    • 数据ETL
    • 参数化报表与可视化

基于Hadoop的数据仓库 一个正在技术专家成长道路上不断努力前进的程序员

(转载本站文章请注明作者和出处buildupchao)


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

编写可读代码的艺术

编写可读代码的艺术

Boswell, D.、Foucher, T. / 尹哲、郑秀雯 / 机械工业出版社 / 2012-7-10 / 59.00元

细节决定成败,思路清晰、言简意赅的代码让程序员一目了然;而格式凌乱、拖沓冗长的代码让程序员一头雾水。除了可以正确运行以外,优秀的代码必须具备良好的可读性,编写的代码要使其他人能在最短的时间内理解才行。本书旨在强调代码对人的友好性和可读性。 本书关注编码的细节,总结了很多提高代码可读性的小技巧,看似都微不足道,但是对于整个软件系统的开发而言,它们与宏观的架构决策、设计思想、指导原则同样重要。编......一起来看看 《编写可读代码的艺术》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

MD5 加密
MD5 加密

MD5 加密工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具