hive建表,与插入数据

这篇具有很好参考价值的文章主要介绍了hive建表,与插入数据。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

思路,hive导入分区表,只能通过临时表导入。

固建立临时表(不分区),导入数据到临时表,创建分区表,通过【insert 分区表 select 临时表】 导入分区表

打开hue或者直接hive

-----------------------------

创建分区表

-----------------------------

外部表external
以日期进行分区partitioned
数据是以,切分的 row format
存储格式用parquet,压缩数据,比orc差,查询一致,但是插入快(数据是textfile格式,需要通过insert parquet格式的表 select * textfile格式的表)


CREATE external TABLE  default.ods_custom_data(
msgid string,sn string,dv string,vin string,tm_c string,tm_u string,s_ac string,at_ac string,op string,ml_r string
)
partitioned by (data_time string)
row format delimited fields terminated by ','
STORED AS parquet

hive建表,与插入数据

 

创建临时表

CREATE external TABLE  default.tmp_ods_custom_data(
msgid string,sn string,dv string,vin string,tm_c string,tm_u string,s_ac string,at_ac string,op string,ml_r string,data_time string
)
row format delimited fields terminated by ','
STORED AS textfile

导入数据

----------------------------

准备数据,这种数据是textfile格式

hive建表,与插入数据

 这是解压后的,实际上的数据是.gz的

hive建表,与插入数据

1) 本地导入

 hdfs dfs -put ./000000_0.gz /user/hive/warehouse/ods_custom_data

hive建表,与插入数据

 他就会自动识别,与下面2种方法的原理是一样,都是copy到hdfs的hive表目录下,自动识别

进入hive命令行

2) 本地copy

load data local inpath '/home/hdfs/data/test.txt' into table test;

3) hdfs上的copy

load data inpath '/user/hive/warehouse/tmp_ods_custom_data3/000000_0.gz' overwrite into table tmp_ods_custom_data;

检测是否导入临时表成功

----------------------

hive建表,与插入数据

 

导入分区表(静态分区方式)

----------------------------------

INSERT OVERWRITE TABLE ods_custom_data partition(data_time='20220601') 

 SELECT

msgid string,sn string,dv string,vin string,tm_c string,tm_u string,s_ac string,at_ac string,op string,ml_r string

FROM tmp_ods_custom_data where data_time='20220601'

注意,上面的表,有一个字段是分区字段(特殊字段),下面的表没有分区字段,所以除去分区字段,比上面的表少1个字段,不要*,否则会出现字段不匹配。select 的时候写好除了分区字段的所有字段

补充:data_time是数据中的data_time字段具体的内容值,我导入的一批次的数据全是这个时间,防止存在脏数据,要使用查询字段限定范围。

hive建表,与插入数据

 

查看是否成功

-----------------------

hive建表,与插入数据

 

性能对比

-----------------------

但是,他这个数据,压缩后,比textfile .gz的还要大一点

parquet格式

hive建表,与插入数据

 

textfile的gz格式

hive建表,与插入数据

我不知道gz格式能不能写,因为他是gz不能分割。我觉得他比parquet慢,于是做了聚合

parquet表,36秒

hive建表,与插入数据

 gz,24秒反而更快

hive建表,与插入数据

 

 我不知道gz文件能不能写,但是从查询上来看的确更快,通过mr的话.文章来源地址https://www.toymoban.com/news/detail-496546.html

