phoenix建表映射有命名空间的hbase表

本文详细介绍了如何在Phoenix中启用与HBase命名空间的映射,包括配置hbase-site.xml,创建命名空间及表,以及通过视图和表进行数据映射的方法。演示了从创建命名空间到数据读写的完整流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.先开启schema与namespace的对应关系
在phoenix中与hbase的命名空间相对应的是schema概念,默认是没有开启的,需要在hbase的hbase-site.xml中增加以下配置项

<property>
  <name>phoenix.schema.isNamespaceMappingEnabled</name>
  <value>true</value>
</property>
<property>
  <name>phoenix.schema.mapSystemTablesToNamespace</name>
  <value>true</value>
</property>

如果你是用apache原生框架搭的集群,只能去每台集群的hbase目录下手动修改了,要是搭建的cdh集群,则可以在cloudera manager界面去修改,需要把hbase的服务端和客户端都改一下。
在这里插入图片描述
2.hbase中建有命名空间的表

create_namespace 'ns_weibo'
create 'ns_weibo:content','info'
put 'ns_weibo:content','1002_1597824006872','info:content','哦,我的上帝,我要踢爆他的屁股'
put 'ns_weibo:content','1002_1597824007229','info:content',',我的上帝,我还要踢爆他的屁股'
put 'ns_weibo:content','1002_1597824007311','info:content','哦,我的上帝,我非要踢爆他的屁股'
put 'ns_weibo:content','1003_1597824007386','info:content','哦,我的上帝,我也要踢爆他的屁股'

scan 'ns_weibo:content'

在这里插入图片描述
3.phoenix映射操作:
首先创建与命名空间对应的schema,如果不创建的话,会报错"Schema does not exist schemaName=binlog (state=43M05,code=722)"
在这里插入图片描述

CREATE SCHEMA IF NOT EXISTS "ns_weibo";

映射视图或者表只能创建其中一个,不能同时创建
映射视图view。视图只是供查询操作,不能修改数据,当删除视图的时候,对hbase中的源表不会有影响

CREATE VIEW IF NOT EXISTS "ns_weibo"."content" (
	"ROW" VARCHAR NOT NULL PRIMARY KEY,
	"info"."content" VARCHAR
)

映射表,表可以查询以及修改数据,当删除表的时候,hbase中的源数据表也会被删除(view无法upsert,table可以upsert)

CREATE TABLE IF NOT EXISTS "ns_weibo"."content" (
	"ROW" VARCHAR NOT NULL PRIMARY KEY,
	"info"."content" VARCHAR
) column_encoded_bytes=0;--禁用列映射

在这里插入图片描述
映射完成

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值