Hive笔记-2

第 3 章 DDL (Data Definition Language) 数据定义

  • DDL数据定义语言

  • DML数据操作语言

3.1 数据库 (database)

3.1.1 创建数据库

1) 语法
CREATE DATABASE [IF NOT EXISTS] database_name
[COMMENT database_comment]
[LOCATION hdfs_path]
[WITH DBPROPERTIES (property_name=property_value, ...)];

2) 案例
  1. 默认路径

  1. 创建数据库指定路径

3.创建数据库,带有dbproperties

测试dbproperties

创建dbproperties

3.1.2 查询数据库

1) 展示所有数据库
(1) 语法

查看数据库:

Show Databases;

Like 就是模糊匹配的作用

Like后面可以写一个通配的表达式

查看数据库信息:

案例:

3.1.3 修改数据库

1) 语法
--修改dbproperties
ALTER DATABASE database_name SET DBPROPERTIES (property_name=property_value, ...);
​
--修改location
ALTER DATABASE database_name SET LOCATION hdfs_path;
​
--修改owner user
ALTER DATABASE database_name SET OWNER USER user_name;
2) 案例
(1) 修改 dbproperties (!!!------重要------!!!)

查看修改的信息有没有生效:

3.1.4 删除数据库

1) 语法

3.1.5 切换当前数据库

1) 语法

3.2 表(table)

3.2.1 创建表

3.2.1.1 语法
1) 普通建表
(1) 完整语法
CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name   
[(col_name data_type [COMMENT col_comment], ...)]
[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]
[ROW FORMAT row_format] 
[STORED AS file_format]
[LOCATION hdfs_path]
[TBLPROPERTIES (property_name=property_value, ...)]

经典咏柳传 建表

TEMPORARY 临时表

EXTERNAL 内部表

data_type 数据类型

Hive读写文件的操作流程:

Deserializer 反序列化集合

Serializer 序列化集合

(2) 关键字说明:
  • 1.TEMPORARY(临时表)

临时表,该表只在当前会话可见,会话结束,表会被删除。

  • 2.EXTERNAL (重点)

外部表,与之相对应的是内部表(管理表)。管理表意味着Hive会完全接管该表,包括元数据和HDFS中的数据。而外部表则意味着Hive只接管元数据,而不完全接管HDFS中的数据。

  • 3.data_type (重点)

Hive 中的字段类型可分为基本数据类型和复杂数据类型。

基本数据类型如下:

其中decimal为十进制精准数字类型

decimal接收两个参数decimal(16,2)

第1个参数是 十进制数,

第2个参数是 小数点的位数

使用string类型无需指定长度

复杂数据类型如下:

注: 类型转换

Hive 的基本数据类型可以做类型转换,转换的方式包括隐式转换以及显示转换。

方式一: 隐式转换(自动转换)

具体规则如下:

a.任何整数类型都可以隐式地转换为一个范围更广的类型,如tinyint可以转换为int,int可以转换为bigint。

b.所有整数类型、float和string类型都可以隐式地转换成double。

c.tinyint、smallint、int都可以转换为float。

d.boolean类型不可以转换为任何其他的类型。

详情可参考Hive官方说明:Allowed Implicit Conversions

为什么string类型加int类型会变成double类型

因为根据官方表,两个类型都能转的类型是double类型,所以是double类型

方式二: 显示转换(强制转换)

可以借助cast函数完成显示的类型转换

a.语法

cast (expr as <type>)

expr是要转的数据, <type>是要转的类型

b.案例

hive (default)> select '1' + 2, cast('1' as int) + 2;
​
_c0    _c1
3.0     3
  • 4.PARTITIONED BY (重点)

创建分区表

  • 5.CLUSTERED BY ...SORTED BY...INTO...BUCKETS (重点)

创建分桶表

  • 6.ROW FORMAT (重点)

指定SERDE,SERDE是Serializer and Deserializer的简写。Hive使用SERDE序列化和反序列化每行数据。详情可参考 Hive-Serde。语法说明如下:

语法一:DELIMITED关键字表示对文件中的每个字段按照特定分割符进行分割,其会使用默认的SERDE对每行数据进行序列化和反序列化。

ROW FORAMT DELIMITED 
[FIELDS TERMINATED BY char] 
[COLLECTION ITEMS TERMINATED BY char] 
[MAP KEYS TERMINATED BY char] 
[LINES TERMINATED BY char] 
[NULL DEFINED AS char]

注:

Ø *fields terminated by* :列分隔符

Ø *collection items terminated by* : map、struct和array中每个元素之间的分隔符

Ø *map keys terminated by* :map中的key与value的分隔符

Ø *lines terminated by* :行分隔符

语法二:SERDE关键字可用于指定其他内置的SERDE或者用户自定义的SERDE。例如JSON SERDE,可用于处理JSON字符串。

ROW FORMAT SERDE serde_name [WITH SERDEPROPERTIES (property_name=property_value,property_name=property_value, ...)] 
  • 7. STORED AS (重点)

指定文件格式,常用的文件格式有,textfile(默认值),sequence file,orc file、parquet file等等。

  • 8. LOCATION

