`
yeshaoting
  • 浏览: 684151 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

HBASE一些简单的查询语句

 
阅读更多

 

HBASE一些简单的查询语句

http://blog.csdn.net/sustbeckham/article/details/6631790

 

 这里我们用一个学生成绩表作为例子,对HBase的基本操作和基本概念进行讲解:

 

下面是学生的成绩表:

name grad      course:math   course:art

Tom    1                87                    97

 

Jerry   2            100                  80

 

        这里grad对于表来说是一个列,course对于表来说是一个列族,这个列族由两个列组成:math和art,当然我们可以根据我们的需要在course中建立更多的列族,如computer,physics等相应的列添加入course列族.

 

        有了上面的想法和需求,我们就可以在HBase中建立相应的数据表啦!

 

1, 建立一个表格 scores 具有两个列族grad 和courese

 

hbase(main):002:0> create 'scores', 'grade', 'course'

 

0 row(s) in 4.1610 seconds

 

2,查看当先HBase中具有哪些表

 

hbase(main):003:0> list

 

scores

 

1 row(s) in 0.0210 seconds

 

3,查看表的构造

 

hbase(main):004:0> describe 'scores'

 

{NAME => 'scores', IS_ROOT => 'false', IS_META => 'false', FAMILIES => [{NAME => 'course', BLOOMFILTER => 'false', IN_MEMORY => 'false', LENGTH => '2147483647', BLOCKCACHE => 'false', VERSIONS => '3', TTL => '-1', COMPRESSION => 'NONE'}, {NAME => 'grade', BLOOMFILTER => 'false', IN_MEMORY => 'false', LENGTH => '2147483647', BLOCKCACHE => 'false', VERSIONS => '3', TTL => '-1', COMPRESSION => 'NONE'}]}

 

1 row(s) in 0.0130 seconds

 

4, 加入一行数据,行名称为 Tom 列族grad的列名为”” 值位1

 

hbase(main):005:0> put 'scores', 'Tom', 'grade:', '1'

 

0 row(s) in 0.0070 seconds

 

5,给Tom这一行的数据的列族添加一列 <math,87>

 

hbase(main):006:0> put 'scores', 'Tom', 'course:math', '87'

 

0 row(s) in 0.0040 seconds

 

6,给Tom这一行的数据的列族添加一列 <art,97>

 

hbase(main):007:0> put 'scores', 'Tom', 'course:art', '97'

 

0 row(s) in 0.0030 seconds

 

7, 加入一行数据,行名称为 Jerry 列族grad的列名为”” 值位2

 

hbase(main):008:0> put 'scores', 'Jerry', 'grade:', '2'

 

0 row(s) in 0.0040 seconds

 

8,给Jerry这一行的数据的列族添加一列 <math,100>

 

hbase(main):009:0> put 'scores', 'Jerry', 'course:math', '100'

 

0 row(s) in 0.0030 seconds

 

9,给Jerry这一行的数据的列族添加一列 <art,80>

 

hbase(main):010:0> put 'scores', 'Jerry', 'course:art', '80'

 

0 row(s) in 0.0050 seconds

 

10,查看scores表中Tom的相关数据

 

hbase(main):011:0> get 'scores', 'Tom'

 

COLUMN                       CELL

 

course:art                  timestamp=1224726394286, value=97

 

course:math                 timestamp=1224726377027, value=87

 

grade:                      timestamp=1224726360727, value=1

 

3 row(s) in 0.0070 seconds

 

11,查看scores表中所有数据

 

hbase(main):012:0> scan 'scores'

 

ROW                          COLUMN+CELL

 

Tom                         column=course:art, timestamp=1224726394286, value=97

 

Tom                         column=course:math, timestamp=1224726377027, value=87

 

Tom                         column=grade:, timestamp=1224726360727, value=1

 

Jerry                        column=course:art, timestamp=1224726424967, value=80

 

Jerry                        column=course:math, timestamp=1224726416145, value=100

 

Jerry                        column=grade:, timestamp=1224726404965, value=2

 

6 row(s) in 0.0410 seconds

 

12,查看scores表中所有数据courses列族的所有数据

 

hbase(main):013:0> scan 'scores', ['course:']

 

ROW                          COLUMN+CELL

 

Tom                         column=course:art, timestamp=1224726394286, value=97

 

Tom                         column=course:math, timestamp=1224726377027, value=87

 

Jerry                        column=course:art, timestamp=1224726424967, value=80

 

Jerry                        column=course:math, timestamp=1224726416145, value=100

 

4 row(s) in 0.0200 seconds

 

        上面就是HBase的基本shell操作的一个例子,可以看出,hbase的shell还是比较简单易用的,从中也可以看出HBase shell缺少很多传统sql中的一些类似于like等相关操作,当然,HBase作为BigTable的一个开源实现,而BigTable是作为 google业务的支持模型,很多sql语句中的一些东西可能还真的不需要.

 

分享到:
评论

相关推荐

    hbase用于查询客户端工具

    以下是一些主要的HBase查询客户端工具及其详细说明: 1. **HBase Shell**:这是HBase自带的一个命令行接口,用户可以通过Java REPL(Read-Eval-Print Loop)与HBase交互。HBase Shell提供了创建表、删除表、插入...

    基于Mysql的表转HBase小Demo

    本示例“基于Mysql的表转HBase小Demo”提供了一个简单的解决方案,将Mysql中的数据转换并存储到HBase这种分布式列式数据库中。这个过程对于那些希望从传统的关系型数据库迁移到NoSQL数据库,尤其是对大规模数据进行...

    使用客户端squirrel client连接phoenix查询HBase数据

    假设已经成功配置并连接到了 Phoenix/HBase,接下来可以尝试执行一些简单的 SQL 查询来验证连接的有效性。例如,如果有一个名为 `sales` 的 HBase 表,可以尝试执行如下 SQL 查询: ```sql SELECT * FROM sales ...

    HBase轻量级中间件simplehbase.zip

     动态query封装:类似于myibatis,可以使用xml配置动态语句查询hbase。    insert,update支持: 建立在hbase的checkAndPut之上。    hbase多版本支持:提供接口可以对hbase多版本数据进行查询,映射。 ...

    浅谈Hive vs. HBase

    - **查询能力**:Hive 支持复杂的查询语句,而 HBase 支持简单的键值查询。 - **应用场景**:Hive 更适合批处理任务,而 HBase 更适合实时查询。 综上所述,Hive 和 HBase 在 Hadoop 生态系统中扮演着不同的角色,...

    hbase-sql:通过sql来查询hbase上的数据

    为了兼容以前从关系型数据库中查询数据的接口, 让hbase可以通过sql语句来查询其中的数据. hive有这样的功能, 他支持通过类似sql语句的语法来操作hbase中的数据, 但是速度太慢了, 因为hive本身就不是用来查询数据的, ...

    Hadoop之Hbase从入门到精通

    6. **Hive**:尽管当前版本的Hive不直接支持HBase,但即将发布的版本(0.7.0)将支持这一特性,使得用户可以通过类SQL语句访问HBase。 #### HBase数据模型 HBase采用了独特的数据模型设计,主要包括以下几个方面:...

    hbase phoenix sql

    用户可以通过各种SQL客户端工具(如SQuirrel SQL客户端)来连接HBase服务器,并使用标准的SQL语句来操作数据。 总而言之,Apache Phoenix提供了一个轻量级的SQL层,为那些熟悉关系型数据库概念的开发者们提供了一个...

    spring-boot-starter-hbase自定义的spring-boot的hbasestarter

    此外,`spring-boot-starter-hbase`还提供了对HBase的查询语句进行封装,比如RowKey的构造、Scan和Get操作的简化,使得查询更加直观且易于理解。例如,通过简单的API调用,就可以实现基于行键的单行查询、多行查询,...

    java代码将mysql表数据导入HBase表

    可以使用如下SQL语句创建表: ```sql CREATE TABLE users ( id INT PRIMARY KEY, name VARCHAR(255), email VARCHAR(255), registration_date DATE ); ``` 接着,我们填充一些测试数据: ```sql INSERT INTO ...

    phoenix-hbase-1.4-4.16.1-bin

    这种模式使得开发者无需直接编写HBase的Java代码,而是通过SQL语句即可操作数据。Phoenix支持标准的SQL语法,包括SELECT、JOIN、GROUP BY、ORDER BY等,使得数据分析更加灵活。 其次,安装和配置"phoenix-hbase-1.4...

    hive 整合 hbase

    Hive是基于Hadoop的数据仓库工具,它可以将结构化的数据文件映射为一张数据库表,并提供简单的SQL查询功能,允许用户使用SQL语句来查询存储在Hadoop中的大规模数据集。 - **特性:** - **SQL支持**:支持基本的SQL...

    hbase orm simplehbase v1.0

    4. **动态Query封装**:类似于MyBatis的XML配置,SimpleHbase允许开发者定义动态查询语句,可以根据不同的参数执行不同的查询逻辑,增强了代码的灵活性。 5. **Insert和Update支持**:基于HBase的checkAndPut,...

    hive和hbase整合

    Hive是建立在Hadoop上的数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的SQL查询功能,可以将SQL语句转换为MapReduce任务进行运行。而HBase则是一种分布式、可扩展的NoSQL数据库,它提供了高...

    基于Django LayUI HBase的文献数据挖掘系统.zip

    此外,Django的ORM(对象关系映射)层使得与数据库交互变得更加简单,无需编写复杂的SQL语句。 LayUI则是一款轻量级的前端框架,它的组件丰富,样式美观,易于上手。在本项目中,LayUI提供了用户界面的设计,包括...

    大数据工具篇之Hive与HBase整合完整教程

    Hive 是一种数据仓库工具,可以用来进行数据提取、转换和加载(ETL),同时提供了一种 SQL 类似的查询语言——HiveQL,使得管理大量数据变得更加简单。而 HBase 是一个分布式的、面向列的开源数据库,非常适合实时读...

    新手指导hadoop、hbase、hive版本对应关系查找表

    Hive是一个建立在Hadoop上的数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的SQL查询功能(HiveQL),可以将SQL语句转换为MapReduce任务进行运行。 对于不同版本的Hadoop、HBase和Hive,它们...

    基于HBase的client API设计的一款SQL查询器,专为简化HBase原生API的使用而打造

    HydraQL`是基于HBase的client API设计的一款SQL查询器,专为简化HBase原生...通过使用SQL语法或更精简的API,用户可以通过简单的查询语句访问和操作HBase中的数据,而无需深入了解和编写复杂的`hbase-client`API调用。

    Scaling Up HBase Hive Pegasus

    Bigtable是Google用于存储结构化数据的分布式存储系统,而HBase就是模仿Bigtable,试图“修正”GFS和MapReduce在随机访问方面的一些不足。 6. HBase的内部工作原理:HBase采用列式存储模型,以列族为基本单位进行...

Global site tag (gtag.js) - Google Analytics