文档章节

Superset 通过 Phoenix 连接 HBase

YorkeCao
 YorkeCao
发布于 2017/04/11 16:48
字数 706
阅读 1032
收藏 2

Superset 通过 Phoenix 连接 HBase

Superset 无法直接访问 HBase,但是可以通过 Phoenix 来与 HBase 做交互。下面我们将介绍具体的配置步骤。

前提

已安装 Superset

已开启 Phoenix Query Server

安装 PyPhoenix

安装 pyPhoenix

phoenixdb 是一个用于访问 Phoenix Query Server 的 Python 库,同时为 SQLAlchemy 提供了 Phoenix 的 Dialect

cd /path/to/pyphoenix/
pip install phoenixdb

安装完之后,可以通过下面的 Python 代码测试:

import sqlalchemy

db = sqlalchemy.create_engine('phoenix://localhost:8765/')
conn = db.connect()

注意:目前 pyPhoenix 只支持 Python 2.x,如果要在 Python 3.x 下安装,可以下载其 GitHub 的 python3Compliant 分支源码,然后再在其根目录中安装

python setup.py install

截止目前该 module 还无法直接使用,需要根据测试代码的报错信息,修改其安装路径中的 sqlalchemy_phoenix.py 文件,将其中属于 Python 2.x 的库改为适用于 Python 3.x 的库,才能正常使用。

成功安装后,重新启动 Superset

将 HBase 中已存在的表映射到 Phoenix

通过 Phoenix 创建表,则会在 HBase 中创建表,并与 Phoenix 映射。

对于在 HBase 中已存在的表,则需要手动做一次映射,方法就是在 Phoenix 创建一个同名的表,并映射字段。

如下:

  1. 在 HBase 中创建表

    > create 'phoenix','info'
    
  2. 插入数据

    > put 'phoenix', 'row001','info:name','phoenix'
    > put 'phoenix', 'row002','info:name','hbase'
    
  3. 在 Phoenix 中创建表

    > create table "phoenix"(ROW varchar primary key, "info"."name" varchar);
    
  4. 查看 Phoenix 表中的数据

    输入图片说明

这样即完成了映射。

配置 Superset

  1. 在 Superset 中创建新的 Database。

    在 SQLAlchemy URL 中,填写 Phoenix Query Server 的对应 SQLAlchemy URL 即可。

  2. 在 Superset 中创建新的 Table。

    选择 1. 中创建的数据库,然后填写相应的 Schema 和 Table Name 即可

Superset 大小写敏感处理

HBase 是大小写敏感的。

而 Superset 对于标识符大小写敏感的判断遵循如下一般逻辑:

如果标识中只含有小写字母而不含大写字母,则认为是大小写不敏感的,并会将全部字母转为大写;否则,认为是大小写敏感的。

这使得对于大小写敏感的数据库,如果其中有表名不含大写字母,Superset 就读取不到这个表了。

列名也同理,但是可以通过表达式自定义列来间接获取。

例如,在表 ET_BROWSE 中存在列 custom_act_name。为了获取这个列,我们可以在 Superset 做如下操作:

  1. 在表 ET_BROWSE 中添加一个新的列:CustomActName

  2. 将该列的表达式(Expression)设为:'custom_act_name'

    输入图片说明

  3. 在使用中用 CustomActName 替代 custom_act_name 即可

这样做,当 Superset 查询数据时, Query 就变成了类似下面的形式:

SELECT 'custom_act_name' AS "CustomActName",
       COUNT(*) AS count
FROM "ET_BROWSE"
GROUP BY 'custom_act_name'
ORDER BY count DESC LIMIT 50000

由于给标识符加了引号,所以可以正确获取到表了。

© 著作权归作者所有

YorkeCao
粉丝 6
博文 24
码字总数 11274
作品 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
75
1
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
1K
0
Cloudera Labs中的Phoenix

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

hblt-j
01/15
23
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
Apache Phoenix介绍(SQL on HBase)

Phoenix定义 Phoenix最早是saleforce的一个开源项目,后来成为Apache基金的顶级项目。 Phoenix是构建在HBase上的一个SQL层,能让我们用标准的JDBC APIs而不是HBase客户端APIs来创建表,插入数...

hblt-j
2018/07/10
160
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周四乱弹 —— 当你简历注水但还是找到了工作

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @花间小酌 :#今日歌曲推荐# 分享成龙的单曲《男儿当自强》。 《男儿当自强》- 成龙 手机党少年们想听歌,请使劲儿戳(这里) @hxg2016 :刚在...

小小编辑
今天
2.9K
22
靠写代码赚钱的一些门路

作者 @mezod 译者 @josephchang10 如今,通过自己的代码去赚钱变得越来越简单,不过对很多人来说依然还是很难,因为他们不知道有哪些门路。 今天给大家分享一个精彩的 GitHub 库,这个库整理...

高级农民工
昨天
5
0
用好项目管理工具,人人都可以成为项目经理

现在市面上的项目管理工具越来越多了,但是大多数都是一些协同工具或轻量项目管理工具。如果是多团队、跨部门使用或者企业级的项目管理,从管理思想到工具运用,需要适应企业的业务流程体系,...

cs平台
昨天
12
0
只需一步,在Spring Boot中统一Restful API返回值格式与统一处理异常

统一返回值 在前后端分离大行其道的今天,有一个统一的返回值格式不仅能使我们的接口看起来更漂亮,而且还可以使前端可以统一处理很多东西,避免很多问题的产生。 比较通用的返回值格式如下:...

晓月寒丶
昨天
69
0
区块链应用到供应链上的好处和实际案例

区块链可以解决供应链中的很多问题,例如记录以及追踪产品。那么使用区块链应用到各产品供应链上到底有什么好处?猎头悬赏平台解优人才网小编给大家做个简单的分享: 使用区块链的最突出的优...

猎头悬赏平台
昨天
32
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部