Hive数据定义(1)
hive数据定义是hive的基础知识,所包含的知识点有:数据仓库的创建、数据仓库的查询、数据仓库的修改、数据仓库的删除、表的创建、表的删除、内部表、外部表、分区表、桶表、表的修改、视图。本篇文章先介绍:数据仓库的创建、数据仓库的查询、数据仓库的修改、数据仓库的删除、表的创建、表的删除,剩下的知识点在下一篇文章介绍。
一、数据仓库的创建
Hive JDBC连接
Hive内置了HiveServer和HiveServer2服务器,两者都允许使用多种编程语言进行连接,但Hive server不能处理多个客户端的并发请求,所以产生了HiveServer2。
HiveServer2拥有自己的CLI,Beeline是一个基于SQLLine的JDBC客户端,由于HiveServer2是Hive开发维护的重点,所以推荐使用Beeline
建库语句
创建数据仓库的语法格式如下:
CREATE DATABASE [IF NOT EXISTS] <database name> LOCATION <dir>;
IF NOT EXISTS是一个可选子句,通知用户如果该数据仓库不存在,则创建;否则报错,有错误信息提示。 所创建的数据仓库在HDFS中默认的存储路径是/user/hive/warehouse/,也可以通过关键字LOCATION指定数据仓库在HDFS中存放的位置。
二、数据库查询语句
显示数据仓库个数: hive(default)>show databases;
过滤显示查询的数据仓库: hive(default)>show databases like 'hive*';
显示数据仓库详细信息,使用命令: hive(default)> desc database extended hivedwh;
三、数据库修改语句
切换数据库 hive(default)>use hivedwh
数据仓库的修改 :使用alter ... set .....关键字,例如:
hive(hivedwh)>alter database hivedwh set dbproperties('createtime'='20221011');
四、数据库删除语句
Drop Database是删除数据仓库中所有表并删除数据仓库的语句。删除数据仓库的语法如下: DROP DATABASE [IF EXISTS] database_name [CASCADE];
如果不知道删除的数据仓库是否存在,则使用IF EXISTS判断数据仓库是否存在。如果数据仓库不为空,其中已经有表存在,可以采用CASCADE关键字强制删除。
五、表的创建
建表语法树

建表语法树解释
① CREATE TABLE,创建一个名字为table_name的表。如果该表已经存在,则抛出异常;可以用IF NOT EXISTS关键字选项来忽略异常。
② 使用EXTERNAL关键字可以创建一个外部表.
③ (col_name data_type, ...),创建表时要确定字段名及其数据类型,数据类型可以是基本数据类型,也可以是复杂数据类型。COMMENT为表和字段添加注释描述信息。
④ PARTITIONED BY,创建分区表。
⑤ CLUSTERED BY,创建桶表。
⑥ SORTED BY,排序。
⑦ ROW FORMAT DELIMITED,用于指定表中数据行和列的分隔符及复杂数据类型数据的分隔符。这些分隔符必须与表数据中的分隔符完全一致。
[Fields Terminated By Char],用于指定字段分隔符。
[Collection Items Terminated By Char],用于指定复杂数据类型Map、Struct和Array的数据分隔符。
[Map Keys Terminated By Char],用于指定Map中的key与value的分隔符。
[Lines Terminated By Char],用于指定行分隔符。
默认分隔符:在vim编辑器中,连续按下Ctrl+v/Ctrl+a即可输入' \001 ' ,显示^A
⑧ STORED AS,指定表文件的存储格式,如TextFile格式、SequenceFile格式、ORC格式和Parquet格式等。如果文件数据是纯文本的,可以使用TextFile格式,这种格式是默认的表文件存储格式。如果数据需要压缩,可以使用SequenceFile格式等。
⑨ LOCATION,用于指定所创建表的数据在HDFS中的存储位置。
六、表的删除
表的删除使用关键字Drop。
当删除一个内部表时,Hive也会删除这个表中的数据,所以内部表不适合和其他工具共享数据。删除外部表并不会删除表数据,只是描述表的元数据信息会被删除。
删除表: hive(hivedwh)>drop table dept_p2;
Truncate仅删除表中数据,保留表的元数据信息。Truncate只能删除内部表中的数据,不能删除外部表中的数据。外部表在删除后,HDFS中的数据还存在,不会被删除。因此要删除外部表数据,可以把外部表转成内部表或者删除HDFS文件。Drop和Truncate可执行的操作总结在下表中。