指定表所对应的HDFS路径,若不指定路径,其默认值为

${hive.metastore.warehouse.dir}/db_name.db/table_name

  • 9. TBLPROPERTILES

用于配置表的一些KV键值对参数

2) Create Table As Select (CTAS) 建表

该语法允许用户利用select查询语句返回的结果,直接建表,表的结构和查询语句的结构保持一致,且保证包含select查询语句放回的内容。

CREATE [TEMPORARY] TABLE [IF NOT EXISTS] table_name 
[COMMENT table_comment] 
[ROW FORMAT row_format] 
[STORED AS file_format] 
[LOCATION hdfs_path]
[TBLPROPERTIES (property_name=property_value, ...)]
[AS select_statement]

相当于复制表结构和表数据

3) Create Table Like 语法

该语法允许用户复刻一张已经存在的表结构,与上述的CTAS语法不同,该语法创建出来的表中不包含数据。

CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name
[LIKE exist_table_name]
[ROW FORMAT row_format] 
[STORED AS file_format] 
[LOCATION hdfs_path]
[TBLPROPERTIES (property_name=property_value, ...)]

只复制了表结构,没有表数据,打开这张表是个空表

三种建表方式 :

普通建表(insert) Create Table As Select(CTAS)(复制数据) Create Table Like(不复制数据)

案例1(创建内外部表):

comment 注释(注解).

  • if not exists student 是一个条件字句,表示如果student表不存在就创建student表。若存在则不创建。

  • row format delimited fields terminated by '\t':这个子句指定了表的数据存储格式。在这种情况下,它告诉Hive表的字段是由制表符(\t)分隔的。

  • location '/user/hive/warehouse/student':这个子句指定了Hive在HDFS上存储表数据的位置。在这个例子中,数据将被存储在HDFS的/user/hive/warehouse/student目录下。

自己在Datagrip运行:

Linux上student文件里的数据:

运行结果:

外部表通常可用于处理其他工具上传的数据文件,对于外部表,Hive只负责管理元数据,不负责管理HDFS中的数据文件。

案例2(SERDE和复杂数据类型):

三大复杂数据类型: array map struct

运行结果:

实操演示:

给他挂到HDFS上:

在Datagrip上运行:

创建成功:

可以select拿到自己想要拿到的数据:

案例3(create table as select 和 create table like):

create table as select

案例实操:

create table like

案例实操:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/28863.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

leetcode153. 寻找旋转排序数组中的最小值

leetcode153. 寻找旋转排序数组中的最小值 使用二分法。中间值如果小于等于最右边的值&#xff0c;去左边部分找&#xff1b;中间值如果大于最右边的值&#xff0c;去右半部分找。 def rotate_array_min(nums):n len(nums)low 0high n - 1while low < high:mid low (h…

Git 代码管理规范 !

分支命名 master 分支 master 为主分支&#xff0c;也是用于部署生产环境的分支&#xff0c;需要确保master分支稳定性。master 分支一般由 release 以及 hotfix 分支合并&#xff0c;任何时间都不能直接修改代码。 develop 分支 develop 为开发环境分支&#xff0c;始终保持最…

在微信公众号上怎么添加预定房间功能

在这个快节奏的现代社会&#xff0c;人们对于便捷与高效的需求日益增加。特别是在旅行或出差时&#xff0c;能够快速、方便地预订一间舒适的房间&#xff0c;无疑是每个人心中的小确幸。今天&#xff0c;我们为您带来了一项革命性的服务——微信公众号上的房间预定功能&#xf…

力扣 50.pow(x,n)

class Solution { public: double quickMul(double x,long long N){ if(N0) return 1; double valuequickMul(x,N/2); return N%20?value*value:value*value*x; } double myPow(double x, int n) { long long Nn; return N>0?quickMul(x, N):1.0/quickMul(x, N); } };

Serverless如何赋能餐饮行业数字化?乐凯撒思变之道

导语 | 在数字化浪潮席卷全球的今天&#xff0c;每一个行业都在经历着前所未有的变革。餐饮行业作为人们日常生活中不可或缺的一部分&#xff0c;更是面临着巨大的转型压力。如何完成数字化转型&#xff0c;打破传统经营模式的限制&#xff0c;成为摆在众多餐饮商家面前的一道难…

[二分枚举]特殊密码锁

描述 有一种特殊的二进制密码锁&#xff0c;由n个相连的按钮组成&#xff08;n<30&#xff09;&#xff0c;按钮有凹/凸两种状态&#xff0c;用手按按钮会改变其状态。 然而让人头疼的是&#xff0c;当你按一个按钮时&#xff0c;跟它相邻的两个按钮状态也会反转。当然&am…

Windows 10永久关闭“系统准备工具 3.14“禁止开机自启

文章目录 一、问题描述二、解决方法总结 一、问题描述 每次开机都会显示如下图所示的 系统准备工具 3.14 二、解决方法 按win R键打开运行窗口 → 输入cmd → 点击 确定 如图所示输入下面如图所示代码 → 按 回车 → 输入 Y → 按 回车 XCOPY C:\windows\System32\svchost.e…

Apache ShardingSphere实战与核心源码剖析

