返回顶部
首页 > 资讯 > 精选 >Hive的数据类型有哪些
  • 437
分享到

Hive的数据类型有哪些

2023-06-30 15:06:39 437人浏览 独家记忆
摘要

这篇“Hive数据类型有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Hive数据类型有哪些”文章吧。一、Hive介绍h

这篇“Hive数据类型有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Hive数据类型有哪些”文章吧。

    一、Hive介绍

    hive: 由 Facebook 开源用于解决海量结构化日志的数据统计工具

    Hive 是基于 hadoop 的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类 sql 查询功能。

    Hive的优缺点

    优点:

    • 类似于SQL语句,简单学习易上手

    • 避免了去写 mapReduce,减少开发人员的学习成本

    • Hive 的执行延迟比较高,因此 Hive 常用于数据分析,对实时性要求不高的场合

    • Hive 优势在于处理大数据,对于处理小数据没有优势,因为 Hive 的执行延迟比较高

    • Hive 支持用户自定义函数,用户可以根据自己的需求来实现自己的函数

    缺点:

    • Hive 的 HQL 表达能力有限

    • Hive 的效率比较低

    • Hive本质是一个MR

    Hive架构

    Hive用户接口
    • Hive CLI(Hive Command Line) Hive的命令行

    • HWI(Hive WEB Interface) HiveWeb接口

    • Hive提供了Thrift服务,也就是Hiveserver。

    Hive元数据的三种存储模式
    • 单用户模式 : Hive安装时,默认使用的是Derby数据库存储元数据,这样不能并发调用Hive。

    • 多用户模式 : MySQL服务器存储元数据

    • 远程服务器模式 : 启动MetaStoreServer

    Hive数据存储

    Hive数据可区分为表数据元数据,表数据我们都知道是表中的数据,而元数据是用来存储表的名字表分区以及属性

    Hive是基于Hadoop分布式文件存储的,它的数据存储在hdfs中。现在我们介绍Hive中常见的数据导入方式

    • 本地文件系统中导入数据到Hive

    • 从HDFS上导入数据到Hive表

    • 从其他表中查询出相应的数据并导入Hive表中

    • 在创建表的时候通过从其他表中查询出相应的记录并插入到所创建的表中

    #1.演示从本地装载数据到hive#1.1创建表create table student(id string, name string) row fORMat delimited fields terminated by '\t';#1.2加载本地的文件到hive load data local inpath '/root/student.txt' into table default.student; #default.test 数据库.表名 也可直接表名#2.演示加载HDFS文件到hive中#2.1 将文件上传到HDFS根目录dfs -put /root/student.txt /;#2.2加载HDFS上的数据load data inpath '/student.txt' into table test.student;#3.加载数据覆盖表中原有的数据#3.1上传文件到HDFS中dfs -put /root/student.txt /;  #将文件装载到表下 文件就相当于windows中的剪切操作#3.2加载数据覆盖表中原有数据load data inpath '/student.txt' overwrite into table test.student;#4.查询表select * from student;
    #通过查询语句向表中插入数据(insert)#1.1创建表create table student_par(id int,name String)row format delimited fields terminated by '\t';#1.2通过insert插入数据insert into table student_par values(1,'zhangsan'),(2,'lisi');
    架构原理

    用户接口

    CLI(command-line interface)、JDBC/ODBC(jdbc 访问 hive)、WEBUI(浏览器访问 hive)

    元数据

    元数据包括:表名、表所属的数据库(默认是 default)、表的拥有者、列/分区字段、表的类型(是否是外部表)、表的数据所在目录等

    Hadoop

    使用 HDFS 进行存储,使用 MapReduce 进行计算。

    驱动器:Driver

    (1)解析器(SQL Parser):将 SQL 字符串转换成抽象语法树 AST,这一步一般都用第三方工具库完成,比如 antlr;对 AST 进行语法分析,比如表是否存在、字段是否存在、SQL语义是否有误。
    (2)编译器(Physical Plan):将 AST 编译生成逻辑执行计划。
    (3)优化器(Query Optimizer):对逻辑执行计划进行优化。
    (4)执行器(Execution):把逻辑执行计划转换成可以运行的物理计划。对于 Hive 来说,就是 MR/spark

    Hive的数据类型有哪些

    Hive文件格式
    • TextFile

    这是默认的文件格式。数据不会压缩处理,磁盘开销大,数据解析开销也大。
    SequenceFile
    这是Hadooapi提供的一种二进制文件支持,以二进制的形式序列化到文件中。

    • RCFile

    这种格式是行列存储结构的存储方式。

    • ORC

    Optimized Row Columnar ORC文件格式是一种Hadoop生态圈中的列式存储格式。

    ORC的优势:

    • 列示存储,有多种文件压缩方式

    • 文件是可分割的。

    • 提供了多种索引

    • 可以支持复杂的数据结构 比如Map

    ORC文件格式是以二进制方式存储的,所以是不可直接读取的。

    Hive本质

    将HQL转换成MapReduce程序。

    • Hive处理的数据存储在HDFS上

    • Hive分析数据底层的实现是MapReduce

    • 执行程序运行在Yarn上

    Hive工作原理

    简单来说Hive就是一个查询引擎。当Hive接受到一条SQL语句会执行如下操作:

    • 词法分析和语法分析。使用antlr将SQL语句解析成抽象语法树

    • 语义分析。从MetaStore中获取元数据信息,解释SQL语句中的表名、列名、数据类型

    • 逻辑计划生成。生成逻辑计划得到算子树

    • 逻辑计划优化。对算子树进行优化

    • 物理计划生成。将逻辑计划生成出的MapReduce任务组成的DAG的物理计划

    • 物理计划执行。将DAG发送到Hadoop集群进行执行

    • 将查询结果返回。

    Hive展现的MapReduce任务设计到组件有:

    • 元存储 : 该组件存储了Hive中表的信息,其中包括了表、表的分区、模式、列及其类型、表映射关系等

    • 驱动 : 控制HiveQL生命周期的组件

    • 查询编辑器

    • 执行引擎

    • Hive服务器

    • 客户端组件 提供命令行接口Hive CLI、Web UI、JDBC驱动等

    Hive数据类型

    Hive支持两种数据类型,一种原子数据类型、还有一种叫复杂数据类型。

     基本数据类型 
    类型描述示例
    TINYINT1字节有符合整数1
    SMALLINT2字节有符号整数1
    INT4字节有符号整数1
    BIGINT8字节有符号整数1
    FLOAT4字节单精度浮点数1.0
    DOUBLE8字节双精度浮点数1.0
    BOOLEANtrue/falsetrue
    STRING字符串“hive”,‘hive’

    Hive类型中的String数据类型类似于Mysql中的VARCHAR。该类型是一个可变的字符串。

    Hive支持数据类型转换,Hive是用Java编写的,所以数据类型转换规则遵循Java :

    隐式转换 --> 小转大

    强制转换 --> 大传小

    类型描述示例
    ARRAY有序的字段。字符类型必须相同ARRAY(1,2)
    MAP无序的键值对。建的类型必须是原子的,值可以是任何类型。Map(‘a’,1,‘b’,2)
    STRUCT一组命名的字段。字段类型可以不同STRUCT(‘a’,1,1,0)

    以上就是关于“Hive数据类型有哪些”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网精选频道。

    --结束END--

    本文标题: Hive的数据类型有哪些

    本文链接: https://lsjlt.com/news/329731.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    猜你喜欢
    • Hive的数据类型有哪些
      这篇“Hive数据类型有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Hive数据类型有哪些”文章吧。一、Hive介绍h...
      99+
      2023-06-30
    • Hive数据类型有哪些
      这篇文章将为大家详细讲解有关Hive数据类型有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。hive 目前支持的数据类型如下:-- 数值类型 Numeric TypesTINYINT (1-byte ...
      99+
      2023-06-03
    • HIVE有哪些数据类型
      本篇内容主要讲解“HIVE有哪些数据类型”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“HIVE有哪些数据类型”吧!1. 数值型类型后缀例子TINYINTY100YSMALLINTS100SBIG...
      99+
      2023-06-03
    • Hive中支持哪些类型的数据存储格式
      Hive中支持的数据存储格式包括: 文本文件格式(TextFile):将数据存储为文本文件格式,每行表示一条记录,字段间使用分隔...
      99+
      2024-03-11
      Hive
    • redis的数据类型有哪些
      这篇文章给大家分享的是有关redis的数据类型有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1、redis的5种数据类型: string 字符串(可以为整形、浮点型和字符串...
      99+
      2024-04-02
    • Mysql的数据类型有哪些
      这篇文章主要讲解了“Mysql的数据类型有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Mysql的数据类型有哪些”吧! Varchar 对每个英文(...
      99+
      2024-04-02
    • ECMAScript的数据类型有哪些
      这篇文章的内容主要围绕ECMAScript的数据类型有哪些进行讲述,文章内容清晰易懂,条理清晰,非常适合新手学习,值得大家去阅读。感兴趣的朋友可以跟随小编一起阅读吧。希望大家通过这篇文章有所收获!ECMAS...
      99+
      2024-04-02
    • java的数据类型有哪些
      java中的数据类型有:1.整数类型;2.浮点数类型;3.字符类型;4.布尔类型;java中的数据类型有以下几种整数类型java中整数类型是指是指整数,其中包括正数和负数,是没有小数部分或小数点的数字,可以是十进制、八进制或十六进制,jav...
      99+
      2024-04-02
    • javascript的数据类型有哪些
      javascript中的数据类型有:1.number,数字类型;2.string,字符串类型;3.boolean,布尔类型,4.null,空类型;5.undefined,未定义类型;6.object,对象;7.array,数组;8.func...
      99+
      2024-04-02
    • php的数据类型有哪些
      php中的数据类型可以分为标量类型、复合类型和特殊类型三种一、标量类型字符串型php中字符串型可以保存任何字母和数字,也包括偶数,在使用双引号或单引号编写字符串时,其打印变量时将以不同的方式进行处理。整型php中整型是指整数,其中包括正数和...
      99+
      2024-04-02
    • Python的数据类型有哪些
      今天就跟大家聊聊有关Python的数据类型有哪些,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。一、整数python2中整形可以分为一般整形和长整形,但是在python3中,两者以及合...
      99+
      2023-06-15
    • C++的数据类型有哪些
      这篇文章主要介绍C++的数据类型有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!数据类型C++规定在创建一个变量或者常量时,必须要指定相应的数据类型,否则无法给变量分配内存空间。01 整型:数据类型占用空间取值范...
      99+
      2023-06-25
    • es6的数据类型有哪些
      本文小编为大家详细介绍“es6的数据类型有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“es6的数据类型有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。es6数据类型有七种,分别是:1、Boolean是...
      99+
      2023-06-29
    • 大数据的类型有哪些
      这篇文章给大家分享的是有关大数据的类型有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。可以根据数据类型描述大数据,分为文本大数据、音频大数据、视频大数据等;也可以根据行业或应用领域描述大数据,分为公共安全大数...
      99+
      2023-06-29
    • C#的数据类型有哪些
      C#是一种由微软公司开发的面向对象的编程语言,广泛应用于Windows桌面应用程序、Web应用程序、游戏开发、移动应用程序等领域。C#提供了多种数据类型,以满足不同类型的开发需求。以下是一些常用的C#数据类型:1、值类型:值类型是一种简单类...
      99+
      2023-10-22
      C#数据类型
    • clickhouse的数据类型有哪些
      在ClickHouse中,数据类型主要分为以下几类: 数值型数据类型: Int8, Int16, Int32, Int64:有...
      99+
      2024-03-01
      clickhouse
    • prometheus的数据类型有哪些
      在Prometheus中,主要有以下几种数据类型: Counter(计数器):用于累积数据,只能增加,不能减少。 Gauge(测量...
      99+
      2024-03-15
      prometheus
    • DynamoDB的数据类型有哪些
      DynamoDB支持以下数据类型: 字符串型(String):包括字符串和文本类型的数据。 数值型(Number):包括整数和浮点...
      99+
      2024-04-02
    • redis数据类型有哪些
      redis数据类型有哪些?相信有很多人都不太了解,今天小编为了让大家更加了解redis数据类型,所以给大家总结了以下内容,一起往下看吧。redis 主要有以下几种数据类型:stringhashlistset...
      99+
      2024-04-02
    • lists数据类型有哪些
      这篇文章将为大家详细讲解有关lists数据类型有哪些,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。  lists数据类型有哪些  Redis的list类型其...
      99+
      2024-04-02
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作