删除内部表中的数据: hive(hivedwh)>truncate table test;
相关文章:
Hive数据定义(1)
hive数据定义是hive的基础知识,所包含的知识点有:数据仓库的创建、数据仓库的查询、数据仓库的修改、数据仓库的删除、表的创建、表的删除、内部表、外部表、分区表、桶表、表的修改、视图。本篇文章先介绍:数据仓库的创建、数据仓库的查询、…...
golang 反序列化出现json: cannot unmarshal string into Go value of type model.Phone
项目场景: 今天在项目公关的过程中,需要对interface{}类型进行转换为具体结构体 问题描述 很自然的用到了resultBytes, _ : json.Marshal(result),然后对resultBytes进行反序列化转换为对应的结构体err : json.Unmarshal(resultBytes, &…...
【闯关练习】—— 1400分(构造)
🌏博客主页:PH_modest的博客主页 🚩当前专栏:cf闯关练习 💌其他专栏: 🔴每日一题 🟡 C跬步积累 🟢 C语言跬步积累 🌈座右铭:广积粮,缓…...
Qt QProgressBar进度条控件
文章目录 1 属性和方法1.1 值1.2 方向1.3 外观1.4 信号和槽 2 实例2.1 布局2.2 代码实现 QProgressBar是进度条控件,进度条用来指示任务的完成情况 1 属性和方法 QProgressBar有很多属性,完整的可查看帮助文档。这里以QProgressBar为例,列出…...
【新】Unity Meta Quest MR 开发(一):Passthrough 透视配置
文章目录 📕教程说明📕配置透视的串流调试功能📕第一步:设置 OVRManager📕第二步:添加 OVRPassthroughLayer 脚本📕第三步:在场景中添加虚拟物体📕第四步:设置…...
快速排序【hoare版本】【挖坑法】【双指针法】(数据结构)
快速排序是Hoare于1962年提出的一种二叉树结构的交换排序方法,其基本思想为:任取待排序元素序列中 的某元素作为基准值,按照该排序码将待排序集合分割成两子序列,左子序列中所有元素均小于基准值,右子序列中所有元素均…...
class_5:在c++中一个类包含另一个类的对象叫做组合
#include <iostream> using namespace std;class Wheel{ public://成员数据string brand; //品牌int year; //年限//真正的成员函数void printWheelInfo(); //声明成员函数 };void Wheel::printWheelInfo() {cout<<"我的轮胎品牌是:"<…...
Linux - No space left on device
问题描述 No space left on device 原因分析 说明在服务器设备上的存储空间已经满了,不能再上传或者新建文件夹或者文件等。 解决方案 确认查看服务器系统的磁盘使用情况是否是真的已经没有剩余空间,复制下面命令在服务器上运行,然后发现如果…...
STC8H8K蓝牙智能巡线小车——2. 点亮左右转弯灯与危险报警灯
任务调用示例 RTX 51 TNY 可做多任务调度,API较为简单。 /* 接口API */// 创建任务 extern unsigned char os_create_task (unsigned char task_id); // 结束任务 extern unsigned char os_delete_task (unsigned char task_id);// 等待 extern unsig…...
【微信小程序独立开发 3】个人资料页面编写
这一节完成用户个人信息昵称的填写和获取 上节编写完成后的页面如下所示: 首先进行用户昵称编辑功能的编写,铲屎官昵称采用了navigator标签,当点击昵称时会自动跳转到昵称编辑页面。 首先输入昵称编辑界面的导航栏名称 {"usingCompone…...
Linux笔记:Linux中的文件系统权限
在Red Hat Enterprise Linux 或其他类似的Linux发行版中,全局umask设置通常在几个不同的系统级配置文件中定义。以下是一些可能设置umask的地方: (1)/etc/profile: 这是为系统上的所有用户设置全局环境变量和启动程序的地方。通…...
Android基于Matrix绘制PaintDrawable设置BitmapShader,以手指触点为中心显示原图的圆切图,Kotlin(4)
Android基于Matrix绘制PaintDrawable设置BitmapShader,以手指触点为中心显示原图的圆切图,Kotlin(4) 这篇 Android基于Matrix绘制PaintDrawable设置BitmapShader,以手指触点为中心显示原图像圆图,Kotlin&am…...
WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
问题背景 当我们尝试通过SSH(Secure Shell)连接到远程服务器时,有时会遇到一个警告信息:“WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!”。这个消息表明SSH客户端检测到远程主机的身份(即其SSH密钥)…...
深入理解JVM虚拟机第三十九篇:JVM中新生代和老年代相关参数设置
😉😉 欢迎加入我们的学习交流群呀! ✅✅1:这是孙哥suns给大家的福利! ✨✨2:我们免费分享Netty、Dubbo、k8s、Mybatis、Spring、Security、Docker、Grpc、消息中间件、Rpc、SpringCloud等等很多应用和源码级别高质量视频和笔记资料,你想学的我们这里都有! 🥭🥭3:…...
打造创新的金融数据平台,加速数字化和智能化转型丨PingCAP 官网金融行业专区上线
自诞生以来,TiDB 的原生分布式架构在强一致性、高可用性和可扩展性等方面与金融级业务需求高度契合,早期版本即为包括北京银行在内的金融用户提供服务。 TiDB 的核心能力始终源自与中国金融用户的共同创造。作为金融级分布式数据库,TiDB 在国…...
记ubuntu2004通过NetworkManager修改网络的优先级
这里写自定义目录标题 前言步骤 前言 起因在于万恶的校园网,突然台式有线死活没法认证(感觉是IP冲突了?另外一台电脑同样的系统就没有问题,连路由器WIFI也是可以的,路由器设置的是桥接模式,有没有大佬提供…...
Android-常用数据结构和控件
HashMap 的原理 HashMap 的内部可以看做数组链表的复合结构。数组被分为一个个的桶(bucket)。哈希值决定了键值对在数组中的寻址。具有相同哈希值的键值对会组成链表。需要注意的是当链表长度超过阈值(默认是8)的时候会触发树化,链表会变成树形结构。 把握HashMap的…...
react使用recoil进行全局状态管理 + axios进行网络请求
我们尝试使用recoil进行全局状态管理以及axios进行网络请求。 recoil recoil是facebook官方推出的新的react状态管理方案,采用分散管理原子状态的设计模式,同时也强调immuteable(mobx则是mutable),这与react强调immu…...
基于Springboot的善筹网(众筹网-有报告)。Javaee项目,springboot项目。
演示视频: 基于Springboot的善筹网(众筹网-有报告)。Javaee项目,springboot项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结构,通过Spring S…...
【Python学习】Python学习14-函数
目录 【Python学习】Python学习14-函数 前言自定义函数创建语法自定义函数与调用参数传递参考 文章所属专区 Python学习 前言 本章节主要说明Python的函数。函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。 函数能提高应…...
can消息的大小端对源码的影响
下图为小端intel型信号,其dbc文件部分源码为:BO_ 1 id_0x1: 8 Vector__XXXSG_ aaa : 0|121 (1,0) [0|0] "" Vector__XXX,这里的0代表的是起始位置为0(起始0->7,8->12为高位)如果将该信号改为大端motorola型&#…...
Acrylic Paint风格在Midjourney中失效的5大隐性陷阱(附官方未公开的--s 700+--style raw协同调参公式)
更多请点击: https://intelliparadigm.com 第一章:Acrylic Paint风格在Midjourney中的本质定义与失效现象全景图 Acrylic Paint(丙烯画)风格在Midjourney中并非原生语义标签,而是一种通过视觉特征逆向建模的提示工程产…...
中兴860A四川电信高安版救砖记:遥控失效后,我是如何通过修改init.rc寄生脚本让遥控器起死回生的
中兴860A四川电信高安版遥控失效深度修复指南 当你的中兴860A四川电信高安版机顶盒突然"罢工",遥控器怎么按都没反应,那种感觉就像电视突然变成了哑巴。这不是简单的配对问题,而是一场与系统底层限制的较量。本文将带你深入Android…...
SatGate-Proxy:开源反向代理与隧道工具部署与实战指南
1. 项目概述与核心价值最近在折腾一些需要跨地域、跨网络环境访问的应用时,遇到了一个老生常谈的痛点:如何稳定、高效地访问那些因为网络策略限制而无法直接触达的服务。这不仅仅是个人用户的需求,很多中小团队在部署混合云、进行远程办公或访…...
智能家居安全新突破:视觉AI如何实现从感知到认知的跨越
1. 项目概述:当视觉智能成为家庭安全的“火眼金睛”最近几年,智能家居的概念越来越火,从智能门锁到语音助手,似乎家里的一切都在变得“聪明”。但说实话,很多所谓的“智能”安全方案,比如单纯依靠门窗传感器…...
别再复制粘贴了!手把手教你用MATLAB/Simulink把低通滤波器写成C代码(附避坑指南)
从MATLAB到嵌入式C:低通滤波器工程化实现全指南 在嵌入式系统开发中,数字滤波器的实现往往成为算法落地的关键瓶颈。许多工程师能够熟练使用MATLAB设计出完美的滤波器模型,却在将其转化为实际可用的C代码时频频碰壁——仿真曲线平滑优美&…...
渗透PHP伪协议
一、debug调试 1、定义 Debug,又叫断点调试,就是对写好的程序进行逐步运行、分解、调试的过程,通过这个过程,我们可以跟踪程序的详细运行过程, 是程序员的开发神器,也是开发必会的一个重要技能。 2、意义…...
Chrome QRCode:浏览器原生二维码生成与解析的极简技术方案
Chrome QRCode:浏览器原生二维码生成与解析的极简技术方案 【免费下载链接】chrome-qrcode :zap: A Chrome plugin to Genrate QRCode of URL / Text, or Decode the QRcode in website. 一个Chrome浏览器插件,用于生成当前URL或者选中内容的二维码&…...
TEdit地图编辑器:从新手到专家的泰拉瑞亚世界创作指南
TEdit地图编辑器:从新手到专家的泰拉瑞亚世界创作指南 【免费下载链接】Terraria-Map-Editor TEdit - Terraria Map Editor - TEdit is a stand alone, open source map editor for Terraria. It lets you edit maps just like (almost) paint! It also lets you ch…...
如何快速配置Windows端口转发:终极图形化管理工具指南
如何快速配置Windows端口转发:终极图形化管理工具指南 【免费下载链接】PortProxyGUI A manager of netsh interface portproxy which is to evaluate TCP/IP port redirect on windows. 项目地址: https://gitcode.com/gh_mirrors/po/PortProxyGUI PortProx…...
