前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >HBase数据操作

HBase数据操作

作者头像
用户9615083
发布2022-12-25 14:41:08
1.8K0
发布2022-12-25 14:41:08
举报
文章被收录于专栏:Java后端开发博客

# HBase数据操作

01
01

# put

  • 语法
代码语言:javascript
复制
put  '表名','行键','列族:列限定符','单元格值',时间戳
  • 描述
    • 必须指定表名、行键、列族、列限定符
    • 列族必须是已经创建的,否则HBase会报错
    • 列名是临时定义的,所以列族里的列是可以随意扩展的
    • 时间戳是可选参数,如不设置,则系统会自动插入当前时间为时间戳
    • 参数区分大小写,字符串使用单引号
    • 只能插入单个数据
02
02
  • 描述:如果指定的单元格已经存在,则put操作为更新数据;
    • 单元格会保存指定VERSIONS=>n的多个版本数据
03
03

# delete

  • 语法
代码语言:javascript
复制
delete  '表名','行键','列族<:列限定符>',<时间戳>
  • 描述:必须指定表名、行键和列族,列限定符和时间戳是可选参数;
    • delete最小删除粒度为单元格,且不能跨列族删除
04
04

注意

delete操作并不会马上删除数据,只是将对应的数据打上删除标记,只有在数据产生合并时,数据才会被删除。

# 数据查询

# get

  • 语法
代码语言:javascript
复制
get  '表名','行键',<'列族:列限定符',时间戳>

get 'student','001' get 'student','001',{COLUMN=>'Grades'}

05
05

get 'student','001' ,{COLUMN=>'Grades',TIMERANGE => [1,2]} get 'student','001' ,{COLUMN=>'StuInfo',VERSIONS=>2}

hbase(main):020:0> put 'student', '001', 'StuInfo:Name','jim green',2 0 row(s) in 0.0140 seconds hbase(main):021:0> put 'student', '001', 'StuInfo:Name','jerry',3 0 row(s) in 0.0140 seconds hbase(main):022:0> put 'student', '001', 'StuInfo:Name','curry',4 0 row(s) in 0.0690 seconds hbase(main):023:0> get 'student','001',{COLUMN => 'StuInfo',VERSIONS => 2} COLUMN CELL StuInfo:Age timestamp=1541039335956, value=18 StuInfo:Name timestamp=4, value=curry StuInfo:Name timestamp=3, value=jerry StuInfo:Sex timestamp=1541039336280, value=Male 4 row(s) in 0.0240 seconds

# scan

  • 语法
代码语言:javascript
复制
scan  '表名',{< '列族:列限定符',时间戳>}
  1. 扫描全表:scan '表名'
  2. 指定列族名称:

scan 'student', {COLUMN=>'stuinfo'}

  1. 指定列族和列的名称

scan 'student', {COLUMN=>'stuInfo:Name'}

  1. 指定输出行数

scan 'student', {LIMIT => 1}

  1. 指定输出行键范围

scan 'student', {STARTROW =>'001',ENDROW => '003'}

  1. 指定组合条件查询

scan 'student', {COLUMN=>'stuinfo',STARTROW =>'001',ENDROW => '002'}

# 数据统计

  • 语法
代码语言:javascript
复制
count  '表名'

hbase(main):004:0> count ‘student’ 3 row(s) in 0.0440 seconds

在关系型数据库中,有多少条记录就有多少行,表中的行数很容易统计。而在 HBase 里,计算逻辑行需要扫描全表的内容,重复的行键是不纳入计数的,且标记为删除的数据也不纳入计数。

执行 count 命令其实是一个开销较大的进程,特别是应用在大数据场景时,可能需要持续很长时间,因此,用户一般会结合 Hadoop 的 MapReduce 架构来进行分布式的扫描计数。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-03-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • # HBase数据操作
    • # put
      • # delete
        • # 数据查询
          • # get
          • # scan
        • # 数据统计
        相关产品与服务
        TDSQL MySQL 版
        TDSQL MySQL 版(TDSQL for MySQL)是腾讯打造的一款分布式数据库产品,具备强一致高可用、全球部署架构、分布式水平扩展、高性能、企业级安全等特性,同时提供智能 DBA、自动化运营、监控告警等配套设施,为客户提供完整的分布式数据库解决方案。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档