hive不同格式数据大小,无重复数据

-- 重点,目标表无重复数据

-- dbName.num_result 无重复记录
-- 插入数据
CREATE TABLE dbName.test_textfile(
  `key` string,
  `value` string,
  `p_key` string,
  `p_key2` string)
STORED AS textfile
;
insert overwrite table dbName.test_textfile select * from dbName.num_result where p_key=‘9‘ and p_key2=‘0‘;

drop table dbName.test_orcfile;
CREATE TABLE dbName.test_orcfile(
  `key` string,
  `value` string,
  `p_key` string,
  `p_key2` string)
STORED AS orc
;
insert overwrite table dbName.test_orcfile select * from test_textfile;

CREATE TABLE dbName.test_rcfile(
  `key` string,
  `value` string,
  `p_key` string,
  `p_key2` string)
STORED AS rcfile
;
insert overwrite table dbName.test_rcfile select * from test_textfile;

CREATE TABLE dbName.test_parquet(
  `key` string,
  `value` string,
  `p_key` string,
  `p_key2` string)
STORED AS parquet
;
insert overwrite table dbName.test_parquet select * from test_textfile;

-- 统计数据量
select count(1) as cnt from dbName.test_textfile;
select count(1) as cnt from dbName.test_orcfile;
select count(1) as cnt from dbName.test_rcfile;
select count(1) as cnt from dbName.test_parquet;

-- 统计文件大小
dfs -du -s -h hdfs://nameservice1/user/hive/warehouse/dbName.db/test_text*;
dfs -du -s -h hdfs://nameservice1/user/hive/warehouse/dbName.db/test_par*;
dfs -du -s -h hdfs://nameservice1/user/hive/warehouse/dbName.db/test_rc*;
dfs -du -s -h hdfs://nameservice1/user/hive/warehouse/dbName.db/test_orc*;
1.0 G  3.1 G  hdfs://nameNode/user/hive/warehouse/dbName.db/test_textfile
1.1 G  3.3 G  hdfs://nameNode/user/hive/warehouse/dbName.db/test_parquet
984.0 M  2.9 G  hdfs://nameNode/user/hive/warehouse/dbName.db/test_rcfile
470.0 M  1.4 G  hdfs://nameNode/user/hive/warehouse/dbName.db/test_orcfile

从结果可以看出,在无重复数据的情况下,parquet的压缩无用武之地,占用空间比textfile还大,ORC是压缩最强的文件模式。

hive (dbName)> dfs -du -s hdfs://nameNode/user/hive/warehouse/dbName.db/test_text*;
1110741501  3332224503  hdfs://nameNode/user/hive/warehouse/dbName.db/test_textfile
hive (dbName)> dfs -du -s hdfs://nameNode/user/hive/warehouse/dbName.db/test_par*;
1167366639  3502099917  hdfs://nameNode/user/hive/warehouse/dbName.db/test_parquet
hive (dbName)> dfs -du -s hdfs://nameNode/user/hive/warehouse/dbName.db/test_rc*;
1031774688  3095324064  hdfs://nameNode/user/hive/warehouse/dbName.db/test_rcfile
hive (dbName)> dfs -du -s hdfs://nameNode/user/hive/warehouse/dbName.db/test_orc*;
492795434  1478386302  hdfs://nameNode/user/hive/warehouse/dbName.db/test_orcfile

原文地址:https://www.cnblogs.com/chenzechao/p/10072555.html

时间: 2024-11-09 00:32:32

hive不同格式数据大小,无重复数据的相关文章

orcl数据库查询重复数据及删除重复数据方法

