Hbase和Mysql存储数据量对比

news/2024/11/27 20:30:16/

目录

前言

生成数据

转换成hbase能够识别的HFile文件

导入HFile到hbase中

导入数据到Mysql

总结


前言

由于想知道hbase和mysql存储同样的一份数据需要的存储是否一样,故做的一下实验。

生成数据

脚本如下:

#!/bin/basharray_brand=([1]=huawei [2]=apple [3]=xiaomi [4]=honor)
array_color=([1]=green [2]=red [3]=white [4]=black)
array_price=([1]=5000 [2]=4899 [3]=2899 [4]=8999)function rand(){min=$1max=$(($2-$min+1))num=$(date +%s%N)echo $(($num%$max+$min))  
}for i in `seq 1 100000`
donum=$(rand 1 4)brand=${array_brand[$num]}color=${array_color[$num]}price=${array_price[$num]}echo "$i,$brand,$color,$price"
done#执行sh makedata.sh >> hbaseSourceData.txt开始造数据

在linux上的大小为2.2M

转换成hbase能够识别的HFile文件

  • 上传至hdfs
sudo -u hdfs hadoop fs -put hbaseSourceData.txt /tmp/
  •  转换为HFile,表不存在的话会自动创建
hbase  org.apache.hadoop.hbase.mapreduce.ImportTsv -Dimporttsv.separator=, -Dimporttsv.columns='HBASE_ROW_KEY,cf:brand,cf:color,cf:price' -Dimporttsv.bulk.output=/tmp/output default:mysqltest /tmp/hbaseSourceData.txt

有点出乎所料,转成HFile竟然需要11.5M的存储,到这里应该就可以看出在hbase存储时的存储空间是多少了,因为hbase就是以HFile的方式存的,不过本着严谨的态度,一条道走到黑,不撞南墙不回头

导入HFile到hbase中

hbase org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles /tmp/output/  default:mysqltest

执行过程虽然有点小报错,但是数据还是进去了

查看hbase存储大小,不出所料,就是HFile的大小

 ok,接下来导入到mysql中

导入数据到Mysql

#创建mysql对应的表
create table `testhbase`(`rowkey` int,`name` varchar(200),`color` varchar(200),`price` int);
#在mysql交互窗口执行,导入数据
load data local infile '/hbaseSourceData.txt' into table testhbase fields terminated by ',' (rowkey,name,color,price);
#查询表占用的存储空间
select concat(round(sum(DATA_LENGTH/1024/1024),2),'MB') as data  from information_schema.TABLES where table_schema = 'test' and table_name='testhbase';

总结

linux:2.2M

Hbase:11.5M

Mysql:5.52M


http://www.ppmy.cn/news/2632.html

相关文章

C语言第二十课:实用调试技巧

目录 前言: 一、Bug: 二、调试: 1.调试是什么: 2.调试的基本步骤: 3. Debug 与 Release : 三、在Windows环境下进行调试: 1.调试环境的准备: 2.调试的快捷键: 3.调试…

javascript基础小结(一)

今天突发奇想,想要垂直精学一段时间的javascript,用我的第一次「连载」来记录总结一些知识点吧。 知识点 原始类型的类型转换 类型转换 alert 会自动将任何值都转换为字符串以进行显示。算术运算符会将值转换为数字常用的类型转换:转换为 …

Privacy

For information collected and further processed under this Privacy Policy, the data controller is Toy Games. Toy Games Ltd (“Toy Games”, “owner”, “us”, “our” or “we”) is dedicated to protecting the privacy rights of our games and other services …

C语言——内存中数据存储的详解(整型与浮点型)

文章目录1.数据类型的详细介绍1.1数据类型介绍1.2类型的基本归类整型类型浮点类型构造类型指针类型空类型2.整型在内存中的存储2.1原码、反码、补码2.2大小端存储大小端存储存在的意义编写一个程序判断当前机器的存储方式是大端存储还是小端存储2.3经典习题练习一练习二练习三c…

ucore的makefile学习-以实际例子来展示

使用lab1_result目录 执行的命令为 make mytest代码均添加在 listf include tools/function.mk后面一行。 mytest:echo $(call listf,./libs,c)结果 ./libs/string.c ./libs/printfmt.c toobj mytest:echo $(call toobj,a.c,hello)输出 obj/hello/a.o todep 跟toobj相似…

Python环境搭建

将向大家介绍如何在本地搭建Python开发环境。 Python可应用于多平台包括 Linux 和 Mac OS X。 你可以通过终端窗口输入 "python" 命令来查看本地是否已经安装Python以及Python的安装版本。 Unix (Solaris, Linux, FreeBSD, AIX, HP/UX, SunOS, IRIX, 等等。) W…

Android实现车辆检测(含Android源码 可实时运行)

Android实现车辆检测(含Android源码 可实时运行) 目录 Android实现车辆检测(含Android源码 可实时运行) 1. 前言 2. 车辆检测数据集说明 3. 基于YOLOv5的车辆检测模型训练 4.车辆检测模型Android部署 (1) 将Pytorch模型转换ONNX模型 &#xff08…

Python 常见单词-集合

为了方便大家更好的入门 Python 学习,已经整理好了 Python 语言入门常见 的英文单词,词汇量不大,大概百十来个,多敲多练,预估两周左右可以熟记!大家 加油噢~ 一、交互式环境与 print 输出 1、print&#x…