hive入门学习

        

一、数据仓库的概念

  • 数据仓库(Data Warehouse简称DW)是一个用于存储、分析、报告的数据系统
  • 数据仓库的目的是构建面向分析的集成化数据环境,分析结果为企业提供决策支持。

二、数仓专注分析

  • 数仓本身并不生产任何数据,其数据来源于不同外部系统;
  • 同时数据仓库自身也不需要消费任何数据,其结果开放给各个外部应用使用
  • 这也是为什么叫仓库而不叫工厂的原因

三、数据仓库的主要特征

  • 面向主题
    • 主题是一个抽象的概念,是较高层次上企业信息系统中的数据综合、归类并进行分析利用的抽象。在逻辑意义上,它是对应企业中某一宏观分析领域所涉及的分析对象。
    • 传统OLTP系统对数据的划分并不适用于决策分析。而基于主题组织的数据则不同,它们被划分为各自独立的领域,每个领域有各自的逻辑内涵但互不交叉,在抽象层次上对数据进行完整、一致和准确的描述

  • 集成性
    • 主题相关的数据通常会分布在多个操作型系统中,彼此分散、独立、异构
    • 因此在数据进入数据仓库之前,必然要经过统一与综合,对数据进行抽取、清理、转换和汇总,这一步是数据仓库建设中最关键、最复杂的一步,所要完成的工作有:
      • 统一源数据中所有矛盾之处;

如字段的同名异义、异名同义、单位不统一、字长不一致等等。

  • 进行数据综合和计算

数据仓库中的数据综合工作可以在从原有数据库抽取数据时生成,但许多是在数据仓库内部生成的,即进入数据仓库以后进行综合生成的。

  • ETL:抽取、转换、加载。

  • 非易失性
    • 数据仓库是分析数据的平台,而不是创造数据的平台。我们是通过数仓去分析数据中的规律,而不是去创造修改其中的规律。因此数据进入数据仓库后,它便稳定且不会改变。
    • 数据仓库的数据反映的是一段相当长的时间内历史数据的内容,数据仓库的用户对数据的操作大多是数据查询较复杂的挖掘,一旦数据进入数据仓库以后,一般情况下被较长时间保留。
    • 数据仓库中一般有大量的查询操作但修改和删除操作很少
  • 时变性
    • 数据仓库包含各种粒度的历史数据,数据可能与某个特定日期、星期、月份、季度或者年份有关。
    • 当业务变化后会失去时效性。因此数据仓库的数据需要随着时间更新,以适应决策的需要
    • 从这个角度讲,数据仓库建设是一个项目,更是一个过程。

四、数据仓库的主流开发语言--SQL

  • SQL全称是结构化查询语言,结构化是什么意思?有没有非结构化
    • 结构化数据也称作行数据,是由二维表结构来逻辑表达和实现的数据,严格地遵循数据格式与长度规范,主要通过关系型数据库进行存储和管理。
    • 与结构化数据相对的是不适于由数据库二维表来表现的非结构化数据,包括所有格式的办公文档、XML、HTML、各类报表、图片和音频、视频信息等。
    • 通俗来说,结构化数据会有严格的行列对齐,便于解读与理解。
  • 数据定义语言DDL
    • DDL语法使我们有能力创建或删除表,以及数据库、索引等各种对象,但是不涉及表中具体数据操作:
      • CREATE DATABASE -- 创建新数据库
      • CREATE TABLE -- 创建新表
  • 数据操作语言DML
    • DML语法是我们有能力针对表中的数据进行插入、更新、删除、查询操作
      • SELECT --从数据库表中获取数据
      • UPDATE --更新数据库表中的数据
      • DELECT --从数据库表中删除数据
      • INSERT --向数据库表中插入数据

五、Hive入门

  • 什么是Hive
    • Apache Hive是一款建立在Hladoop之上的开源数据仓库系统,可以将存储在Hadoop文件中的结构化、半结构化数据文件映射为一张数据库表,基于表提供了一种类似SQL的查询模型,称为Hive查询语言(HQL),用于访问和分析存储在Hadoop文件中的大型数据集。
    • Hive核心是将HQL转换为MapReduce程序,然后将程序提交到Hadoop群集执行。Hive由Facebook实现并开源。
  • Hive和Hadoop的关系
    • 从功能来说,数据仓库软件,至少需要具备下述两种能力∶
    • 存储数据的能力、分析数据的能力
    • Apache Hive作为一款大数据时代的数据仓库软件,当然也具备上述两种能力。只不过Hive并不是自己实现了上述两种能力,而是借助Hadoop。
      • Hive利用HDFS存储数据,利用MapReduce查询分析数据
    • 这样突然发现Hive没啥用,不过是套壳IHadoop罢了。其实不然,Hive的最大的魅力在于用户专注于编写HQL Hive帮您转换成为MapReduce程序完成对数据的分析
  • Hive能将数据文件映射成一张表,什么是映射?
    • 映射在数学上称之为一种对应关系,比如y=x+1,对于每一个x的值都有与之对应的y的值。
    • 在hive中能够写sql处理的前提是针对表,而不是针对文件,因此需要将文件和表之间的对应关系描述记录清交一映射信息专业的叫法称之为元数据信息(元数据是指用来描述数据的数据metadata )。
  • Hive软件本身到底承担了什么功能职责?
    • SQL语法解析编译成为MapReduce
  • 最终结果

六、Hive的架构、组件

七、Hive的元数据

  • 1.什么是元数据
    • 元数据(Data)又称之为描述数据的数据(data about data),主要是描述数据属性的信息,用来支持如指示存储,历史数据,资料查找,文件记录等功能
  • 2.Hive Metdata
    • Hive Metdata即hive的元数据
    • 包含用Hive创建的database、table、表的位置、类型、属性,字段顺序类型等元信息。
    • 元数据存储在关系型数据库中,如hive内置的derby,或者第三方MySQL
  • 3.Hive Metastore

八、SQL中DDL语法

  • 创建表、创建数据库(略)
    • 1.数据类型
      • Hive数据类型指的是表中列的字段类型
      • 整体分为两类:原生数据类型和复杂数据类型
      • 最常用的一般是String和int
    • 2.分隔符指定语法
      • ROW FORMAT DELIMITED语法用于指定字段之间等相关的分隔符,这样Hive才能正确的读取解析数据
      • 或者说只有分隔符指定正确,解析数据成功,我们才能在表中看到数据
      • LazySimpleSerDe是Hive默认的,包含4种子语法,分别用于指定字段之间、集合元素之间、map映射kv之间、换行的分隔符号
      • 在建表的时候可以根据数据的特点灵活搭配使用
        • 一般使用ROW FORMAT DELIMITED FIELDS TERMINATED BY ‘字段分割符’,此外还有
      • 默认分隔符‘\001’;(文本显示为SOH)
    • 3.加载数据
      • 邪教方法: hdfs dfs -put archer.txt  /user/hive/warehouse/rcz0613.db/t_archer
        • 从本地直接映射到表中
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值