Hive-MR引擎

文章目录概述组成部分语法DDLDML函数调优压缩和存储概述组成部分语法DDLDML函数调优压缩和存储
摘要由CSDN通过智能技术生成

概述

  • hive官网
  • 有助于使用SQL读取,写入和管理驻留在分布式存储中的大型数据集(Hadoop的sql 客户端)
  • 可以将结构投影到已经存储的数据上(虚拟表,保存结构化数据)
  • 提供了命令行工具和JDBC驱动程序以将用户连接到Hive(客户端)
  • hive 基于Hadoop的HDFS和Map Reduce。所以继承Hadoop所有特点(非实时查询,不支持修改数据)
  • YouTube 数据练习

组成部分

在这里插入图片描述

元数据

  • Hive选择相应的数据库服务器来存储表,数据库,列的架构或元数据,表格,数据类型和HDFS映射

数据存储 HDFS

  • 数据保存再HDFS上

执行引擎

  • 将Hql编译成MR任务
  • 解释器、编译器、优化器完成HQL查询语句从词法分析、语法分析、编译、优化以及查询计划的生成

客户端

  • 包括webui和JDBC等通用接口

HQL语法

DDL

建库

-- 库名,注释,数据存档地址(默认值/user/hive/warehouse)
CREATE DATABASE IF NOT EXISTS liubin COMMENT '注释' LOCATION '/user/hive/warehouse';
-- 查询数据库列表
SHOW DATABASES LIKE 'liu*';
-- 查询数据库详情
DESC DATABASE EXTENDED liubin;
-- 修改额外信息
ALTER DATABASE liubin SET DBPROPERTIES ('createTime'='2021-01-16');
-- CASCADE 强制删除,可以删除非空的数据库
DROP DATABASE liubin CASCADE;

数据结构

hive Java
整形 INT int
整形 BIGINT long
整形 STRING String
日期 TIMESTAMP
集合(支持嵌套) STRUCT(存储对象) struct<id:int,name:string>使用:struct.属性
集合(支持嵌套) MAP(键值对) map<int,string>使用:map['key']
集合(支持嵌套) ARRAY(数组) array<string>使用:array[下标]

建表

-- 显示建表语句
SHOW CREATE TABLE test;
-- 内外部表转换
-- 内部表,管理表:删除表时会删除数据(HDFS)
-- 外部表:删除表时不会删除数据(HDFS)
ALTER TABLE liubin.test SET TBLPROPERTIES ('EXTERNAL' = 'TRUE');
  • 建表语句
-- TEMPORARY:临时表; EXTERNAL:外部表;IF NOT EXISTS:是否存在
CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name
  [(col_name data_type [column_constraint_specification] [COMMENT col_comment], ... [constraint_specification])]
  [COMMENT table_comment]
  -- 分区字段
  [PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)]
  -- 分桶字段 into 多少个桶
  [CLUSTERED BY (col_name, col_name, ...) [SORTED BY (col_name [ASC|DESC], ...)] INTO num_buckets BUCKETS]
  [SKEWED BY (col_name, col_name, ...)
     ON ((col_value, col_value, ...), (col_value, col_value, ...), ...)
     [STORED AS DIRECTORIES]
  [
   -- 行解析
   [ROW FORMAT row_format] 
   -- 存储形式textFile,SequenceFiles,orc,parquet
   [STORED AS file_format]
     | STORED BY 'storage.handler.class.name' [WITH SERDEPROPERTIES (...)]
  ]
  -- 数据存放地址
  [LOCATION hdfs_path]
   -- 附加属性
  [TBLPROPERTIES (property_name=property_value, ...)]   
  [AS select_statement];
   
-- 和existing_table_or_view_name原表结构一样,没有数据
CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name
  LIKE existing_table_or_view_name
  [LOCATION hdfs_path];
  
-- 和existing_table_or_view_name原表结构一样,有数据
CREATE TABLE table_name AS  SELECT * FROM existing_table_or_view_name;
  • 具体属性设置
-- 数据结构
data_type
  : primitive_type
  | array_type
  
  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值