个人大数据总结之hive(一)

    不知不觉从事大数据开发,这么长的时间一直没有将知识进行一个体系化,现在终于决定要将所学技能整理一下了,哈哈哈哈(多亏了有个贤内助督促,帮我调整格式)。话不多说,我要开始了~。如果写的有不对的地方,欢迎大家指正,勿喷~。

 

目录

我对数据仓库和数据库二者的理解:

通常所说的 ETL(提取转化加载)

hive定义

hive数据的存储

Hive的元数据仓库

hive的运行方式

hive的访问方式


一、我对数据仓库和数据库二者的理解:

     1.数据仓库特点:

               ①存放的数据是静态的、历史的、不能进行随意修改的,只能新增、查询 

               ②数据仓库更加注重的是一个OLAP(联机分析处理----数据分析的目标则是探索并挖掘数据价值,作为企业高层进行决策的参考)的操作

               ③数据仓库不推荐执行事务操作

     2. 数据库特点:

               ①更加注重的是在线、交易的、动态的数据

               ②数据库更加注重的是一个OLTP(联机事务处理 -----业务类系统主要供基层人员使用,进行一线业务操作)的操作

               ③数据库的操作依赖更多的业务的事务操作

二、通常所说的 ETL(提取转化加载):

E(Extract) :提取、采集

T(Transform) :转化、标准化、格式化

       介绍:数据清洗Data clean:去除无用数据

                  数据脱敏Data desensitization:剔除敏感数据,将敏感数据隐藏(编程"*", 还有加密,还有做映射), 一般情况下都是通过mr来做

 L(Loading) :加载

介绍:把原始的数据转化为数据仓库中建模好的格式或者标准的数据,然后在将标准化的数据加载到DW中的一个过程称之为ETL。(这里的建模或者模型,说白了就是数据仓库中表的定义,表和表之间的关系)

三、hive定义

Hive是建立在Hadoop上的数据仓库基础构架。它提供了一系列的工具,可以用来进行数据提取转化加载(ETL),这是一种可以存储、查询和分析存储在Hadoop中的海量数据的机制。Hive 定义了简单的类SQL查询语言,称为HQL,它允许熟悉SQL的用户查询数据。同时,这个语言也允许熟悉MapReduce开发者的开发自定义的mapper和 reducer来处理内建mapper和reducer无法完成的复杂的分析工作。

Hive是SQL解析引擎,它将SQL语句转译成M/R Job然后在Hadoop执行。hive中的表其实就是hdfs的目录,按照表名把文件夹分开。如果是分区表,则分区值是子文件夹,我们可以直接在M/R的job中直接使用这些数据。

四、hive数据的存储

1、Hive的数据存储基于Hadoop HDFS

2、Hive没有专门的数据存储格式

3、存储结构主要包括:数据库、文件、表、视图、索引

4、Hive默认可以直接加载文本文件(TextFile),还支持SequenceFile、RCFile 、ORCFile、Parquet

5、创建表时,指定Hive数据的列分隔符与行分隔符,Hive即可解析数据

6、 hive的元数据存在于mysql中,在mysql中会有一个hive库,存放相应的表,一共53张表。(这是在hive配置文件中指定的)

五、Hive的元数据仓库

1、metastore是hive元数据的集中存放地。

2、metastore默认使用内嵌的derby数据库作为存储引擎

3、Derby引擎的缺点:一次只能打开一个会话

4、实践中多使用MySQL作为外置存储引擎,多用户同时访问 

六、hive的运行方式

1、集群模式:

         在生产中的运行方式,以mr、spark、tez作为计算引擎,进行分布式计算。

2、本地模式:

        set hive.exec.mode.local.auto=true,这就可以在hive中进行简单的测试

七、hive的访问方式

1、CLI(命令行)

           (1)通过hive的脚本

                    hive -e(接的是hql语句,可以是多条语句,用""引起来)

                    例如:hive -e "set hive.cli.print.header=true;use mydb1; show tables; select * from t;"

                   hive - f (接的是hql脚本)

                   例如:hive -f hive-script.hql

             这两种方式,可以将最终的执行结果输出重定向到某一个文件中,需要添加两个参数-S

             hive -S -f hive-script.hql > resutl.csv(输出重定向,有覆盖功能)

            hive -S -f hive-script.hql >> resutl.csv (输出重定向,有追加功能)

2、JAVA API:

           hive-jdbc

 

 

   今天就先总结到这里,下面一篇文章,我会介绍一下hive的安装以及hive表的一些概念以及hive中数据的类型~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章