python生成hbase测试数据说明
版本:
Python:3.6.4 与 2.7.3 均适配
一、hbase表介绍
- 表名:people
- 列族:basic_info、other_info
- rowkey:随机的两位数 + 当前时间戳,并要确保该rowkey在表数据中唯一。
- 列定义:name、age、sex、edu、tel、email、country。
二、实现
rowkey:
- 随机的两位数:使用random.randint(00, 99),然后使用 zfill(2) 补位,比如数字“1”补位为”01”。
- 生成当前时间的13位时间戳:int(time.time())
- rowkey为 随机的两位数 与 时间戳 拼凑而成,并确保rowkey唯一。
name:
- 使用 string.capwords() 将字符串首字母大写,其余字母小写。
- 使用 random.sample() 截取指定位数的任意字符串 作为 name
age:
- random.randint(18, 60) :18 ~ 60岁
sex:
- random.choice()
edu:
- random.choice()
telphone:
- random.choice() 与 random.sample() 的联合使用
email:
- random.sample() 与 random.choice() 的联合使用
country:
- random.choice()
三、代码
以下为 python 生成 hbase 测试数据的全部代码,generatedata.py 文件内容如下:
1 | # -- coding: utf-8 -- |
输出 100000 条数据到 /tmp/hbase_data.txt 文件中,执行以下命令:
1 | python generatedata.py /tmp/hbase_data.txt 100000 |
参数解释:
- 要执行的 python 文件:generatedata.py
- 文件输出路径:/tmp/hbase_data.txt
- 100000:要生成数据的总数量
为避免数据过大导致热点和数据倾斜问题,预先设置 HBase 表为10个 Region,对应表的创建命令为:
1 | create 'default:people', {NAME=>'basic_info'}, {NAME=>'other_info'}, SPLITS=>['10|','20|','30|','40|','50|','60|','70|','80|','90|'] |
接下来我们可以利用这份测试数据对 HBase 相关功能进行测试与练习。
点关注,不迷路
好了各位,以上就是这篇文章的全部内容了,能看到这里的人呀,都是人才。
白嫖不好,创作不易。各位的支持和认可,就是我创作的最大动力,我们下篇文章见!
如果本篇博客有任何错误,请批评指教,不胜感激 !
原文作者: create17
原文链接: https://841809077.github.io/2019/06/03/HBase/python-generate-hbase-data.html
版权声明: 转载请注明出处(码字不易,请保留作者署名及链接,谢谢配合!)