用《王者荣耀》游戏玩家信息管理操作教会使用hbase
一、任务描述
主要使用HBase shell的方式实现对王者荣耀游戏玩家信息表的操作,包括表的创建、删除及数据的插入、查询等操作。
二、了解并使用DDL操作创建王者荣耀玩家信息表
HBase Shell常用DDL(数据定义语言)命令
HBase Shell命令 | 功能描述 |
---|---|
list | 列出HBase中的所有表 |
create | 创建一张表 |
describe | 列出表的详细信息 |
alter | 修改表的列族 |
disable | 禁用表,使表无效 |
enable | 启用表,使表有效 |
drop | 删除表 |
exists | 判断表是否存在 |
2.1下面我们创建王者荣耀玩家信息表
hbase(main):003:0> create 'gamer',{NAME => 'personalInfo',VERSIONS => 1},{NAME => 'recordInfo',VERSIONS =>1},{NAME =>'assetsInfo',VERSIONS=>1}
0 row(s) in 1.3930 seconds=> Hbase::Table - gamer
hbase(main):004:0> list
TABLE
gamer
1 row(s) in 0.0150 seconds=> ["gamer"]
注意:其中列族名称必须用单引号括起来,即NAME后的部分,如果有多个列族,应该以逗号分隔,每个列族单独用{}括起来。指定列族参数的格式为参数名=>参数值"=>"是赋值符号,参数名必须大写!
同时,创建gamer表的代码可以进行简化:
create 'gamer','personalInfo','recordInfo','assetsInfo'
2.2查看表的详细信息
describe 'gamer'
出现Table gamer is ENABLED即可,在结果里可以查看表中的 列族信息,下面我们用一张表格来介绍一下列族描述信息含义。
列族描述 | 可选值 | 含义 |
---|---|---|
NAME | 可打印的字符串 | 列族名称,参考ASCII码 |
BLOOMFILTER | NONE((默认)|ROWCOL|ROW | 提高随机读的性能 |
VERSION | 数字 | 列族中单元时间版本最大数量 |
IN_MEMORY | true|false(默认) | 使得列族在缓存中拥有更高优先级 |
KEEP_DELETED_CELLS | TRUE|FALSE(默认) | 启用后可以避免被标记为删除的单元从HBase中删除 |
DATA_BLOCK_ENCODING | NONE(默认) | 数据库编码 |
TTL | 默认FOREVER | 单元时间版本超时时间,可指定多长时间(秒)后失效 |
COMPRESSION | NONE(默认)|LZO|SNAPPY|GZIP | 压缩算法 |
MIN_VERSIONS | 数字 | 列族中单元时间版本最小数量 |
BLOCKCACHE | true|false,默认true | 是否将数据放入读缓存 |
BLOCKSIZE | 默认65536字节 | 数据块大小,数据块越小,索引越大 |
REPLICATION_SCOPE | 默认0 | 开启复制功能 |
2.3修改表的列族信息
alter命令可以为表增加或修改列族
示例:将gamer表中的personalInfo列族的TTL(用于限定数据的超时时间)信息设置为180天(15552000秒)
alter 'gamer',{NAME=>'recordInfo',TTL=>'15552000'}
再查看表的信息后会发现TTL已经设置成15552000秒
2.4删除表
使用drop命令进行删除操作。当表为enabled时会被禁止删除,只有当我们将表设置为disabled状态时才可以删除
disable 'gamer'
禁用完后,可以使用is_disabled命令查看是否被禁用,true标识则表示已经被禁用
使用enable命令重新启用表
删除表
drop 'gamer'
查看表是否已经存在
exists 'gamer'
三、了解并使用DML操作王者荣耀玩家信息表
我们先来了解一下HBase Shell中的常用DML命令
HBase Shell命令 | 功能描述 |
---|---|
put | 向指定的单元添加值 |
scan | 通过扫描表来获取数据 |
get | 通过行或者单元的值 |
count | 统计表中行的数量,一个行键为一行 |
delete | 删除指定对象的值 |
deleteall | 删除整行 |
truncate | 清空表的数据 |
3.1添加数据
使用put命令向表中添加数据
命令:
put
,, family:qualifier,,
示例:向王者荣耀游戏玩家信息表gamer中添加数据
put 'gamer','row-0001','personalInfo:nickname','QGhappy.junjie'
示例演示的是给gamer表行键(Row Key)为row-0001的personalInfo列族中添加了列nickname,单元值为QGhappy.junjie,下面我们写一下完整代码
put 'gamer','row-0001','personalInfo:nickname','QGhappy.junjie'put 'gamer','row-0001','recordInfo:ranking','one'put 'gamer','row-0001','assetsInfo:integral','王者500星'put 'gamer','row-0001','personalInfo:gameId','01'
注意:同一个列族中可以添加多个列
put 'gamer','row-0002','personalInfo:nickname','XQMaster'put 'gamer','row-0002','recordInfo:ranking','two'put 'gamer','row-0002','assetsInfo:integral','王者499星'put 'gamer','row-0002','personalInfo:gameId','02'
3.2查询数据
命令
scan
,{COLUMNS=>[ family:qualifier,…],LIMIT=>num}
其中,大括号的内容为扫描条件,如果不指定就查询所有数据
示例:扫描gamer表中的数据
scan 'gamer'
扫描列族数据
scan 'gamer',{COLUMNS=>'personalInfo'}
扫描列键数据
scan 'gamer',{COLUMNS=>['personalInfo:nickname']}
3.3get获取数据
get命令用于获取行的所有单元或者指定的单元
命令
get ‘表名称’,‘行键’,{COLUMNS=>[‘列祖名1’,‘列族名2’,…],参数名=>参数值…}
get ‘表名称’,‘行键’,{COLUMN=>[‘列键1’,‘列键2’,…],参数名=>参数值…}
get查找的目标是某行的某个列族、列键
scan查找的目标是全表的某个列族、列键
示例:查找行键为row-0001的所有单元
get 'gamer','row-0001'
查找行键‘rw-0001’,列键为‘personalInfo:nickname’的单元
get 'gamer','row-0001',{COLUMN=>'personalInfo:nickname'}
查找行键为‘rw-0001’,列族为‘personalInfo’的单元
get 'gamer','row-0001',{COLUMNS=>'personalInfo'}
3.4删除数据
1.使用delete命令删除数据库中的一个单元
命令
delete‘表名称‘,’行键‘,’列键’
删除表中行键为“row-0001”,列族为personalInfo的所有单元
delete 'gamer','row-0001','personalInfo'
删除完毕后,使用get命令查看是否已经删除成功
2.使用deleteall命令删除一行
删除行键为row-0001的一行数据
deleteall 'gamer','row-0001'
再通过get命令查看是否已经删除成功
3.5清空表中数据
使用truncate命令可以删除表中的所有数据
命令:
truncate ‘表名称’
清空gamer表中的所有数据:
truncate 'gamer'
再使用scan命令验证删除清空数据是否成功
用《王者荣耀》游戏玩家信息管理操作教会使用hbase相关推荐
- 实验4·使用HBase Shell完成《王者荣耀》玩家信息管理
实验4·使用HBase Shell完成<王者荣耀>玩家信息管理 1 实验目的 2 实验平台 3 实验内容和要求 1 实验目的 回顾HBase的基础理论知识: 熟悉HBase的基础操作: 熟 ...
- 王者荣耀服务器能不能注销,王者荣耀游戏账号能永久注销吗 永久删除后还能恢复吗...
根据微博用户@手游娘 的爆料,<王者荣耀>安卓体验服新增了游戏账号注销功能,用户可以根据实际需要永久删除账号. 跟其他互联网账号的注销规则一样,王者荣耀账号注销之后不可恢复,玩家操作需要谨 ...
- 王者荣耀服务器维护中有什么漏洞,王者荣耀:玩家发现新漏洞,趁天美没修复,快试试...
原标题:王者荣耀:玩家发现新漏洞,趁天美没修复,快试试 在王者荣耀这款游戏中,当游戏中出现一些bug之后,是一件让玩家们又喜又恨的事情,之所以喜,是因为当这些bug出现之后,我们可以在游戏中体验到平时 ...
- 【源码+图片素材】Java王者荣耀游戏开发_开发Java游戏项目【王者荣耀】1天搞定!!!腾讯游戏_Java课程设计_Java实战项目_Java初级项目
王者荣耀是当下热门手游之一,小伙伴们是否想过如何制作一款属于自己的王者荣耀游戏呢? 本课程讲解了一个王者荣耀游戏的详细编写流程,即使你是刚入门Java的新手,只要你简单掌握了该游戏所需要的JavaSE ...
- (Java)2021年最新-王者荣耀游戏开发
<王者荣耀>是由腾讯游戏天美工作室群开发并运行的一款运营在Android.IOS.NS平台上的MOBA类国产手游,于2015年11月26日在Android.iOS平台上正式公测. 王者荣耀 ...
- 王者荣耀微信查看服务器地址大全,王者荣耀游戏账号在哪里查看微信
王者荣耀怎么切换微信账号和qq账号? 1.右上角有一个系统设置,点进去. 2.点右下角,退出账号. 3.就回到开始打开游戏的界面,点右上角,注销.就可以登入另一个账号了. 4.如果刚打开游戏,在开始界 ...
- 持久化技术——游戏玩家信息管理(基于 SQLite)
如果对SQLite还有疑惑(・∀・(・∀・(・∀・*) 不妨先阅读一下之前的一篇文章 https://blog.csdn.net/nishigesb123/article/details/892027 ...
- 手把手教Java初学者制作一个王者荣耀游戏,1天就能学会。
刚入门的java初学者,在学会一定项目后,都想先做一款游戏来练练手,来看看自己的知识掌握的怎么样了,那有的初学者并不知道可以做哪些项目,和不知道自己能做什么项目,现在小编就带大家来一起看看Java开发 ...
- 提取王者荣耀游戏语音文件
手机安装Android版王者荣耀游戏,使用手机文件管理器打开路径 Android/data/com.tencent.tmgp.sgame/files/Resources/Sound/Android 将 ...
最新文章
- 插入排序(c++实现)
- pr如何处理音效_Pr基础全通关:从0到1,进阶剪辑大神
- 安卓手机管理器_@你,请查收这款最强的安卓文件管理器
- ElasticSearch集群部署【windows+Linux双系统搭建】
- 【AtCoder】AGC034
- C++实现线程安全的单例模式
- JDK 8 新特性 之 函数接口
- LVS:三种负载均衡方式与八种均衡算法
- linux 日志面试题,Linux运维 | 面试题
- JVM学习-直接内存
- eclips常用快捷键
- quartus仿真系列1:74163的计数功能
- gdiPlus 显示图片缩放不正确的可能解决方案
- movielens电影数据分析
- 生信文献学习(part1)--PRECISE: a ... approach to transfer predictors of drug response from pre-clinical ...
- 小程序发布上线流程_微信小程序发布流程:公司、个人如何注册小程序
- win10 Xshell 中文无法输入问题
- Fibonacci 数列和 Lucas 数列的性质、推论及其证明
- Python下载文件的方式
- 虾皮shopee根据关键词取商品列表 API