Hive分区表实战 - 单分区字段

文章目录

  • 一、实战概述
  • 二、实战步骤
    • (一)创建图书数据库
    • (二)创建国别分区的图书表
    • (三)在本地创建数据文件
    • (四)按分区加载数据
      • 1、加载中文书籍数据到`country=cn`分区
      • 2、加载英文书籍数据到`country=en`分区
    • (五)查看分区表book全部记录
    • (六) 通过HDFS查看分区对应的目录及文件
    • (七)手动创建分区并上传数据
      • 1、在HDFS上手动创建`country=jp`分区目录
      • 2、创建日文书籍数据文件`jp_book.txt`
      • 3、上传文件到HDFS日本分区目录
      • 4、更新元数据以识别新分区
    • (八)再次查看book表全部记录
    • (九)删除指定分区
    • (十)更改分区名
    • (十一)在MySQL中查看Hive元数据(分区信息)
      • 1、登录MySQL Hive Metastore数据库
      • 2、 查看book表分区元数据信息
  • 三、实战总结

一、实战概述

  • 在本Hive分区表管理实战中,我们通过一系列实际操作演示了如何有效地利用分区功能来组织和查询大规模数据。首先,创建了一个名为book的内部分区表,其结构包含idname字段,并根据country字段进行分区。接下来,准备并加载了不同国家(中国和英国)书籍的数据文件到对应的分区目录中。

  • 为了展示分区灵活性,我们还模拟了手动创建新分区(日本),上传数据文件并通过msck repair table命令将新分区纳入表的元数据管理中。此外,实战还涉及分区的删除、重命名等操作,直观展示了Hive如何同步更新分区状态至HDFS存储及元数据层面。

  • 最后,通过查看MySQL中Hive Metastore数据库的相关表信息,揭示了Hive如何记录分区的具体元数据内容,包括分区位置等关键信息。整个实战过程充分展现了Hive分区表在提升查询效率、实现数据分类存储以及简化数据管理方面的强大能力。

二、实战步骤

(一)创建图书数据库

  • 执行命令:create database bookdb;
    在这里插入图片描述
  • 执行命令:use bookdb;,切换到bookdb数据库
    在这里插入图片描述

(二)创建国别分区的图书表

  • 执行语句:create table book (id int, name string) partitioned by (country string) row format delimited fields terminated by ' ';,创建book
    在这里插入图片描述

(三)在本地创建数据文件

  • 在master虚拟机上创建中文书籍数据文件cn_book.txt
    在这里插入图片描述
  • 在master虚拟机上创建英文书籍数据文件en_book.txt
    在这里插入图片描述

(四)按分区加载数据

1、加载中文书籍数据到country=cn分区

  • 执行语句:load data local inpath '/root/cn_book.txt' overwrite into table book partition(country='cn');
    在这里插入图片描述

2、加载英文书籍数据到country=en分区

  • 执行语句:load data local inpath '/root/en_book.txt' overwrite into table book partition(country='en');
    在这里插入图片描述

(五)查看分区表book全部记录

  • 执行语句:select * from book;,注意:第三列是分区字段
    在这里插入图片描述

(六) 通过HDFS查看分区对应的目录及文件

  • 使用HDFS Shell命令检查/user/hive/warehouse/bookdb.db/book(假设这是hive表的默认存储位置)下的country=cncountry=en分区目录及其内部的数据文件。
  • 执行命令:hdfs dfs -ls -r /user/hive/warehouse/bookdb.db/book
    在这里插入图片描述

(七)手动创建分区并上传数据

1、在HDFS上手动创建country=jp分区目录

  • 执行命令:hdfs dfs -mkdir /user/hive/warehouse/bookdb.db/book/country=jp
    在这里插入图片描述

2、创建日文书籍数据文件jp_book.txt

  • 在master虚拟机上创建jp_book.txt
    在这里插入图片描述

3、上传文件到HDFS日本分区目录

  • 执行命令:hdfs dfs -put jp_book.txt /user/hive/warehouse/bookdb.db/book/country=jp
    在这里插入图片描述

4、更新元数据以识别新分区

  • 执行语句:msck repair table book;
    在这里插入图片描述

(八)再次查看book表全部记录

  • 执行语句:select * from book;,注意:第三列是分区字段
    在这里插入图片描述

(九)删除指定分区

  • 执行语句:alter table book drop partition (country='jp');,删除country=jp分区
    在这里插入图片描述
  • 此时,查看分区表全部记录,就会发现没有日本书籍记录
    在这里插入图片描述

(十)更改分区名

  • 将原有country=cn分区重命名为country=zh,执行语句:alter table book partition (country='cn') rename to partition (country='zh');
    在这里插入图片描述
  • 此时,查看分区表全部记录
    在这里插入图片描述

(十一)在MySQL中查看Hive元数据(分区信息)

