HIVE表数据快速构造(分区表、orc、text)

引言
当需要在hive数仓中去创建测试表并构造测试数据时,通常需要在安装了hive客户端的服务器环境下,通过执行命令的方式建表。通过在HDFS上上传和加载数据文件的方式来加载数据到hive表中。其中操作算不得多复杂,但比较依赖对环境和命令的熟悉,并且操作不够可视化。这里介绍另一种更外快捷的可视化操作方法。
关键思路
操作依赖HDFS和HUE,hadoop集群中需要部署安装这部分服务。
在这里插入图片描述

通过HUE来执行hivesql,达到建表和查询结果数据的目的。
通过HDFS的可视化文件管理功能,达到上传数据文件实现hive数据存储映射。

你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。
详细操作

Step_1 使用HUE创建hive外部表
通过集群中HUE入口进入hue
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
执行hivesql创建测试数据库、数据表。创建完成后刷新页面可以看到新建的库和表。
在这里插入图片描述

示例脚本如下
– 创建一个新的db 用于测试
create database qywu_testdb;

– 选中这个测试db
use qywu_testdb;

– 创建测试表 注意需要保存为外部表 ,数据文件格式为TEXTFILE并且指定location位置
CREATE EXTERNAL TABLE qywu_testdb1
(
name STRING,
age STRING,
gpa STRING
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ‘\t’
STORED AS TEXTFILE
LOCATION ‘/user/bigshan/qywu_testdb1’;

这里需要注意
 创建外部表并且LOCATION 指定源数据存储的路径,不指定的话 hive 会在 /user/hive/warehouse 下以外部表的表名创建目录并将数据存储在这里。
 创建外部表的好处是导入数据到外部表,只需导入数据到建表语句中 LOCATION 参数指定的 HDFS 目录下即可
 保存数据文件指定为TEXTFILE格式,方便数据文件构造,若指定表需存储为其他格式如ORC,可通过先创建TEXTFILE表,再用insert导入到其他ORC格式的表中。

Step_2 从HDFS的namenode ui 进行数据文件的上传
在这里插入图片描述
在这里插入图片描述
在hdfs的目录系统中找到STPE_1中建表对应的LOCATION路径
在这里插入图片描述
可以看到建表完成后,自动创建了qywu_testdb1这个目录,并且目录下暂时不存在任务数据。
Step_3 生成对应测试表结构的数据文件,并通过页面上传到对应表的LOCATION位置下
参考建表的数据结构
CREATE EXTERNAL TABLE qywu_testdb1
(
name STRING,
age STRING,
gpa STRING
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ‘\t’
STORED AS TEXTFILE
LOCATION ‘/user/bigshan/qywu_testdb1’;
测试表有三个字段,并且以’/t‘作为字段分隔符,未指定行分隔符,默认以‘\n’为行分隔符。构造一万条符合存格式的测试文件。
在这里插入图片描述
上传该数据文件到HDFS上,路径对应表的LOCATION位置
在这里插入图片描述
上传完成可以在LOCATION目录下看到该数据文件
在这里插入图片描述
现在可以去HUE中查询该表数据是否成功加载
在这里插入图片描述
在这里插入图片描述
至此完成测试数据构造。
注意:
 数据文件编码建议为UTF-8,否则可能中文乱码
 Hive表数据在hdfs目录下,可以同时存在多个数据文件,这意味着需要增加表内数据时,可以通过复制上传多个数据文件的方式,快速实现表数据增加

补充说明-构造日期分区表和表数据
实际数据治理场景下,治理后的数据模型,经常是日期分区表,下面简单介绍下构造分区表数据。
首先创建分区表,指定dt为分区字段
– 创建分区表
CREATE EXTERNAL TABLE qywu_testdb_fq
(
name STRING,
age STRING,
gpa STRING
)partitioned by (dt string) --指定分区字段
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ‘\t’
STORED AS TEXTFILE
LOCATION ‘/user/bigshan/qywu_testddb_fq_datadir’;
在这里插入图片描述
执行hivesql增加一个分区。
– 增加分区字段
alter table qywu_testdb_fq add partition(dt=“20221226”);

查看HDFS目录,查看是否创建分区成功
在这里插入图片描述
可以看到这里创建分区成功,已分区字段值新建了一个hdfs路径,接下来构造数据并上传即可完成日期分区表的数据构造

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Hive数据从ODS层到DWD层的操作一般需要经过以下步骤: 1. 创建ODS层:首先需要在Hive中创建ODS层,并使用外部的方式将ODS层数据导入到Hive中。可以使用以下命令创建外部: ``` CREATE EXTERNAL TABLE ods_table ( column1 datatype1, column2 datatype2, ... ) COMMENT 'ODS层' ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde' WITH SERDEPROPERTIES ( 'separatorChar' = ',', 'quoteChar' = '"' ) STORED AS TEXTFILE LOCATION 'hdfs://path/to/ods_table'; ``` 2. 创建DWD层:接下来需要在Hive中创建DWD层,并使用INSERT INTO SELECT语句从ODS层中选择数据插入到DWD层中。可以使用以下命令创建DWD层: ``` CREATE TABLE dwd_table ( column1 datatype1, column2 datatype2, ... ) COMMENT 'DWD层' PARTITIONED BY (dt string) STORED AS ORC; ``` 注意,这里创建的DWD层需要进行分区,以便后续的数据查询和分析。 3. 插入数据:接下来使用INSERT INTO SELECT语句将ODS层中的数据插入到DWD层中,可以按照日期进行分区,例如: ``` INSERT INTO TABLE dwd_table PARTITION (dt='20220101') SELECT column1, column2, ... FROM ods_table WHERE dt='20220101'; ``` 注意,这里需要根据需要选择需要导入的日期,以确保数据的准确性和完整性。 4. 数据查询和分析:最后,可以使用Hive SQL语句对DWD层进行查询和分析,以获取所需的数据。 以上就是Hive数据从ODS层到DWD层的操作流程,其中每一步都需要仔细处理,以确保数据的准确性和完整性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值