首页 > 其他分享 >Phoenix搭建

Phoenix搭建

时间:2022-09-18 19:44:40浏览次数:70  
标签:VARCHAR name phoenix Phoenix 4.15 hbase HBase 搭建

Phoenix

Hbase适合存储大量的对关系运算要求低的NOSQL数据,受Hbase 设计上的限制不能直接使用原生的API执行在关系数据库中普遍使用的条件判断和聚合等操作。Hbase很优秀,一些团队寻求在Hbase之上提供一种更面向普通开发人员的操作方式,Apache Phoenix即是。

Phoenix 基于Hbase给面向业务的开发人员提供了以标准SQL的方式对Hbase进行查询操作,并支持标准SQL中大部分特性:条件运算,分组,分页,等高级查询语法。

1、Phoenix搭建

Phoenix 4.15 HBase 1.4.6 hadoop 2.7.6

1、关闭hbase集群,在master中执行

stop-hbase.sh

2、上传解压配置环境变量

解压

tar -xvf apache-phoenix-4.15.0-HBase-1.4-bin.tar.gz -C /usr/local/soft/

改名

mv apache-phoenix-4.15.0-HBase-1.4-bin phoenix-4.15.0

3、将phoenix-4.15.0-HBase-1.4-server.jar复制到所有节点的hbase lib目录下

scp /usr/local/soft/phoenix-4.15.0/phoenix-4.15.0-HBase-1.4-server.jar master:/usr/local/soft/hbase-1.4.6/lib/

scp /usr/local/soft/phoenix-4.15.0/phoenix-4.15.0-HBase-1.4-server.jar node1:/usr/local/soft/hbase-1.4.6/lib/

scp /usr/local/soft/phoenix-4.15.0/phoenix-4.15.0-HBase-1.4-server.jar node2:/usr/local/soft/hbase-1.4.6/lib/

4、启动hbase , 在master中执行

start-hbase.sh

5、配置环境变量

vim /etc/profile

 

2、Phoenix使用

1、连接sqlline

sqlline.py master,node1,node2

# 出现
163/163 (100%) Done
Done
sqlline version 1.5.0
0: jdbc:phoenix:master,node1,node2>

2、常用命令

# 1、创建表

CREATE TABLE IF NOT EXISTS student (
id VARCHAR NOT NULL PRIMARY KEY,
name VARCHAR,
age BIGINT,
gender VARCHAR ,
clazz VARCHAR
);

# 2、显示所有表
!table

# 3、插入数据
upsert into STUDENT values('1500100004','葛德曜',24,'男','理科三班');
upsert into STUDENT values('1500100005','宣谷芹',24,'男','理科六班');
upsert into STUDENT values('1500100006','羿彦昌',24,'女','理科三班');


# 4、查询数据,支持大部分sql语法,
select * from STUDENT ;
select * from STUDENT where age=24;
select gender ,count(*) from STUDENT group by gender;
select * from student order by gender;

# 5、删除数据
delete from STUDENT where id='1500100004';


# 6、删除表
drop table STUDENT;


# 7、退出命令行
!quit

更多语法参照官网
https://phoenix.apache.org/language/index.html#upsert_select

3、phoenix表映射

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

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

3.1、视图映射

Phoenix创建的视图是只读的,所以只能用来做查询,无法通过视图对源数据进行修改等操作

# hbase shell 进入hbase命令行
hbase shell

# 创建hbase表
create 'test','name','company'

# 插入数据
put 'test','001','name:firstname','zhangsan1'
put 'test','001','name:lastname','zhangsan2'
put 'test','001','company:name','数加'
put 'test','001','company:address','合肥'


upsert into TEST values('002','xiaohu','xiaoxiao','数加','合肥');


# 在phoenix创建视图, primary key 对应到hbase中的rowkey

create view "test"(
empid varchar primary key,
"name"."firstname" varchar,
"name"."lastname"  varchar,
"company"."name"  varchar,
"company"."address" varchar
);

CREATE view "students" (
id VARCHAR NOT NULL PRIMARY KEY,
"info"."name" VARCHAR,
"info"."age" VARCHAR,
"info"."gender" VARCHAR ,
"info"."clazz" VARCHAR
) column_encoded_bytes=0;

# 在phoenix查询数据,表名通过双引号引起来
select * from "test";

# 删除视图
drop view "test";
3.2、表映射

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

