文档章节

Phoenix 使用遇到的问题

ff100
 ff100
发布于 2018/08/07 10:44
字数 564
阅读 292
收藏 0

公司用HBase,学习了Phoenix。记录一些问题

1. Phoenix映射表问题

  • 如果只做查询,强烈建议使用 phoenix 视图方式映射,删除视图不影响 hbase 源数据,语法如下。
create view "test1"(
    pk VARCHAR PRIMARY KEY,
    "i"."name" VARCHAR,
    "i"."age" VARCHAR);
  • 必须要表映射,需要禁用列映射规则(会降低查询性能),如下:
create table "test1"(
    pk VARCHAR PRIMARY KEY,
    "i"."name" VARCHAR,
    "i"."age" VARCHAR)
 column_encoded_bytes=0;

表名和列族以及列名需要用双引号括起来,因为HBase是区分大小写的,如果不用双引号括起来的话Phoenix在创建表的时候会自动将小写转换为大写字母

可以参考 http://phoenix.apache.org/columnencoding.html

2. 通过SQOOP导数据

  • SQOOP还不支持phoenix,先导到HBASE中,再建映射。
sqoop import --connect jdbc:mysql://localhost/test --username xxx --password xxx --table mytable --hbase-create-table --hbase-table mytable --column-family cf --hbase-row-key id --split-by id -m 10 --columns id,insert_time,info
  • SQOOP最新的版本可能支持,没有试过。
sqoop import --connect jdbc:mysql://localhost/test --username root -P --verbose --query "SELECT rowid,name FROM employee WHERE \$CONDITIONS" --target-dir /tmp/employee --phoenix-table EMP --phoenix-column-mapping "rowid;ID,name;NAME" --phoenix-bulkload

Arguments:
--phoenix-table : Required . The phoenix table
--phoenix-column-mapping: Optional. This property should be specified if the column names between sqoop table and phoenix table differ.
--phoenix-bulkload Optional . Bulk loads data onto the phoenix table.

参考:https://issues.apache.org/jira/browse/PHOENIX-763

3. Phoenix 二级索引

  • Phoenix4.8以上版本需要配置在Region Server配置hbase-site.xml,不用再配置Master的hbase-site.xml。配置如下
<property>
<name>hbase.regionserver.wal.codec</name><value>org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec</value></property>
<property>
<name>hbase.region.server.rpc.scheduler.factory.class</name><value>org.apache.hadoop.hbase.ipc.PhoenixRpcSchedulerFactory</value><description>Factory to create the Phoenix RPC Scheduler that uses separate queues for index and metadata updates</description>
</property>
<property>
<name>hbase.rpc.controllerfactory.class</name><value>org.apache.hadoop.hbase.ipc.controller.ServerRpcControllerFactory</value>
<description>Factory to create the Phoenix RPC Scheduler that uses separate queues for index and metadata updates</description>
</property>
  • 二级索引和oracle 的索引不一样。
SELECT v2 FROM my_table WHERE v1 = 'foo'

这样查询,要用上索引,需要v1,v2一起建索引。如果查询结果中字段有多的,将用不上索引。查询结果是rowkey的话,可以不要INCLUDE。

CREATE INDEX my_index ON my_table (v1) INCLUDE (v2)

英文好的,请直接看官方文档:http://phoenix.apache.org/secondary_indexing.html

© 著作权归作者所有

ff100

ff100

粉丝 10
博文 4
码字总数 1162
作品 0
郑州
程序员
私信 提问
HBase Phoenix助力海量数据实时分析

前言 phoenix这个项目我一直接触不多,在去年接触的一家公司使用phoenix分析数百亿的记录并且在秒级别返回的延迟时,笔者才慢慢探究一些phoenix的内幕。上个星期跟一位phoenix的PMC&Committ...

hbase小能手
2018/11/05
0
0
CDH + phoenix+ zeppelin

内容概述 1.安装及配置Phoenix 2.Phoenix的基本操作 3.使用Phoenix bulkload数据到HBase 4.使用Phoenix从HBase中导出数据到HDFS 测试环境 1.CDH5.11.2 2.RedHat7.2 3.Phoenix4.7.0 前置条件 ...

hblt-j
02/28
0
0
Cloudera Labs中的Phoenix

Fayson发表于Hadoop实操订阅 607 温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。 1.导读 Cloudera Labs在2016-06-27宣布打包了Apache Phoenix项目,版本为4.7.0,并基于C...

hblt-j
01/15
0
0
Phoenix三贴之一:Phoenix扫盲介绍贴

1 简介Introduction Apache Phoenix is a relational database layer over HBase delivered as a client-embedded JDBC driver targeting low latency queries over HBase data. Apache Phoe......

袁一涵
2018/05/08
0
0
在CDH5.14.2中安装Phoenix与使用

在CDH5.14.2中安装Phoenix与使用 标签(空格分隔): 大数据平台构建 一:安装及配置Phoenix 1.0:phoienx 的介绍 1.1: 下载CDH 需要parcel包 1.2 配置httpd的服务 1.3 在CDH5.14.2 上面 配...

flyfish225
2018/06/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Linux使用源码包安装软件

前言: 最近整理一些以前的学习笔记。 过去都是存储在本地,此次传到网络留待备用。 源码包 Linux软件多数免费、开源,是开发人员编写的,具有很强可读性的一组相关代码文本。 源码包 --> 编...

迷失De挣扎
今天
2
0
IPv4如何转换为IPv6?

ipv6已经逐渐在应用,现在已经有很多的运营商支持ipv6,前天我们也发布了如何让电脑使用ipv6地址?有很多朋友在问?ipv6有什么作用,它的表示方式是什么,今天我们来一起来详细了解下ipv6相关计...

xiangyunyan
今天
3
0
小白讲网络安全系列

注入攻击防护 XSS注入 SQL注入 命令注入 文件上传 文件解压缩 CSRF防护 对称加密 非对称加密 数字证书 数字签名 完整性校验 消息验证码 单向散列Hash函数 口令单向加密算法 审计日志 认证鉴权...

一刀
今天
2
0
MYSQL 嵌套事务(SAVEPOINT) 与Spring 事务传播

摘要 savepoint 关键字可以实现嵌套事务。结合savepoint关键字,更方便理解spring的事务传播。 事务嵌套 初始化表脚本 drop table t;create table t(a int, primary key(a)); 开启事务 my...

liangxiao
今天
4
0
Chrome OS 更新新版本可让Linux访问USB连接的Android设备

谷歌再次为Chrome OS带来了重大版本更新,使版本号达到了75。本次更新的一大亮点就是允许在Chrome OS上运行的Linux能够识别通过USB方式连接的Android设备,能够让用户使用Linux进行调试等等。...

linuxCool
昨天
17
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部