当前位置:   article > 正文

Hive 总结之数据类型归纳_hive存的是什么数据

hive存的是什么数据

Hive 总结之数据类型归纳

1. 背景

  1. Hive的本质是一个转换工具,将类sql语句(HQL)转换为mapreduce程序或者类mapreduce程序(hadoop的mapreduce或者spark)。
  2. Hive可以处理结构化数据并转换为一张表来提供对外的数据查询和分析。但本身不能存储数据。
  3. Hive的表的元数据(schema等信息)存储在数据库中,一般配置为使用mysql存储,不设置就是默认的derby数据库存储。数据信息则存储在hdfs中。
  4. 既然涉及到类SQL(HQL),则必定语法上主体和SQL规范很接近,同样会有数据类型。
  5. 本文就是关于数据类型的文章

2. 基本数据类型

会将Hive数据类型和Java数据类型进行对比,数据长度 和示例。

  1. TINYINT:1byte有符号整数如20,可以类比java的byte类型
  2. SMALINT:2byte有符号整数如20,可以类比java的short类型
  3. INT:4byte有符号整数如20,可以类比java的int的类型。
    注意,不管在哪种编程语言(sql也是一种编程语言),int和double都是主要的数据类型,当然特殊场景下会有变化。
  4. BIGINT:8byte有符号整数如10000,可以类比java的long类型
  5. BOOLEAN:布尔类型,true或者false如TRUE、 FALSE,可以类比Java的boolean类型。
  6. FLOAT:单精度浮点数如3.14159,可以类比java的 float类型。
    注意,在阿里巴巴的java开发规范中,一般禁止使用float和double,因为读写时都会有精度损失,一般使用decimal代替,不过这是HQL,如果可以的话,使用string存储浮点数也是一种解决办法。
  7. DOUBLE:双精度浮点数如3.14159,可以类比java 的double类型。注意点同上
  8. STRING:字符系列。可以指定字符集。可以使用单引号或者双引号。如‘now is the time’ 、“for all good men”,可以类比java的string类型。也可以类比sql的varchar可变字符串类型。
  9. TIMESTAMP:时间类型
  10. BINARY:字节数组

在HQL中,一般常用的是时间、int、string类型,其他基本类型了解即可。因为HQL主要用于处理海量数据情形,很多时候都是处理结构化文本数据,这时候字符串类型较多。

3. 集合数据类型

3.1 集合类型概述

  1. STRUCT(结构体)对象,和c语言以及swift语言中的struct类似,都可以通过“点”符号访问元素内容。
  • 例如,如果某个列的数据类型是STRUCT{first STRING, last STRING},那么第1个元素可以通过字段.first来引用。
  • 示例如 struct()
  1. MAP 映射,MAP是一组键-值对元组集合,使用数组表示法可以访问数据。
  • 例如,如果某个列的数据类型是MAP,其中键->值对是’first’->’John’和’last’->’Doe’,那么可以通过字段名[‘last’]获取最后一个元素
  • 示例如map()
  1. ARRAY 数组,数组是一组具有相同类型和名称的变量
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/597255
推荐阅读
相关标签
  

闽ICP备14008679号