1、登录MySQL Hive Metastore数据库

  • 执行命令:mysql -uroot -p903213,登录MySQL,然后执行use hive;,打开hive元数据库
    在这里插入图片描述

2、 查看book表分区元数据信息

  • 执行语句:SELECT * FROM COLUMNS_V2;,book分区表的CD_ID值是27
    在这里插入图片描述

  • 执行语句:select SD_ID, CD_ID, LOCATION from SDS where CD_ID = 27;
    在这里插入图片描述

三、实战总结

  • 本实战演练全面展示了如何在Hive中创建和管理分区表,通过实际操作演示了数据按国别分区存储、加载与查询的全过程。从创建book表开始,依次完成了数据文件准备、分区数据加载、分区查看及更新元数据等任务,并进一步演示了分区的增删改查操作,最后通过MySQL查看Hive Metastore中记录的分区元数据信息,充分体现了Hive分区表在提升查询效率与简化数据管理方面的优势。

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

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

相关文章

7个JavaScript面试题全面解析,一文搞定技术面试

JavaScript是构建网络的主要基石之一。这个强大的语言也有自己的怪癖。例如,您知道0 -0计算为true,或者Number("")产生0吗? 问题在于,这些怪癖有时会让你抓耳挠腮,甚至质疑Brendon Eich发明JavaScript的那一天是不是high了。当然,这里的重点不是说JavaScript是一种…

RV1126边缘计算AI盒子,支持4-6路1080p视频,2T 算力

1 产品概述 信迈推出基于瑞芯微Rockchip RV1126架构的AI边缘计算主板,RV1126芯片是四核ARM Cortex-A7,1.5GHz, RSIC-V 200MHz CPU ,NPU2.0Tops。AI边缘计算主板外围接口丰富,拥有超强扩展性,可广泛应用在智慧安防、工…

统一密钥管理在信息安全领域有什么作用

统一密钥管理在信息安全领域中至关重要。它可以确保密钥的安全性、保密性和可用性,同时降低开发、维护和管理的成本。 对于没有KMS(密钥管理服务)管理系统的公司,密钥的本地化管理可能导致密钥分散在代码、配置文件中,缺乏统一管理&#xff0…

机器学习笔记一之入门概念

目录 一 基本分类二 按模型分类概率模型(Probabilistic Models)非概率模型(Non-Probabilistic Models)对比结论线性模型 (Linear Models)非线性模型 (Non-linear Models)对比 三 按算法分类1.批量学习(Batch Learning&…

HarmonyOS 容器组件(Column Row Flex)

今天 我们来说容器组件中的 Column Row Flex Column 我们应该比较熟了 之前用了很多了 是一个列容器 老规矩 先来一个组件骨架 Entry Component struct Index {build() {Column({space: 30}) {}.width(100%).height(100%)} }我们在中的 Column 元素中加入代码 Column() {Co…

某集成电路中高端测试设备厂商:大幅提升网间文件交换效率

集成电路中高端测试设备厂商 该集成电路测试厂商是一家从事集成电路测试设备研发设计、制造、销售和服务的高科技企业,公司研发的中高端自动化测试设备产品填补了中国集成电路中高端测试设备领域的空白,改变目前完全依赖国外进口的现状同时本着与国外领…

VS中打开ui文件闪退

解决办法: 依次点击《扩展》-> 《Qt vs tools》-> 《options》-> 《Qt》-> 《general》 -> 《Qt Designer》 -> 《run in detached window》 -> true

ffmpeg写YUV420文件碰到阶梯型横线或者条纹状画面的原因和解决办法

版权声明:本文为CSDN博主「文三~」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/asdasfdgdhh/article/details/112831581 留作备份 阶梯型横线: 条纹状画面…

Oracle regexp_substr

select regexp_substr(123|456|789, [^|], 1, 2) from dual;

【vitest 单元测试】如何蹭 ant-design-web3 的PR

这篇文章分享单测经验,希望你能收获到有用的单测知识或者pr思路,填补单测的过程可以深刻理解组件内部的每一个流程,相信一定有所收获。 ant-design-web3 前言查看单测覆盖情况运行命令,本地会生成一份临时目录通过live server打开…

频率阈图像滤波

介绍 频率阈图像滤波是一种在频域中进行图像处理的方法,它基于图像的频率分布来实现滤波效果。具体步骤如下: 将原始图像转换到频域:使用快速傅里叶变换(FFT)将图像从空间域转换到频域。对频域图像应用频率阈滤波器&a…

“当实力撑不起野心的时候,学习才是唯一的出路”(2023回顾与展望)

“当实力撑不起野心的时候,学习才是唯一的出路”,窃以此言铭已,以激励学习路上不懈怠。这是我今年最庆幸的事:窃得一条铭言💪 (笔记模板由python脚本于2024年01月07日 13:57:54创建,本篇笔记适合尝试学习编…