ClickHouse 对接 Superset(快船)

本贴最后更新于 2498 天前,其中的信息可能已经水流花落

背景

Superset 是源于 airbnb 的 BI web 组件,目前为 apache 孵化项目,主要特征有:

  • 可视化展示和探索数据
  • 漂亮的图表
  • 不用编码来实现数据的下钻和切分
  • SQL 方式来获取数据
  • 有安全模型和权限控制
  • 支持定义维度,指标
  • 支持对接大多数 SQL 数据库
  • 与 druid 深度整合
  • 支持缓存来快速加载看板

本文成功在 mac os x 上配置好了 Superset,并且和 ClickHouse 进行了对接。

Superset 安装

参考自 Apache Superset Installation 文档

docer 安装

docker hub 上的镜像

大致如下,不过在 mac 上有错误,没搞定。

docker pull amancevice/superset

mkdir -p /dockerfs/superset/conf
mkdir -p /dockerfs/superset/data

docker run -p 8088:8088 -v /dockerfs/superset/conf:/etc/superset -v /dockerfs/superset/data:/data –name superset -d amancevice/superset

docker run --name superset -d -p 8088:8088 amancevice/superset 
docker exec -it superset demo 
#系统会提示设置管理员

mac os x 下安装基础包

brew install pkg-config libffi openssl python
env LDFLAGS="-L$(brew --prefix openssl)/lib" CFLAGS="-I$(brew --prefix openssl)/include" pip install cryptography==1.7.2

linux 下安装基础包

Debian 系

sudo apt-get install build-essential libssl-dev libffi-dev python-dev python-pip libsasl2-dev libldap2-dev

RHEL 系

sudo yum upgrade python-setuptools
sudo yum install gcc gcc-c++ libffi-devel python-devel python-pip python-wheel openssl-devel libsasl2-devel openldap-devel

遇到了 SNIMissingWarning,则安装包

pip install pyopenssl ndg-httpsclient pyasn1

没有 pip 的话,则安装包

yum makecache
sudo easy_install -i http://pypi.douban.com/simple/ 
pip sudo easy_install pip 

我在这里遇到了 openssl.c 的一个 error,无法进行下去了。

安装 Superset

  1. 使用 python 隔离环境安装

安装隔离环境

pip install virtualenv

进入隔离环境

virtualenv venv
. ./venv/bin/activate

或者指定 python 版本

virtualenv -p /usr/local/bin/python3.5 py35env

升级包

pip install --upgrade setuptools pip
  1. 安装 Superset 快船

安装 Superset(快船)

pip install superset

创建用户,会提示输入用户名, 密码

fabmanager create-admin --app superset

初始化数据库

superset db upgrade

加载演示数据

superset load_examples

创建默认角色和权限

superset init

启动 web 服务,默认端口 8088,可以使用 -p 来自定义端口

superset runserver

也可以启动 DEBUG 调度模式的 web 服务,通过使用 -d 参数

# superset runserver -d
  1. 安装完成,打开浏览器 localhost:8088/ 观察效果

现在可以直接看到 Superset 的 Dashboards,以及演示数据。

演示数据与 superset github 上的图一模一样,在 youtube 上也有视频版的演示。

与 ClickHouse 集成

安装包

pip install sqlalchemy-clickhouse

增加 SQLAlchemy 资源

clickhouse://default:password@localhost:8123/default

增加图表

基本思路是

添加数据源.数据库

通过 sqlalchemy,支持所有常见的数据库。

添加数据源.数据表

基本方式是直接添加表,从数据库中选择对应的数据表。

高级方式是通过 SQL 工具箱,将 SQL 语句的结果做为数据表。

添加切片

切片可以对数据表进行二次加工,得到最终要展示的数据

添加看板

将制作好的切片,添加至看板中

参考

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...