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

文章目录

一、实战概述

  • 在本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分区表在提升查询效率与简化数据管理方面的优势。
相关推荐
zhang98800002 小时前
储能领域大数据平台的设计中如何使用 Hadoop、Spark、Flink 等组件实现数据采集、清洗、存储及实时 / 离线计算,支持储能系统分析与预测
大数据·hadoop·spark
Lx3524 小时前
Hadoop日志分析实战:快速定位问题的技巧
大数据·hadoop
喂完待续6 小时前
【Tech Arch】Hive技术解析:大数据仓库的SQL桥梁
大数据·数据仓库·hive·hadoop·sql·apache
最初的↘那颗心7 小时前
Flink Stream API 源码走读 - window 和 sum
大数据·hadoop·flink·源码·实时计算·窗口函数
计艺回忆路1 天前
从Podman开始一步步构建Hadoop开发集群
hadoop
计算机源码社2 天前
分享一个基于Hadoop的二手房销售签约数据分析与可视化系统,基于Python可视化的二手房销售数据分析平台
大数据·hadoop·python·数据分析·毕业设计项目·毕业设计源码·计算机毕设选题
计算机毕设残哥2 天前
完整技术栈分享:基于Hadoop+Spark的在线教育投融资大数据可视化分析系统
大数据·hadoop·python·信息可视化·spark·计算机毕设·计算机毕业设计
计算机源码社3 天前
分享一个基于Hadoop+spark的超市销售数据分析与可视化系统,超市顾客消费行为分析系统的设计与实现
大数据·hadoop·数据分析·spark·计算机毕业设计源码·计算机毕设选题·大数据选题推荐
beijingliushao3 天前
33-Hive SQL DML语法之查询数据-2
hive·hadoop·sql
Lx3523 天前
如何正确选择Hadoop数据压缩格式:Gzip vs LZO vs Snappy
大数据·hadoop