当前位置: 首页>数据库>正文

hive表怎么declare hive表怎么读

Hive是什么?


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

Hive 是 SQL 解析引擎,它将 SQL 语句转译成 M/RJob 然后在 Hadoop 执行。



Hive 的表其实就是 HDFS 的目录,按表名把文件夹分开。如果是分区表,则分区值是子文件夹,可以直接在 M/RJob 里使用这些数据。
        HIve的表----------HDFS的目录
        HIve的数据--------HDFS的目录下面的(数据)文件
        Hive中行列--------HDFS的目录下面的数据文件的行列



Hive 相当于 hadoop 的客户端工具,部署时不一定放在集群管理节点中,可以放在某个节点上。

Hive强调的地方: 海量数据的存储、加载,海量数据查询,hive不支持事务。


Hive的数据存储



Hive 的数据存储基于 Hadoop HDFS



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



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



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



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

Hive的体系结构



hive表怎么declare hive表怎么读,hive表怎么declare hive表怎么读_hive,第1张

用户接口主要有三个:CLI,JDBC/ODBC和 WebUI

CLI,即Shell命令行

JDBC/ODBC 是 Hive 的Java,与使用传统数据库JDBC的方式类似

WebGUI是通过浏览器访问 Hive

Hive 将元数据存储在数据库中(metastore),目前只支持 mysql、derby。Hive 中的元数据包括表的名字,表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在目录等

解释器、编译器、优化器完成 HQL 查询语句从词法分析、语法分析、编译、优化以及查询计划(plan)的生成。生成的查询计划存储在 HDFS 中,并在随后由 MapReduce 调用执行

Hive 的数据存储在 HDFS 中,大部分的查询由 MapReduce 完成(包含 * 的查询,比如 select * from table 不会生成 MapRedcue 任务)



Hive的元数据


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

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

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

使用MySQL作为外置存储引擎,多用户同时访问





https://www.xamrdz.com/database/6uz1959966.html

相关文章: