惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - 叶小钗
Microsoft Azure Blog
Microsoft Azure Blog
Stack Overflow Blog
Stack Overflow Blog
Jina AI
Jina AI
Vercel News
Vercel News
H
Help Net Security
Martin Fowler
Martin Fowler
美团技术团队
云风的 BLOG
云风的 BLOG
Y
Y Combinator Blog
阮一峰的网络日志
阮一峰的网络日志
MyScale Blog
MyScale Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 三生石上(FineUI控件)
博客园 - 司徒正美
人人都是产品经理
人人都是产品经理
Engineering at Meta
Engineering at Meta
G
Google Developers Blog
Blog — PlanetScale
Blog — PlanetScale
MongoDB | Blog
MongoDB | Blog
宝玉的分享
宝玉的分享
小众软件
小众软件
T
Tailwind CSS Blog
WordPress大学
WordPress大学

夜行人

回家路上 第一期的直播演示项目 震动检测器 正能量 在线参观CodeLab Neverland 发布 CodeLab Adapter 3.3.1 DynamicTable 之 纸糊方向盘 CodeLab DynamicTable: 一个可实施的技术方案 CodeLab Insight 发布 Alpha 版 情人节 Home Assistant 周报 && IoT 周报 (02) Joplin: 关注隐私的 Evernote 开源替代软件 浏览器的未来与 Web 传感器 Home Assistant 周报 && IoT 周报 (01) 百宝箱(01) 论自由 介绍 WebThings Home Assistant 周报 && iot 周报 (00) 百宝箱(00) 毛姆读书心得 传世之作 周末徒步 CodeLab Adapter ❤️ Jupyter/Python 航班 躲雨 夏令营途中 [译]思想--作为一种技术 The future of coding 美国之行 三门问题的程序模拟
caravel系列之安装与入门
2016-07-26 · via 夜行人

文章目录

caravel

Caravel is an open source data visualization platform that provides easy exploration of your data and allows you to create and share beautiful charts and dashboards

caravel是Airbnb开源的一款数据可视化和探索工具,使用caravel用户可以轻松对数据进行可视化分析。

一图胜千言

使用场景

  • 数据库可视化分析
  • 数据模式套索
  • BI
  • 数据报表与可视化图表
  • tableau的开源替代

功能特性

  • 丰富的可视化组件(集成最优秀的可视化图表库)
  • 创建和分享数据可视化互动仪表盘
  • 灵活的权限模型, 方面控制数据的可见度
  • 方便企业使用的用户验证机制,支持 database, OpenID, LDAP, OAuth和 REMOTE_USER (通过 Flask AppBuilder)
  • 简洁的语义层,可以控制数据资源在 UI 的展现方式
  • 通过SqlAlchemy可接入大多数据库
  • 与 Druid.io 的深度集成,可以方便处理大规模数据集

demo尝试

demo

用户名/密码:test/test

安装

根据官方文档,caravel目前只支持python2.7,将来会支持python3

我们在此演示Ubuntu下的安装,其他系统可以参考官方文档

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# OS dependencies
sudo apt-get install build-essential libssl-dev libffi-dev python-dev python-pip

# create virtual env and use it
sudo pip virtualenv -i http://mirrors.aliyun.com/pypi/simple/
virtualenv caravel_env
. caravel_env/bin/activate

# Install caravel
pip install caravel # 推荐使用anaconda

# Create an admin user
fabmanager create-admin --app caravel

# Initialize the database
caravel db upgrade

# Create default roles and permissions
caravel init

# Load some data to play with
caravel load_examples

# Start the web server on port 8088
caravel runserver -p 8088

# To start a development web server, use the -d switch
caravel runserver -d #建议使用tmux来跑,默认可通过0.0.0.0:8088访问

如果你熟悉docker,你可以使用docker安装

使用docker安装

docker run --name caravel -d -p 8088:8088 amancevice/caravel,之后docker exec -it caravel demo,初始化用户 ,细节参考 dockerhub amancevice/caravel

caravel被映射到本地的8088端口,之后可以用nginx反向代理把它映射出去,nginx中配置如下

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
:::text
server {
        listen 80;             #端口
        server_name caravel.just4fun.site;   #访问域名
        access_log /tmp/access.log;
        error_log /tmp/access.log;
        location / {
                proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
                proxy_set_header Host $http_host;
                proxy_redirect off;
                if (!-f $request_filename) {
                        proxy_pass http://127.0.0.1:8088;  
                        break;
                }
        }
}

支持的数据源

目前通过相关的python驱动支持大多主流数据仓库:

相关依赖和更多细节可以参考官方文档:Database dependencies,或者sqlalchemy的文档:Engine Configuration

其中Presto,Redshift和Impala可能需要做个介绍.

Presto

Distributed SQL query engine for big data

通过PyHive,我们能用sqlalchemy操作presto数据库,这样依赖我们就可以解决海量数据的SQL查询问题,presto支持PB级别的查询

Redshift

Amazon Redshift 是一种可轻松扩展的完全托管型 PB 级数据仓库服务i

Impala

Lightning-fast, distributed SQL queries for petabytes of data stored in Apache Hadoop clusters

分布式大数据SQL查询

如果我们的数据仓库存储海量的数据,直接查询数据库是低效的,caravel已经与Druid.io深度整合.对于大数据集可以采用Druid.io或是以上的解决方案

原理

这部分直接引用@lxw1234的这篇文章

Caravel通过将界面的操作转换成SQL语句,提交给SQLAlchemy适配数据源查询并返回结果,对于Druid,Caravel将界面的操作转换成Druid的API进行查询并返回结果,与Druid的深度集成,可以实现大规模海量数据的OLAP分析和实时探索。

另外,为了提高并发查询下的性能,还支持数据缓存,可配置将数据缓存至Redis、Memcache或者本地文件系统。

登录问题

  • 新建用户无法登录,后端会说权限不够,无提示信息.猜测是用户系统尚未启用.目前是用fabmanager(Flask App Builder)后创建的的admin

参考

文章作者 种瓜

上次更新 2016-07-26