1) 当HBase中已经存在表时,可以以类似创建视图的方式创建关联表,只需要将create view改为create table即可。

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

第1)种情况下,如在之前的基础上已经存在了test表,则表映射的语句如下:

create table "test" (
empid varchar primary key,
"name"."firstname" varchar,
"name"."lastname"varchar,
"company"."name"  varchar,
"company"."address" varchar
)column_encoded_bytes=0;

upsert into "students" values('150011000100','xiaohu','24','男','理科三班');

upsert into  "test"  values('1001','xiaohu','xiaoxiao','数加','合肥');

CREATE table  "students" (
id VARCHAR NOT NULL PRIMARY KEY,
"info"."name" VARCHAR,
"info"."age" VARCHAR,
"info"."gender" VARCHAR ,
"info"."clazz" VARCHAR
) column_encoded_bytes=0;

upsert into "students" values('150011000100','xiaohu','24','男','理科三班');

CREATE table  "score" (
id VARCHAR NOT NULL PRIMARY KEY,
"info"."score_dan" VARCHAR
) column_encoded_bytes=0;

使用create table创建的关联表,如果对表进行了修改,源数据也会改变,同时如果关联表被删除,源表也会被删除。但是视图就不会,如果删除视图,源数据不会发生改变。

标签:VARCHAR,name,phoenix,Phoenix,4.15,hbase,HBase,搭建
From: https://www.cnblogs.com/slm-1314521/p/16705561.html

相关文章

  • Appium环境搭建超详细教程
    基本步骤:安装Node.js安装JDK,及配置环境变量安装SDK,及配置环境变量安装Appium桌面版本1、安装Node.js官网:https://nodejs.org/en/2、JDK安装及环境变量配置官网:h......
  • 轻量级C++编程环境|快速搭建|Linux篇
    环境组成成分VisualStudioCode(编辑器)g++gdb(编译器与调试器)CMake(项目管理编译工具)安装VSCode拓展c++/c++extensioncmaketool以上请认准微软官方出品创建工程目......
  • JAVA 环境搭建(java 8为例)
    JAVA环境搭建下载JDK(java8为例)JDK下载地址:直达JDK镜像网站:编程宝库 javajdk镜像  安装JDK(java8为例)双击启动下载的exe文件单击下一步   可以......
  • 微软出品自动化神器Playwright,不用写一行代码(Playwright+Java)系列(一) 之 环境搭建及
    一、前言半年前,偶然在视频号刷到某机构正在直播讲解Playwright框架的使用,就看了一会,感觉还不错,便被种草,就想着自己有时间也可以自己学一下,这一想着就半年多过去了。读到......
  • 如何快速搭建Jeesite项目
    一、先压缩文件包。  二、点击file下的Open...。  三、会弹出OpenFileorProject的弹窗,找到你解压好的jeesite文件,在点击OK,启动项目。四、配置Maven和JDK(1)m......
  • gin实践,搭建blogs-02
    定义接口本节正是编写标签的逻辑,我们想一想,一般接口为增删改查是基础的,那么我们定义一下接口吧!获取标签列表:GET(“/tags”)新建标签:POST(“/tags”)更新指定标签:PUT(......
  • 搭建jeesite框架过程中,如果idea右侧没有maven侧边栏如何解决(同如何导pom包)?(方法不唯一)
    (注:因开发场景不同,此文只介绍了搭建jeesite框架时,maven侧边栏不出现时如何解决,方法不唯一)1.点击右侧搜索栏,进行maven搜索,如图所示:    2.点击AddMavenProjects......
  • DM8主备集群搭建
    1.1、守护进程守护进程(dmwatcher)是DM数据守护系统不可或缺的核心部件,是数据库实例和监视器之间信息流转的桥梁。数据库实例向本地守护进程发送信息,接收本地守护进程的消......
  • Ubuntu内网穿透搭建网站:安装cpolar内网穿透工具 7/17
    在之前的几篇文章中,我们在Ubuntu中安装了wordpress、apache2、Mysql几个软件,并对wordpress进行了基本设置,成功的制作出属于我们自己的网页。虽然这个网页看起来还有些简陋,......
  • Ubuntu内网穿透搭建网站:更改已创建隧道信息 9/17
    在前面的介绍里,我们成功的在Ubuntu系统中安装了mysql数据库、WordPress、cpolar等几款软件,并进行了初始配置,让这几款软件协同工作,将本地电脑中的网站发布到公共互联网中。......