hbase和phoenix相关操作

一.hbase相关操作

--hbase客户端
hbase shell
--查看帮助
help
--查看命名空间
list_namespace
default
hbase
realtime_fee
--查看表
list
--查看表结构
desc 'realtime:hbase_table'
--统计表数据量
count 'realtime:hbase_table'
--查看表数据
scan 'realtime:hbase_table'

二.phoenix相关操作

--phoenix客户端
fiber-beeline phoenix
--查看帮助
!help
--查看表
!tables
--查看表结构
!describe 表名

三.phoenix与hbase的映射,只能映射hbase default空间下的表,且表名需要保持一致

hbase操作
create 'phoenix','info'
put 'phoenix','row001','info:name','phoenix'
put 'phoenix','row002','info:name','hbase'


phoenix操作
create table "phoenix"
(
"ROW" varchar primary key
,"info"."name" varchar
)
select * from "phoenix";
+---------+----------+--+
|   ROW   |   name   |
+---------+----------+--+
| row001  | phoenix  |
| row002  | hbase    |
+---------+----------+--+
2 rows selected (0.024 seconds)

--表名不一致,映射不到数据
create table "phoenix2"
(
"ROW" varchar primary key
,"info"."name" varchar
)
+------+-------+--+
| ROW  | name  |
+------+-------+--+
+------+-------+--+

四.删除Phoenix表是否会删除hbase数据?
当你通过 Apache Phoenix 删除一个表时,它会连同 HBase 中的对应表一起删除。
Phoenix 是一个构建在 HBase 之上的 SQL 查询层,它提供了一种面向 SQL 的方式去操作 HBase 中的数据。
因此,当在 Phoenix 中执行删除表操作时,不仅会删除 Phoenix 元数据中关于该表的定义,还会删除 HBase 中实际存储该表数据的 HBase 表。
所以,这将导致该表在 Phoenix 和 HBase 中均被彻底删除。

五.Phoenix中为已存在的表添加字段

ALTER TABLE table_name ADD column_name column_type;

六.Phoenix表如何修改字段名称?
在Apache Phoenix中,直接修改字段名称的功能是受限的,因为Phoenix构建在HBase之上,而HBase不直接支持修改列名。
但你可以通过以下步骤间接实现:

-- 创建新表,包含原表字段和修改后的字段名称
CREATE TABLE new_table (
    [...], -- 原有的列
    new_column_name DATA_TYPE, -- 修改后的列名和类型
    [...]
);

-- 将旧表数据插入新表
UPSERT INTO new_table SELECT ..., old_column_name AS new_column_name, ... FROM old_table;

-- 如果需要的话,验证数据迁移是否成功
-- SELECT * FROM new_table;

-- 确保新表数据完整且正确后,可以删除旧表
DROP TABLE old_table;

-- 将新表重命名为旧表名称(可选)
ALTER TABLE new_table RENAME TO old_table;

2.如果你不想创建新表,而是直接在Phoenix层面修改列名,
那么你需要在Phoenix的系统目录表(SYSTEM.CATALOG)中直接修改元数据,
但这是一项风险操作,通常不推荐在生产环境中进行,
因为这需要对Phoenix的内部工作机制有深入理解,
并且有可能会影响Phoenix与其他依赖这些元数据服务的协同工作
  • 10
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值