【Hadoop】-Apache Hive使用语法与概念原理[15]

server/2024/9/23 22:39:20/

一、数据库操作

  • 创建数据库

create database if not exists myhive;

  • 使用数据库

use myhive;

  • 查看数据库详细信息

desc database myhive;

数据库本质上就是在HDFS之上的文件夹。

默认数据库的存放路径是HDFS的:/user/hive/warehouse内

  • 创建数据库并指定hdfs存储位置

create database myhive2 location '/myhive2';

使用location关键字,可以指定数据库在HDFS的存储路径

  • 删除一个空数据库,如果数据库下面有数据表,那么就会报错

drop database myhive;

  • 强制删除数据库,包含数据库下面的表一起删除

drop database myhive2 cascade;

二、数据表操作

2.1、数据导入(数据加载)

  • 方式一:从文件向表加载数据

load  data  [local]  inpath  'path'  [overwriteinto  table  tablename;

----如果数据在hdfs,那么源文件会消失(本质上走的mv移动)

----如果数据在本地,需要带local,如果在hdfs就不用带了

----这个加载方式不会走MapReduce,小文件加载数据快 

  • 方式二:从表向其他表加载数据

insert  into | overwrite  table  tablename  select  .......;

2.2、数据导出

  • 方式一:通过insert  overwrite  语句

insert  overwrite  [local directory  'path' 

[row  format  delimited  fields  terminated  by  '']        -----自定义列分隔符

select  .....;

----带local,写入本地

----不带local,写入hdfs

方式二:

# -e  直接执行sql语句,将结果通过linux的重定向符号写入到指定文件中

bin/hive  -e  "sql语句">  result.txt        

# -f  直接执行sql脚本,将结果通过linux的重定向符号写入到指定文件中

bin/hive  -e  "sql脚本文件">  result.txt  

2.3、分区表

大数据中,最常用的一种思想就是分治,我们可以把大的文件分割成一个个小的文件,这样每次操作一个小的文件就会很容易了。同样的道理,在hive当中也是支持这种思想,就是我们可以把大的数据,按照每天或者每小时进行切分成一个个的小文件,这样去操作小的文件就会容易得多。

  1. 创建分区表
CREATE TABLE test_ext ( id int ) COMMENT 'partitioned table' PARTITION BY ( year string,
month string, day string ) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' ;

  • 单分区 

  • 多分区 

2.4、分桶表

分桶和分区一样,也是一种通过改变表的存储模式,从而完成对表优化的一种调优方式。

但和分区不同,分区是将表拆分到不同的子文件夹中进行存储,而分桶是将表拆分到固定数量的不同文件中进行存储。


http://www.ppmy.cn/server/20005.html

相关文章

Tiny11作者开源:利用微软官方镜像制作独属于你的Tiny11镜像

微软对Windows 11的最低硬件要求包括至少4GB的内存、双核处理器和64GB的SSD存储。然而,这些基本要求仅仅能保证用户启动和运行系统,而非流畅使用 为了提升体验,不少用户选择通过精简系统来减轻硬件负担,我们熟知的Tiny11便是其中…

机器视觉检测技术是什么?突出的亮点有哪些?

机器视觉检测技术是一种利用图像处理软件分析处理相机捕捉到的图像,以替代人眼在制造和测试过程中进行检测和测量的技术。它广泛应用于工业自动化领域,可以提高生产效率和质量控制的精度。机器视觉系统通常包括光源、相机、图像处理单元和执行机构等组成…

Eagle for Mac:强大的图片管理工具

Eagle for Mac是一款专为Mac用户设计的图片管理工具,旨在帮助用户更高效、有序地管理和查找图片资源。 Eagle for Mac v1.9.2中文版下载 Eagle支持多种图片格式,包括JPG、PNG、GIF、SVG、PSD、AI等,无论是矢量图还是位图,都能以清…

SpringCloud整合Ribbon负载均衡器

目录 一、模块一:提供数据 1.1 首先将第一个实例打包 1.2 使用命令行设置不同权重 1.3 打开图形化界面看看权重是否配置成功。 二、模块二:调用模块一 三、修改默认负载均衡策略 四、自定义规则 ​编辑 五、完整代码 5.1 目录结构 5.2 配置文件 …

uniapp步骤条 组件

//子组件 <template><view class"container-step"><view class"uni-padding-wrap"><view class"progress-box"><progress :percent"3" active"true" stroke-width"2" /></vie…

JVM的运行时数据区

之前的文章有讲过&#xff0c;Java 源代码文件经过编译器编译后会生成字节码文件&#xff0c;并且经过类加载器加载之后会交给执行引擎执行&#xff0c;并在执行过程中&#xff0c;Java会划出一片空间去存储执行期间所用到的数据&#xff0c;这片空间成为运行时数据区。 根据 …

C语言 | Leetcode C语言题解之第48题旋转图像

题目&#xff1a; 题解&#xff1a; void swap(int* a, int* b) {int t *a;*a *b, *b t; }void rotate(int** matrix, int matrixSize, int* matrixColSize) {// 水平翻转for (int i 0; i < matrixSize / 2; i) {for (int j 0; j < matrixSize; j) {swap(&matr…

vue3 ——笔记 (表单输入,监听器)

表单输入 在Vue 3中&#xff0c;v-model指令的用法稍有不同于Vue 2。在Vue 3中&#xff0c;v-model指令实际上是一个语法糖&#xff0c;它会自动将value属性和input事件绑定到组件或元素上&#xff0c;以实现双向数据绑定。 在自定义组件中使用v-model时&#xff0c;需要在组…