一、任务描述

主要使用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相关推荐

  1. 实验4·使用HBase Shell完成《王者荣耀》玩家信息管理

    实验4·使用HBase Shell完成<王者荣耀>玩家信息管理 1 实验目的 2 实验平台 3 实验内容和要求 1 实验目的 回顾HBase的基础理论知识: 熟悉HBase的基础操作: 熟 ...

  2. 王者荣耀服务器能不能注销,王者荣耀游戏账号能永久注销吗 永久删除后还能恢复吗...

    根据微博用户@手游娘 的爆料,<王者荣耀>安卓体验服新增了游戏账号注销功能,用户可以根据实际需要永久删除账号. 跟其他互联网账号的注销规则一样,王者荣耀账号注销之后不可恢复,玩家操作需要谨 ...

  3. 王者荣耀服务器维护中有什么漏洞,王者荣耀:玩家发现新漏洞,趁天美没修复,快试试...

    原标题:王者荣耀:玩家发现新漏洞,趁天美没修复,快试试 在王者荣耀这款游戏中,当游戏中出现一些bug之后,是一件让玩家们又喜又恨的事情,之所以喜,是因为当这些bug出现之后,我们可以在游戏中体验到平时 ...

  4. 【源码+图片素材】Java王者荣耀游戏开发_开发Java游戏项目【王者荣耀】1天搞定!!!腾讯游戏_Java课程设计_Java实战项目_Java初级项目

    王者荣耀是当下热门手游之一,小伙伴们是否想过如何制作一款属于自己的王者荣耀游戏呢? 本课程讲解了一个王者荣耀游戏的详细编写流程,即使你是刚入门Java的新手,只要你简单掌握了该游戏所需要的JavaSE ...

  5. (Java)2021年最新-王者荣耀游戏开发

    <王者荣耀>是由腾讯游戏天美工作室群开发并运行的一款运营在Android.IOS.NS平台上的MOBA类国产手游,于2015年11月26日在Android.iOS平台上正式公测. 王者荣耀 ...

  6. 王者荣耀微信查看服务器地址大全,王者荣耀游戏账号在哪里查看微信

    王者荣耀怎么切换微信账号和qq账号? 1.右上角有一个系统设置,点进去. 2.点右下角,退出账号. 3.就回到开始打开游戏的界面,点右上角,注销.就可以登入另一个账号了. 4.如果刚打开游戏,在开始界 ...

  7. 持久化技术——游戏玩家信息管理(基于 SQLite)

    如果对SQLite还有疑惑(・∀・(・∀・(・∀・*) 不妨先阅读一下之前的一篇文章 https://blog.csdn.net/nishigesb123/article/details/892027 ...

  8. 手把手教Java初学者制作一个王者荣耀游戏,1天就能学会。

    刚入门的java初学者,在学会一定项目后,都想先做一款游戏来练练手,来看看自己的知识掌握的怎么样了,那有的初学者并不知道可以做哪些项目,和不知道自己能做什么项目,现在小编就带大家来一起看看Java开发 ...

  9. 提取王者荣耀游戏语音文件

    手机安装Android版王者荣耀游戏,使用手机文件管理器打开路径 Android/data/com.tencent.tmgp.sgame/files/Resources/Sound/Android 将 ...

最新文章

  1. 插入排序(c++实现)
  2. pr如何处理音效_Pr基础全通关:从0到1,进阶剪辑大神
  3. 安卓手机管理器_@你,请查收这款最强的安卓文件管理器
  4. ElasticSearch集群部署【windows+Linux双系统搭建】
  5. 【AtCoder】AGC034
  6. C++实现线程安全的单例模式
  7. JDK 8 新特性 之 函数接口
  8. LVS:三种负载均衡方式与八种均衡算法
  9. linux 日志面试题,Linux运维 | 面试题
  10. JVM学习-直接内存
  11. eclips常用快捷键
  12. quartus仿真系列1:74163的计数功能
  13. gdiPlus 显示图片缩放不正确的可能解决方案
  14. movielens电影数据分析
  15. 生信文献学习(part1)--PRECISE: a ... approach to transfer predictors of drug response from pre-clinical ...
  16. 小程序发布上线流程_微信小程序发布流程:公司、个人如何注册小程序
  17. win10 Xshell 中文无法输入问题
  18. Fibonacci 数列和 Lucas 数列的性质、推论及其证明
  19. Python下载文件的方式
  20. 虾皮shopee根据关键词取商品列表 API

热门文章

  1. OFDRW提供了将OFD文档导出为其他格式文档的能力,如导出为图片、SVG、PDF、文本等
  2. Linux命令之passwd命令
  3. 大卫 异星觉醒 机器人_《异星觉醒》定档 高智商外星生物惊世浩劫
  4. 小学心理健康教育主题PPT模板
  5. python通过xpath读取html指定的内容并获取该部分html代码
  6. Flink部署——高可用
  7. 更改计算机名后导致Oracle数据库打不开
  8. 电脑计算机打开没有权限管理,电脑没有权限打不开软件怎么办?
  9. umijs 框架加载mp4视频背景
  10. 【OpenCV 教程】