工作中,发现数据库表中有许多重复的数据,而这个时候老板需要统计表中有多少条数据时(不包含重复数据),只想说一句MMP,库中好几十万数据,肿么办,无奈只能自己在网上找语句,最终成功解救,下面是我一个实验,很好理解. ------------------------------------------------------------------------------------------------------------------------ 假设有一张人员信息表cs(姓名,证件号,地址

机器学习中的标签数据和无标签数据

今天在数据人网上看到一篇文章.区分监督学习和无监督学习,监督学习的数据就是有标签数据,无监督学习的数据就是无标签数据.这是我的理解,欢迎指教. 原文链接http://www.shujuren.org/article/62.html 原文如下 监督式和非监督式机器学习算法 作者Frankchen 什么是监督式机器学习,它与和非监督式机器学习有什么关联呢? 本文中你将了解到监督式学习,非监督式学习和半监督式学习在阅读本文之后你将知道如下知识: 有关分类和回归的监督式学习问题 关于聚类和关联非监督式学

查询和删除数据表中重复数据的sql

1.查询表中重复数据.select * from people where peopleId in (select   peopleId   from   people   group   by   peopleId   having   count(peopleId) > 1) 2.删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录 delete from people where peopleId   in (select   peopleI

C# 两个List泛型用 Linq去重复数据 或者 得到重复数据

1, 两个List泛型用Linq去重复数据 Code: List<string> lstA = new List<string> { "E00401501B652563", "E00401501B652564", "E00401501B652565", "E00401501B652566", "E00401501B652567", "E00401501B652568&quo

ORACLE清除某一字段重复的数据(选取重复数据中另一个字段时期最大值)

需求:资产维修表中同一资产可能维修完继续申请维修,这时候维修状态需要根据最近的维修时间去判断维修状态,所以同一资产ID下会出现重复的数据(维修审批通过,维修审批未通过),或者可能不出现(未申请维修),所以需要查询资产维修表中未重复的数据和重复的数据中申请维修日期最近的数据,方法如下: 资产表如下: 1.资产维修中所有的数据select * from ASSET_MAINTAIN t 结果如下: 2.资产维修中可能相同的数据select a.*  from ASSET_MAINTAIN a inn

Hyper-v Server重复数据删除技术

Hyper-v Server重复数据删除技术 老衲听说windows Server 2012中新增了一项技术叫做重复数据删除,据说这个重复数据删除可以大大的节省磁盘的空间,下面我们来看看什么是重复数据删除: 重复数据删除指的是在数据中查找和删除重复内容,而不会影响其保真度或完整性.其目标是通过将文件分割成大小可以改变 (32-128 KB) 的小区块.确定重复的区块,然后为每个区块保留一个副本,从而在更小的空间中存储更多的数据.区块的冗余副本由对单个副本的引用所取代.区块会进行压缩,然后以特殊的

何时使用重复数据删除技术?

大数据与海量数据已经成为数据中心的主要业务,而重复数据删除与压缩是可以节约大量数据存储的技术. 只有备份还不够.重复数据删除与压缩即将成为主存储的必备功能. 重复数据删除是一种压缩技术,通过识别重复内容,进行去重,并在对应的存储位置留下指针,来最小化数据量.这个指针通过给定大小的数据模式进行哈希创建. 也许在于你已经在备份系统上实施了重复数据删除备份和归档多年,问题在于:是否需要在主存储上运用重复数据删除与压缩技术? 并非所有的重复数据删除技术都一样.IT专业人士在将其添加到主存储环境之前,应该

重复数据删除(De-duplication)技术研究(SourceForge上发布dedup util)

dedup util是一款开源的轻量级文件打包工具,它基于块级的重复数据删除技术,可以有效缩减数据容量,节省用户存储空间.目前已经在Sourceforge上创建项目,并且源码正在不断更新中.该工具生成的数据包内部数据部局(layout)如下: --------------------------------------------------| header | unique block data | file metadata |--------------------------------

MySQL 处理重复数据

有些 MySQL 数据表中可能存在重复的记录,有些情况我们允许重复数据的存在,但有时候我们也需要删除这些重复的数据. 本博文我们将为大家介绍如何防止数据表出现重复数据及如何删除数据表中的重复数据. 防止表中出现重复数据 你可以在MySQL数据表中设置指定的字段为 PRIMARY KEY(主键) 或者 UNIQUE(唯一) 索引来保证数据的唯一性. 让我们尝试一个实例:下表中无索引及主键,所以该表允许出现多条重复记录. CREATE TABLE person_tbl ( first_name CH