程序员求职经验分享与学习资料整理平台

网站首页 > 文章精选 正文

大数据时代:Apache Phoenix 的优雅操作实践

balukai 2025-05-07 22:55:16 文章精选 25 ℃

场景:

  1. 基于phoenix建库、建表
  2. Phoenix基础命令

一、phoenix 基本命令使用

1. 登录phoenix

 phoenix-sqlline master:2181 或者 phoenix-sqline

在phoenix中,默认情况下,库名,表名,字段名等会自动转换为大写,若要小写,使用双引号,如"ns1"。 特别注意引号

注意

以下所有操作,前提都是Hbase中不存在库,表,然后通过phoenix以sql的方式来创建hbase中的库,表,记录等,至于 Hbase中已经存在的表,phoenix如何映射,有专门的章节来讲解

2. SCHEMA操作

创建schema(就是hbase中的namespace),就是数据库

create schema IF NOT EXISTS 'TEST';

使用schema,执行后再创建表,增加记录等,否则都建在default数据库中了

USE 'TEST';
-- 删除schema
drop schema 'TEST';

3. 常用命令

!describe test.student   -- 查看表结构
!primarykeys test.student    -- 查看表主键
show create table test.student  --查看建表语句,部分phoenix版本不支持
!tables -- 查看所有的表
!quit  --退出命令行
!help -- 查看帮助文档

4. DDL语句使用

4.1 创建表

DROP TABLE IF EXISTS TEST.STUDENT;
  CREATE TABLE TEST.STUDENT(
  KHH    VARCHAR NOT NULL,
  ZJZH   VARCHAR NOT NULL,
  KHXM   VARCHAR,
  ZHMC   VARCHAR,
  YYB    VARCHAR,
  BZ     VARCHAR
  CONSTRAINT PK PRIMARY KEY (KHH,ZJZH)  -- 主键 KHH,ZJZH
 ) SALT_BUCKETS=9;

-- 查看表的结构
!describe TEST.STUDENT;
-- 删除表
drop table TEST.STUDENT;

phoenix中的表信息都存在SYSTEM.CATALOG表中,也可以通过下面的sql语句查看系统的表信息

select * from SYSTEM.CATALOG;

5. DML语句使用

-- 表数据的增删改查
-- 添加  主键为id
upsert into test.student (id,name,age,date) values('1003','wangwu','221','2020-9-18 22:50:15'); 
upsert into test.student (id,name,age,date) values('1004','chenmazi','222','2020-9-18 22:55:25');
-- 修改
upsert into test.student (id,name,age,date) values ('1003','wangwu','111','2020-8-18 12:11:15');
-- 查询数据
select * from test.student where id = '1003'; 
-- 删除数据
delete from test.student  where id='1003';

注意:
1)upsert: 表中的主键不存在就是插入,存在就是更新
2)where : 字段值要加单引号 ' ', 字段名的小写是加双引号

-- 删除所有记录
delete from table_2;
-- 注意:Phoenix中不能使用truncate table table_2

补充:

1. 查看hbase连接的zookeeper地址

grep -r 2181 -C10  hbase-site.xml

Tags:

最近发表
标签列表