[Hive]-Table
1.
2.表
2.1 常用命令
查看描述信息 # desc formatted xxx
建立表
CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name -- (Note: TEMPORARY available in Hive
0.14
.
0
and later)
[(col_name data_type [COMMENT col_comment], ... [constraint_specification])]
[COMMENT table_comment] --表描述
[PARTITIONED BY (col_name data_type [COMMENT col_comment],...)] --表分区设置
[CLUSTERED BY (col_name, col_name, ...) [SORTED BY (col_name [ASC|DESC], ...)] INTO num_buckets BUCKETS]
[SKEWED BY (col_name, col_name, ..) -- (Note: Available in Hive
0.10
.
0
and later)]
ON ((col_value, col_value, ...), (col_value, col_value, ...), ...)
[STORED AS DIRECTORIES]
[
[ROW FORMAT row_format]
[STORED AS file_format]
| STORED BY
'storage.handler.class.name'
[WITH SERDEPROPERTIES (...)] -- (Note: Available in Hive
0.6
.
0
and later)
]
[LOCATION hdfs_path] --数据文件存于HDFS上的位置,如果不指定,默认存放于/user/hive/warehouse/数据库名.db/表名下
[TBLPROPERTIES (property_name=property_value, ...)] -- (Note: Available in Hive
0.6
.
0
and later)
[AS select_statement]; -- (Note: Available in Hive
0.5
.
0
and later; not supported
for
external tables)
data_type
: primitive_type
| array_type
| map_type
| struct_type
| union_type -- (Note: Available in Hive
0.7
.
0
and later)
primitive_type
: TINYINT
| SMALLINT
| INT
| BIGINT
| BOOLEAN
| FLOAT
| DOUBLE
| DOUBLE PRECISION -- (Note: Available in Hive
2.2
.
0
and later)
| STRING
| BINARY -- (Note: Available in Hive
0.8
.
0
and later)
| TIMESTAMP -- (Note: Available in Hive
0.8
.
0
and later)
| DECIMAL -- (Note: Available in Hive
0.11
.
0
and later)
| DECIMAL(precision, scale) -- (Note: Available in Hive
0.13
.
0
and later)
| DATE -- (Note: Available in Hive
0.12
.
0
and later)
| VARCHAR -- (Note: Available in Hive
0.12
.
0
and later)
| CHAR -- (Note: Available in Hive
0.13
.
0
and later)
array_type
: ARRAY < data_type >
map_type
: MAP < primitive_type, data_type >
struct_type
: STRUCT < col_name : data_type [COMMENT col_comment], ...>
union_type
: UNIONTYPE < data_type, data_type, ... > -- (Note: Available in Hive
0.7
.
0
and later)
row_format:
DELIMITED
[LINES TERMINATED BY
char
] --行分割符.默认\n
[FIELDS TERMINATED BY
char
[ESCAPED BY
char
]] --列分割符
[COLLECTION ITEMS TERMINATED BY
char
] -集合对象切割符
[MAP KEYS TERMINATED BY
char
] --Map对象切割符
[NULL DEFINED AS
char
] --空值填充字符
| SERDE serde_name [WITH SERDEPROPERTIES (property_name=property_value, property_name=property_value,...)]
file_format:
: SEQUENCEFILE
| TEXTFILE -- (Default, depending on hive.
default
.fileformat configuration)
| RCFILE -- (Note: Available in Hive
0.6
.
0
and later)
| ORC -- (Note: Available in Hive
0.11
.
0
and later)
| PARQUET -- (Note: Available in Hive
0.13
.
0
and later)
| AVRO -- (Note: Available in Hive
0.14
.
0
and later)
| INPUTFORMAT input_format_classname OUTPUTFORMAT output_format_classname
constraint_specification:
: [, PRIMARY KEY (col_name, ...) DISABLE NOVALIDATE ]
[, CONSTRAINT constraint_name FOREIGN KEY (col_name, ...) REFERENCES table_name(col_name, ...) DISABLE NOVALIDATE
本地数据导入
# LOAD DATA [LOCAL] INPATH '本地路径' [OVERWRITE] INTO TABLE 目标表
[LOCAL]有代表从本地文件系统上导入(拷贝),否则代表从HDFS导入(是移动,源文件会被删掉,切记切记)
[OVERWRITE]有代表数据全覆盖,否则代表数据追加
# insert into table 表明 [分区设置]
select 字段... from 目标表 ;
语法要求目标表必须存在,
# create table xxx as select .....
直接将select查询结果创建为表
语法要求:
目标表必须不存在
目标表不能是分区表,外部表或者list bucketing表
2.2 外部表&内部表
内部表(MANAGED_TABLE)
内部表同时管理MetaData和SourceData.删除后,将同时删除MetaData和SourceData
外部表(EXTERNAL)
外部表只管理MetaData.删除后,只删除MetaData.不会影响到SourceData
以数据导入方式后,数据文件文件默认存放于/user/hive/warehouse/数据库名.db/表名下(表自身文件夹)
直接于HDFS放入文件,内外部表都可以正确读取直接放入的文件数据.只是如果是内部表,删除会将自行放入的文件数据也一起删除(删除的是表文件夹)
2.3 分区表
2.3.1 简述
分区在HDFS中体现为表的子文件夹.
分区的最大优势在于降低IO,因为以分区字段筛选数据时,可以直接跳过读取和计算整个分区下的数据.特别是大数据情况下,良好的分区可以显著的提供计算性能
2.3.2 分区表建立
create table order_partition.....常规建表
partitioned by (分区字段,分区字段类型........)
语法要求:分区字段不得与任何非分区字段同名
2.3.3 静态分区
静态分区是手动指定分区,将数据直接放入目标分区.
LOAD DATA LOCAL INPATH '/home/hadoop/data/order.txt'
OVERWRITE INTO TABLE order_partition
PARTITION(event_month='2014-05');
2.3.4 动态分区
LOAD DATA LOCAL INPATH '/home/hadoop/data/order.txt'
OVERWRITE INTO TABLE order_partition
PARTITION(event_month='2014-05');
转载于:https://www.cnblogs.com/NightPxy/p/9131314.html
[Hive]-Table相关推荐
- Presto Cannot write to non-managed Hive table
使用Presto向Hive表插数据时遇到这个错,我还是头回碰见. Cannot write to non-managed Hive table 网上搜了一下也没发现类似的错,不过让我注意到了non-m ...
- [Hive基础]-- Hive table 的压缩方式和存储格式
目录 一.了解 Hadoop 的压缩方式 1.Hadoop 的压缩方式的基本信息 2.Hadoop 压缩方式优缺点对比 二. Hive table的存储格式 1.TEXTFILE 2.Parquet ...
- SparkSQL操作Hive Table
Spark SQL支持对Hive的读写操作.然而因为Hive有很多依赖包,所以这些依赖包没有包含在默认的Spark包里面.如果Hive依赖的包能在classpath找到,Spark将会自动加载它们.需 ...
- Hive Table 操作命令汇总
1. 数据类型 1.1 数字类 类型 长度 备注 TINYINT 1字节 有符号整型 SMALLINT 2字节 有符号整型 INT 4字节 有符号整型 BIGINT 8字节 有符号整型 FLOAT 4 ...
- 理解Hive表(Hive Table)
Hive表逻辑上有表的数据和相关的元数据组成.元数据描述表的结构,索引等信息.数据通常存放在HDFS中,虽然任意的Hadoop文件系统都能支持,例如Amazon的S3或者而本地文件系统.元数据则存在关 ...
- hive常用参数配置设置
hive.exec.mode.local.auto 决定 Hive 是否应该自动地根据输入文件大小,在本地运行(在GateWay运行) true hive.exec.mode.local.auto ...
- hive增量表和全量表_基于 Flink + Hive 构建流批一体准实时数仓
基于 Hive 的离线数仓往往是企业大数据生产系统中不可缺少的一环.Hive 数仓有很高的成熟度和稳定性,但由于它是离线的,延时很大.在一些对延时要求比较高的场景,需要另外搭建基于 Flink 的实时 ...
- hive 配置参数说明
hive.exec.mode.local.auto 决定 Hive 是否应该自动地根据输入文件大小,在本地运行(在GateWay运行) truehive.exec.mode.local.auto.in ...
- sqoop导入-hive
导入关系表到HIVE 第一步:拷贝jar包 将我们mysql表当中的数据直接导入到hive表中的话,我们需要将hive的一个叫做hiveexec-3.1.1.jar 的jar包拷贝到sqoop的lib ...
- hive的新分区和旧分区的概念问题
hive中的一个表格中的内容可以存储在不同分区(可以理解为分片). [1]中描述的是,试图给表格新增一个字段,结果只给新分区进行了新增字段操作,老分区并没有影响, 需要使用如下的cascade写法 a ...
最新文章
- ubuntu环境ceph配置入门(一)
- MySQL数据库初识(基础语句)
- Common Attention Points
- Error: Could not find or load main class CLASS的解决方法
- python如何让图片镜像翻转_98后常春藤学霸林之秋,一作拿下CVPR最佳论文提名,首次挑战图片翻转不变性假设...
- html5支持udp协议吗,HTML5的TCP和UDP Web Socket API草案定稿
- Android隐藏输入法键盘(hideSoftInputFromInputMethod没有效果)(转)
- android ringtonemanager raw,ringtone播放自定义的声音
- WordPress火箭缓存插件WP Rocket v3.8.8 汉化版
- window 快捷键
- html 文本域 nanme,第3章 JaaScript.ppt
- Lucene和Solr原理初探
- 冒泡排序时间复杂度计算和优化
- 如何把PDF锁定,限制修改文档内容?
- Trend Micro 趋势科技
- Jenkins自动构建部署项目
- vue2.0中的路由传值
- make: *** [Makefile:44:obj/start.o] 错误 127
- Unity3D学习日记6
- Win10忘记登录密码,系统U盘/光盘轻松重置
热门文章
- Linux ubuntu基本知识
- 变换型设计与事务型设计
- 复习-java运行的整个流程
- java alert 乱码_在servlet中输出JS中文乱码,servlet中alert对话框出现中文乱码的解决方法...
- 基于Java的在线购书系统
- algorithm:next_permutation
- Oracle 数据类型,表空间、用户与权限,DDL、DML 语句、约束,exp/imp
- python登录界面代码_超酷 Python 程序包 ,一行代码实现 GUI 界面
- 阶段3 2.Spring_08.面向切面编程 AOP_10 总结和作业安排
- 聊聊、Integer 封装特性