大数据离线(六)

Hive

数据源

  1. 业务系统数据
    获取成本低、方式容易。获取形式有:接口调用、数据库 dump
  2. 爬虫数据
    爬虫(Web crawler),是指一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。

数据的管理

  1. 数据文件管理
    文件管理的真谛在于方便保存和迅速提取。
    方法分类管理 :从每一个文件夹的建立,我们都要按照数据文件的属性,分为大大小小、多个层级的文件夹,建立合理的文件保存架构。此外所有的文件、文件夹,都要规范化地命名,并放入最合适的文件夹中。
    文件服务器,来统一管理文件。带来如下好处:定时集中对文件进行备份;可以统一制定文件安全访问权限策略;可以统一进行文件服务器防病毒管理。常见的文件服务有以下这几种:ftp 文件服务 Samba 文件服务 NFS 文件服务

  2. 文件管理规范
    例子:FTP 服务进行跨部门文件共享的相关规范:
    接口新增数据文件——正常数据:文件类型标示_源系统数据库类型简写.源系统数据库.表名称_数据日期_重传序号.lzo
    接口控制校验文件——正常数据:增全量标示_源系统数据库类型简写.源系统数据库.表名称_数据日期_重传序号.md5
    接口表结构文件——正常数据:增全量标示_源系统数据库类型简写.源系统数据库.表名称_数据日期_重传序号.xml

  3. 数据质量检测
    完整性:数据信息是否存在缺失
    一致性:数据是否遵循了统一的规范,数据集合是否保持了统一的格式
    准确性:数据记录的信息是否存在异常或错误
    及时性:数据从产生到可以查看的时间间隔,也叫数据的延时时长

数据仓库

数据仓库,英文名称为Data Warehouse,可简写为DW或DWH。数据仓库,是为企业所有级别的决策制定过程,提供所有类型数据支持的战略集合。它是单个数据存储,出于分析性报告和决策支持目的而创建。 为需要业务智能的企业,提供指导业务流程改进、监视时间、成本、质量以及控制。

数据仓库与数据库区别

  • 数据库是面向事务的设计,数据仓库是面向主题设计的。
  • 数据库一般存储业务数据,数据仓库存储的一般是历史数据。
  • 数据库设计是尽量避免冗余,一般针对某一业务应用进行设计,比如一张简单的 User 表,记录用户名、密码等简单数据即可,符合业务应用,但是不符合分析。数据仓库在设计是有意引入冗余,依照分析需求,分析维度、分析指标进行设计。
  • 数据库是为捕获数据而设计,数据仓库是为分析数据而设计。

数据仓库分层

大数据离线(六)_第1张图片

  • 源数据层(ODS):此层数据无任何更改,直接沿用外围系统数据结构和数据,不对外开放;为临时存储层,是接口数据的临时存储区域,为后一步的数据处理做准备。
  • 数据仓库层(DW):也称为细节层,DW 层的数据应该是一致的、准确的、干净的数据,即对源系统数据进行了清洗(去除了杂质)后的数据。
  • 数据应用层(DA 或 APP):前端应用直接读取的数据源;根据报表、专题分析需求而计算生成的数据

数据仓库从各数据源获取数据及在数据仓库内的数据转换和流动都可以认为是 ETL(抽取 Extra, 转化 Transfer, 装载 Load)的过程
为什么要对数据仓库分层?用空间换时间,通过数据分层管理可以简化数据清洗的过程

Hive基础知识

Hive 是基于 Hadoop 的一个数据仓库工具,可以将结构化的数据文件 映射为一张数据库表,并提供类 SQL 查询功能。本质是将SQL转换为MapReduce 程序。
Hive 利用HDFS存储数据,利用MapReduce查询分析数据。

Hive特点

  • 优点:
    1、可扩展性,横向扩展

  2、延展性,Hive 支持自定义函数,用户可以根据自己的需求来实现自己的函数

  3、良好的容错性,可以保障即使有节点出现问题,SQL 语句仍可完成执行

  • 缺点:

  1、不支持记录级别的增删改操作

  2、查询延时很严重

  3、不支持事务(因为不没有增删改,所以主要用来做 OLAP(联机分析处理),而 不是 OLTP(联机事务处理),这就是数据处理的两大级别)。

Hive的架构

大数据离线(六)_第2张图片

  1. 用户接口: CLI、JDBC/ODBC、WebGUI其中CLI(command lineinterface)为 shell 命令行;JDBC/ODBC 是 Hive 的 JAVA 实现,与传统数据库JDBC 类似;WebGUI 是通过浏览器访问 Hive。

  2. 跨语言服务 : thrift server 提供了一种能力,让用户可以使用多种不同的语言来操纵hive

  3. 底层的Driver: 驱动器Driver,编译器Compiler,优化器Optimizer,执行器Executor

  4. 元数据存储系统 : Hive 中的元数据包括表的名字,表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在目录等。

Hive数据模型

Hive 中所有的数据都存储在 HDFS 中,没有专门的数据存储格式在创建表时指定数据中的分隔符,Hive 就可以映射成功,解析数据。
Hive中包含以下数据模型:

  • database:在 HDFS 中表现为${hive.metastore.warehouse.dir}目录下一个文件夹
  • table:在 HDFS 中表现所属 database 目录下一个文件夹
  • external table:与 table 类似,不过其数据存放位置可以指定任意 HDFS 目录路径
  • partition:在 HDFS 中表现为 table 目录下的子目录
  • bucket:在 HDFS 中表现为同一个表目录或者分区目录下根据某个字段的值进行 hash 散 列之后的多个文件
  • view:与传统数据库类似,只读,基于基本表创建

转载于:https://www.cnblogs.com/lifuwei/p/9436898.html

你可能感兴趣的:(大数据离线(六))