Apache ShardingSphere实战与核心源码剖析 1.数据库架构演变与分库分表介绍 1.1 海量数据存储问题及解决方案 如今随着互联网的发展,数据的量级也是成指数的增长,从GB到TB到PB。对数据的各种操作也是愈加的困难,传统的关系性数据库已经无法满足快速查询与插入数据的需求。…

外观缺陷检测原理

产品外观是影响产品质量最重要的因素之一&#xff0c;其平整度、有无瑕疵等不仅影响到产品美观&#xff0c;甚至能够直接影响产品本身的使用和后续加工&#xff0c;给企业带来重大经济损失。 随着人工智能技术的快速发展&#xff0c;机器视觉与AI技术的结合应用加速渗透进工业…

CSS外部样式

CSS的外部样式表是网页设计中一个非常强大的工具&#xff0c;它允许我们集中管理多个页面的样式&#xff0c;从而提高开发效率和维护性。本文将介绍如何使用CSS外部样式表&#xff0c;以及如何进行优化命名&#xff0c;以保持代码的清晰和可维护性。 什么是CSS外部样式&#x…

AutoMQ 社区双周精选第十一期(2024.05.27~2024.06.12)

本期概要 欢迎来到 AutoMQ 第十一期双周精选&#xff01;在过去两周里&#xff0c;主干动态方面&#xff0c;AutoMQ 跟进了 Apache Kafka 3.4.x BUG 修复&#xff0c;并进行了CPU & GC 性能优化。另外&#xff0c;AutoBalancing 的 Reporter 和 Retriever 也开始支持指定 …

数据可视化实验二:回归分析、判别分析与聚类分析

目录 一、使用回归分析方法分析某病毒是否与温度呈线性关系 1.1 代码实现 1.2 线性回归结果 1.3 相关系数验证 二、使用判别分析方法预测某病毒在一定的温度下是否可以存活&#xff0c;分别使用三种判别方法&#xff0c;包括Fish判别、贝叶斯判别、LDA 2.1 数据集展示&am…

燃气经营企业从业人员题库

1.下列关于门站、储配站内消防设施的工艺设计的说法&#xff0c;那个是错误的&#xff08; &#xff09; A.储配站在同一时间内的火灾次数按一次考虑。 B.储配站内的消防给水管网应采用环形管网&#xff0c;其给水干管不少于两条。 C.站内室外消防栓宜采用地上消防栓。 D.门…

docker 搭建 最新版本的 gitlab,使用HTTPS访问,以及gitlab的基础使用讲解

文章目录 一、环境准备1.1 docker 安装 二、gitlab 搭建2.1 环境准备2.2 启动gitlab容器2.3 验证 GitLab 启动2.4 备份和恢复2.5 升级 GitLab 三、已搭建的gitlab升级为HTTPS访问3.1 准备 SSL 证书3.2 创建目录3.3 复制证书3.4 修改 GitLab 配置3.5 重新配置并重启 GitLab3.6 重…

【大语言模型】本地快速部署Ollama运行大语言模型详细流程

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

【C++提高编程-09】----C++ STL之常用排序算法

&#x1f3a9; 欢迎来到技术探索的奇幻世界&#x1f468;‍&#x1f4bb; &#x1f4dc; 个人主页&#xff1a;一伦明悦-CSDN博客 ✍&#x1f3fb; 作者简介&#xff1a; C软件开发、Python机器学习爱好者 &#x1f5e3;️ 互动与支持&#xff1a;&#x1f4ac;评论 &…

苹果在WWDC 2024的AI创新

1. 引言 苹果的年度全球开发者大会&#xff08;WWDC&#xff09;历来是展示其最新技术和创新的平台。2024年的WWDC尤其引人注目&#xff0c;因为苹果将重点关注人工智能&#xff08;AI&#xff09;&#xff0c;推出一系列令人期待的更新和功能。本文将详细探讨这些AI创新&…

电商平台数据的认知与深度理解

随着信息技术的迅猛发展&#xff0c;电商平台已成为现代社会商业活动的重要舞台。在这个舞台上&#xff0c;数据不仅是交易的记录&#xff0c;更是企业决策的依据、用户行为的镜子和市场变化的晴雨表。本文将从多个维度对电商平台数据进行全面且深入的认知和理解。 一、数据的…

从WWDC 2023看苹果的未来:操作系统升级与AI技术的融合

引言 在2024年的WWDC&#xff08;苹果全球开发者大会&#xff09;上&#xff0c;苹果公司展示了一系列创新技术和产品&#xff0c;其中最引人注目的莫过于操作系统的升级与AI技术的深度融合。作为一个备受期待的发布会&#xff0c;WWDC不仅向我们展示了苹果在技术上的前瞻性布…

建议收藏:防止外发文件二次泄密的七个办法

防止外发文件二次泄密是一项重要的信息安全管理任务&#xff0c;特别是在涉及敏感信息、商业秘密或知识产权的文档时。以下是一些有效的策略和措施&#xff0c;用以降低文件外发后的泄密风险。 1. 使用加密软件&#xff08;安企神软件&#xff09; 透明加密&#xff1a;对外发…