到了这里,关于hive建表,与插入数据的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Hive数据加载方式(load、insert;普通表、分区表)

    介绍 Hive 数据加载方式(insert、load) 基础语法: load data [local] inpath \\\'/opt/module/datas/student.txt\\\' [overwrite] into table student[partition ] 参数说明: 1 load data: 表示加载数据 2 local: 表示从本地加载数据到 hive 表;否则从 HDFS 加载数据到 hive 表 3 inpath: 表示加载数据的路径 相对路径,例如

    2024年02月03日
    浏览(58)
  • 大数据开发之Hive(查询、分区表和分桶表、函数)

    1、查询语句语法 2、书写次序和执行次序 顺序 书写次序 书写次序说明 执行次序 执行次序说明 1 select 查询 from 先执行表与表直接的关系 2 from 先执行表与表直接的关系 on 先执行表与表直接的关系 3 join on 先执行表与表直接的关系 join 先执行表与表直接的关系 4 where 先执行表

    2024年01月17日
    浏览(53)
  • hive分区表 静态分区和动态分区

    现有数据文件 data_file 如下: 2023-08-01,Product A,100.0 2023-08-05,Product B,150.0 2023-08-10,Product A,200.0 需要手动指定分区 现有源数据表如下: CREATE TABLE sales_source (     sale_date STRING,     product STRING,     amount DOUBLE ); INSERT INTO sales_source VALUES     (\\\'2023-08-01\\\', \\\'Product A\\\', 100.0),     (\\\'2023-08-

    2024年02月10日
    浏览(52)
  • Hive分区表实战 - 多分区字段

    本实战教程通过一系列Hive SQL操作,演示了如何在大数据环境下创建具有省市分区的大学表,并从本地文件系统加载不同地区的学校数据到对应分区。首先,创建名为 school 的数据库并切换至该数据库;接着,在数据库中定义一个名为 university 的分区表,其结构包括ID和名称两

    2024年01月15日
    浏览(49)
  • HIVE创建分区表

    partitioned by ( c2 string ) # 创建分区 c1跟c2都是字段,但是创建的时候不能写在t2里面,只能写在分区里面(同时select查询的时候,c2的字段也要写在最后面) 要加载数据到分区表,只需在原来的加载数据的语句上增加partition,同时指定分区的字段值即可。 注意:当你退出

    2024年02月15日
    浏览(44)
  • Hive分区表修改(增删)列

    环境:CDH6.3.0,Hive 2.1.1-cdh6.3.0 基础数据分区表test1,包含a,b,c,d共4列加分区列p_day,向其中插入两行数据 表中数据及parquet文件信息如下: test2表直接使用test1表的文件: 修复分区并查询数据 删除test2表的a列,看起来只有通过replace columns实现,但是运行报错,根据官方文档,只

    2023年04月26日
    浏览(88)
  • Iceberg从入门到精通系列之五:Zeppelin集成iceberg,创建iceberg普通表和分区表,并插入数据

    Zeppelin支持Flink SQL Flink SQL支持iceberg Zeppelin集成Flink SQL后,就可以在Zeppelin上创建iceberg表了 下面演示下Zeppelin集成iceberg后,创建表,插入数据的方便性。

    2024年02月11日
    浏览(48)
  • Hive 分区表和分桶表

    在《Hive 建表语句解析》文章中,建表的时候我们可以使用 PARTITIONED BY 子句和 CLUSTERED BY 子句来创建分区表和分桶表,为什么要创建分区表和分桶表呢?分区表和分桶表有什么区别呢? 1. 为什么分区 在Hive 查询中一般会扫描整个表内容,会消耗很多时间做没必要的工作。有时

    2023年04月23日
    浏览(67)
  • Hive 分区表新增字段 cascade

    在以前上线的分区表中新加一个字段,并且要求添加到指定的位置列。 加 cascade 操作 创建测试表 插入测试数据 查看现有数据 官网添加列的语法 注意: Hive 1.1.0 中有 CASCADE|RESTRICT 子句。 ALTER TABLE ADD|REPLACE COLUMNS CASCADE 命令修改表元数据的列,并将相同的更改级联到所有分区

    2024年02月11日
    浏览(56)
  • Hive ---- 分区表和分桶表

    Hive中的分区就是把一张大表的数据按照业务需要分散的存储到多个目录,每个目录就称为该表的一个分区。在查询时通过where子句中的表达式选择查询所需要的分区,这样的查询效率会提高很多。 1. 创建分区表 2. 分区表读写数据 1)写数据 (1)load 数据准备 在/opt/module/hiv

    2024年02月10日
    浏览(61)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包