phoenix表操作

phoenix表操作

官网 :https://phoenix.apache.org/language/index.html#upsert_select

进入命令行,这是sqlline.py 配置到path环境变量的情况下

sqlline.py localhost
例如:phoenix-sqlline.py xxxxxxxxxx:2181
如果要退出命令行:!q 或者 !quit

创建表

CREATE TABLE IF NOT EXISTS us_population (
      state CHAR(2) NOT NULL,
      city VARCHAR NOT NULL,
      population BIGINT
      CONSTRAINT my_pk PRIMARY KEY (state, city));

插入数据

UPSERT INTO us_population (state, city, population) values ('NY','New York',8143197);
UPSERT INTO us_population (state, city, population) values ('CA','Los Angeles',3844829);

在phoenix中,默认情况下,表名等会自动转换为大写,若要小写,使用双引号,如"us_population"。

显示所有表

!tables

phoenix表映射

  默认情况下,直接在hbase中创建的表,通过phoenix是查看不到的,

US_POPULATION是在phoenix中直接创建的,而test是在hbase中直接创建的,默认情况下,在phoenix中是查看不到test的。

在这里插入图片描述

如果需要在phoenix中操作直接在hbase中创建的表,则需要在phoenix中进行表的映射。映射方式有两种:视图映射和表映射。

hbase 中test的表结构如下,两个列簇name、company.
在这里插入图片描述

hbase命令行中创建表

$ cd /home/hadoop/hbase/bin

$ ./hbase shell 进入hbase命令行

   create 'test','name','company' 创建表,如下图

在这里插入图片描述

视图映射(不推荐)

Phoenix创建的视图是只读的,所以只能用来做查询,无法通过视图对源数据进行修改等操作。而且相比于直接创建映射表,视图的查询效率会低,原因是:创建映射表的时候,Phoenix会在表中创建一些空的键值对,这些空键值对的存在可以用来提高查询效率。

   1)创建视图
create view"test"(empid varchar primarykey,"name"."firstname" varchar,"name"."lastname"varchar,"company"."name"     varchar,"company"."address"varchar);
   2)删除视图
   drop view "test";

表映射

使用Apache Phoenix创建对HBase的表映射,有两种方法:

1) 当HBase中表已存在,创建同名表和结构即可

2)当HBase中不存在,可以直接使用create table指令创建需要的表,并且在创建指令中可以根据需要对HBase表结构进行显示的说明。

第1)种情况下,如在之前的基础上已经存在了表,则表映射的语句如下:
create table "HBASE_BMDA5"("SS5"  varchar primary key ,
"info"."NodeType"  INTEGER  ,
"info"."NodeName"  varchar,
"info"."IsWarehouse"  INTEGER,
"info"."IsAssetUser"  INTEGER);

ps1.主键可以任意指定字符串,不可加列族在前,
如::: “SS” varchar primary key (正确),  “info”.“SS” varchar primary key(错误)

ps2:如果phoenix里同时存在"TEST"表,和"test"表,如果要查小写的“test表,表名必须加引号,即select * from “test”,如果不加引号,则算是查大写的TEST表
ps3.类型

 View Code

然后数据就直接有了.

使用create table创建的关联表,如果对表进行了修改,源数据也会改变,同时如果关联表被删除,源表也会被删除。但是视图就不会,如果删除视图,源数据不会发生改变。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值