一、Phoenix简介

1、定义

构建在 HBase 之上的开源 SQL 层

可以使用标准的 JDBC API 去建表, 插入数据和查询 HBase 中的数据

避免使用 HBase 的客户端 API

位置:应用和 HBase 之间

2、特点

SQl 查询编译为 HBase 扫描

扫描并行执行

DML命令以及通过DDL命令创建和操作表

容易集成

3、架构

4、数据存储

将 HBase 的数据模型映射关系型世界

二、Phoenix快速入门

1、安装部署

配置环境变量:export PATH=$PATH:$PHOENIX_HOME/bin

启动Phoenix:/opt/module/phoenix » bin/sqlline.py hadoop201,hadoop202,hadoop203:2181

2、Phoenix表操作

显示所有表:!tables# 或者!table

创建表

插入记录

upsert into us_population values('IL','Chicago',2842518);

查询记录

删除记录

delete from us_population where state='NY';

删除表

drop table us_population;

退出命令行

! quit

3、Phoenix表映射

Phoenix 表和 HBase 表的关系

使用Phoenix操作在HBASE中创建的表,需要进行映射,映射方式有两种: 1. 视图映射 2. 表映射

视图映射:创建的视图是只读的, 所以只能用来查询

表映射

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

区别:使用create table创建的关联表,如果对表进行了修改,源数据也会改变

三、Phoenix创建HBASE二级索引

1、HBase 的二级索引

把 rowkey 称作一级索引,非 rowkey 字段进行数据检索和查询, 往往要通过 MapReduce/Spark 等分布式计算框架进行,硬件资源消耗和时间延迟都会比较高。

从 0.94 版本开始, HBase 开始支持二级索引,并且有多种支持方案

2、配置 HBase 支持 Phoenix 创建二级索引

修改Hregionerver 和Hmaster 节点的配置文件:hbase-site.xml

测试其他字段是否支持索引(全表扫描)

create index idx_user_1 on user_1(name)

查询的时候也必须只查询 name 字段.

3、Phoenix 创建索引

全局索引global index :多读少写,写数据的时候会消耗大量开销,索引表是分布在不同的数据节点上

读数据的时候 Phoenix 会选择索引表来降低查询消耗的时间。

CREATE INDEX my_index ON my_table (my_col)

局部索引:写操作频繁,索引数据和数据表的数据是存放在相同的服务器中

CREATE LOCAL INDEX my_index ON my_table (my_index)

全局索引, 也支持查询其他字段

删除索引
DROP INDEX my_index ON my_table

最新文章

  1. 性能调优:理解Set Statistics IO输出
  2. 与POS机通信时的3DES(双倍长)加密解密
  3. 123——Appium Girls活动
  4. Java初学(六)
  5. Search Range in Binary Search Tree
  6. [转]获得 LayoutInflater 实例的三种方式
  7. Android TintResources Leak
  8. BZOJ 2152: 聪聪可可 点分治
  9. 20141014--判断语句switch case
  10. PHP连接sql server 2005环境配置
  11. 【C语言探索之旅】 第二部分第六课:创建你自己的变量类型
  12. STORM在线业务实践-集群空闲CPU飙高问题排查
  13. HttpServletResponse应用----生成验证码
  14. AJAX 中JSON 和JSONP 的区别 以及请求原理
  15. 网络编程练习这些就ok
  16. Oracle执行计划学习笔记
  17. pytest使用简介
  18. CDH运维
  19. 16-client、offset、scroll系列
  20. 阿里druid连接池监控配置

热门文章

  1. 2.2 virtualenv 虚拟环境
  2. Kubernetes 多租户:多租户介绍
  3. Kibana探索数据(Discover)详解
  4. k8s中节点级别的日志
  5. 2_Servlet
  6. 高光谱图像分类简述+《Deep Learning for Hyperspectral Image Classification: An Overview》综述论文笔记
  7. POJ3260 The Fewest Coins(混合背包)
  8. 使用Java实现haskell-style的list
  9. Oracle字段约束
  10. MYSQL创建分区时候报错