文档章节

caravel的使用问题汇总

aibati2008
 aibati2008
发布于 2016/06/20 13:33
字数 1444
阅读 537
收藏 0
点赞 0
评论 0

 

1.caravel的配置文件路径

 

Found solution. Error happends because flask_manager could not find default db path for sqlite db. To fix this your need to change SQLALCHEMY_DATABASE_URI in caravel config.py

  1. Go to your anaconda / python directory.
  2. Open %python_path%\Lib\site-packages\caravel\config.py with text editor
  3. Find row with SQLALCHEMY_DATABASE_URI connection string and change it according to your operation system / database setup. For windows you should type something like'sqlite:///C:\\tmp\\caravel.db

shows the location of python install.

python -c "import os; print os.__file__"

 

 

2. 中文名字过长造成的UnicodeEncodeError

 

经常会出现这种问题

Traceback (most recent call last):
  File "makedb.py", line 33, in 
    main()
  File "makedb.py", line 30, in main
    fp.write(row[1])
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-78: ordinal not in range(128)

 

解决方案: 在出问题的python脚步中添加:

import sys
reload(sys)
sys.setdefaultencoding('utf-8')

 

3. 使用过程中频繁切换页面造成 IOError: [Errno 32] Broken pipe  

2016-06-16_11:08:25.38299 Exception in thread Thread-1:
2016-06-16_11:08:25.38300 Traceback (most recent call last):
2016-06-16_11:08:25.38300   File "/usr/lib/python2.7/threading.py", line 810, in __bootstrap_inner
2016-06-16_11:08:25.38300     self.run()
2016-06-16_11:08:25.38300   File "/usr/lib/python2.7/threading.py", line 763, in run
2016-06-16_11:08:25.38301     self.__target(*self.__args, **self.__kwargs)
2016-06-16_11:08:25.38301   File "/usr/local/lib/python2.7/dist-packages/werkzeug/serving.py", line 659, in inner
2016-06-16_11:08:25.38301     srv.serve_forever()
2016-06-16_11:08:25.38301   File "/usr/local/lib/python2.7/dist-packages/werkzeug/serving.py", line 499, in serve_forever
2016-06-16_11:08:25.38301     HTTPServer.serve_forever(self)
2016-06-16_11:08:25.38302   File "/usr/lib/python2.7/SocketServer.py", line 238, in serve_forever
2016-06-16_11:08:25.38302     self._handle_request_noblock()
2016-06-16_11:08:25.38302   File "/usr/lib/python2.7/SocketServer.py", line 297, in _handle_request_noblock
2016-06-16_11:08:25.38302     self.handle_error(request, client_address)
2016-06-16_11:08:25.38303   File "/usr/lib/python2.7/SocketServer.py", line 295, in _handle_request_noblock
2016-06-16_11:08:25.38304     self.process_request(request, client_address)
2016-06-16_11:08:25.38304   File "/usr/lib/python2.7/SocketServer.py", line 321, in process_request
2016-06-16_11:08:25.38304     self.finish_request(request, client_address)
2016-06-16_11:08:25.38304   File "/usr/lib/python2.7/SocketServer.py", line 334, in finish_request
2016-06-16_11:08:25.38305     self.RequestHandlerClass(request, client_address, self)
2016-06-16_11:08:25.38305   File "/usr/lib/python2.7/SocketServer.py", line 649, in __init__
2016-06-16_11:08:25.38305     self.handle()
2016-06-16_11:08:25.38305   File "/usr/local/lib/python2.7/dist-packages/werkzeug/serving.py", line 216, in handle
2016-06-16_11:08:25.38306     rv = BaseHTTPRequestHandler.handle(self)
2016-06-16_11:08:25.38306   File "/usr/lib/python2.7/BaseHTTPServer.py", line 340, in handle
2016-06-16_11:08:25.38306     self.handle_one_request()
2016-06-16_11:08:25.38306   File "/usr/local/lib/python2.7/dist-packages/werkzeug/serving.py", line 251, in handle_one_request
2016-06-16_11:08:25.38306     return self.run_wsgi()
2016-06-16_11:08:25.38307   File "/usr/local/lib/python2.7/dist-packages/werkzeug/serving.py", line 193, in run_wsgi
2016-06-16_11:08:25.38307     execute(self.server.app)
2016-06-16_11:08:25.38307   File "/usr/local/lib/python2.7/dist-packages/werkzeug/serving.py", line 184, in execute
2016-06-16_11:08:25.38307     write(data)
2016-06-16_11:08:25.38307   File "/usr/local/lib/python2.7/dist-packages/werkzeug/serving.py", line 165, in write
2016-06-16_11:08:25.38308     self.wfile.write(data)
2016-06-16_11:08:25.38308 IOError: [Errno 32] Broken pipe

开发者之一的max是这样回复的:

"I think it has to do with using the debug server (`-d` flag when starting the web server), and concurrency perhaps. That debug web server is named Werkzeug and clearly shows in the stack trace. Remove the `-d` flag to get a more proper web server running (gunicorn)."

果然在去掉debug模式之后使用流畅了很多, 目前还没出过问题

 

 

4. caravel upgrade的问题

跟下面这哥们一样的问题:

I upgraded using pip install caravel --upgrade, which went well. After this when i ran caravel db upgrade i got following error

cursor.execute(statement, parameters)
sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) duplicate column name: verbose_name [SQL: 'ALTER TABLE table_columns ADD COLUMN verbose_name VARCHAR(1024)']

原因:

db在升级途中并没有指到最新的版本, 造成失败.

解决方案:

caravel db stamp f0fbf6129e13

# then proceed with 

caravel db upgrade

参考:

https://groups.google.com/forum/#!topic/airbnb_caravel/-abyvcPRAtU

https://github.com/airbnb/caravel/issues/646

 

5.TypeError: 'unicode' does not have the buffer interface 

某一天重启完caravel之后登陆突然报错, 查看了下是Werkzeug 0.9.4这个版本的bug.

将Werkzeug 升级到0.9.6之后的版本就解决了

 

6. 加入缓存redis配置

CACHE_DEFAULT_TIMEOUT = 30
CACHE_CONFIG = {'CACHE_TYPE': 'redis',
'CACHE_DEFAULT_TIMEOUT':30,
'CACHE_KEY_PREFIX':'caravel_',
'CACHE_REDIS_HOST':'127.0.0.1',
'CACHE_REDIS_PORT':6379,
'CACHE_REDIS_DB':1,
'CACHE_REDIS_URL':'redis://root@127.0.0.1:6379/1',}

 

7.汉化问题

官方现在虽然已经提供了汉化版本,但毕竟还有些不尽人意,比如说个人资料的profile翻译成轮廓我也是醉了。。如果想要自己做汉化,可以修改python安装目录下的相关.po文件,然后再编译。我的目录是在$PYTHON_HOME/site-packages/caravel-0.9.1-py2.7.egg/caravel/translations/zh/LC_MESSAGES

然后在caravel目录执行pybabel compile -d translations

但是类似下面panel之类的汉化,必须要修改appbuilder的汉化目录才能生效,目录在./lib/python2.7/site-packages/flask_appbuilder/translations/zh。

具体步骤可以参考http://blog.csdn.net/woshicsdn7547/article/details/52253483,此方法也适合于任何需要汉化的软件。

 

 

更新:

目前公司内部已经针对0.9.1版本做了大量的二次开发,因此没有再继续使用官方github的版本。以下是解决的issue和新增的功能:

1、已计算好的数据(不用聚合函数),无法用控件直接展示出来。

ps:这个功能我一直觉得是必备的,但官方只增加了table的,我们自己又重写了所有time series的控件。毕竟在RDBMS中数据量过大用caravel读取计算是很耗时间的,如果能在每天夜里将计算好结果再放入源表中,前端展示能节省很多时间,当然就不属于OLAP的范畴了:)


2、Dashboards展示时,slice中的字段排序无法根据实际定义顺序排序
3、展示时字段名称为数据库表字段名称,无法根据实际重命名
4、slice读取数据时无法自动排序,总是从数据库第一条数据开始展示
5、折线图/柱状图   x轴时间点显示错误

6、 table中的指标名称可以自定义备注,备注以浮窗效果显示

7、可以根据Dashboard限制查看权限,形成源表和dashboard两套权限机制

8、增加kylin数据源

9.  各种汉化问题,

10. 增加excel文档下载,方便业务人员查看(只会用word的说csv打开有问题)

11. 增加邮件发送定制日报  等。。

© 著作权归作者所有

共有 人打赏支持
aibati2008
粉丝 12
博文 79
码字总数 60745
作品 0
成都
技术主管
开源OLAP+数据可视化工具–For Apache Kylin

经过我和好友Rocky一段时间的修改和调试,现已将初版的Caravel For Kylin上传至Github,供大家使用,如有发现任何的问题,可通过本博客或github联系我们。 GitHub地址: https://github.com...

openthings ⋅ 2016/06/13 ⋅ 0

caravel表的日期字段 进行格式化

@aibati2008 你好,想跟你请教个问题: caravel 在用吗 表的日期字段 进行格式化 在(Add Table Column > Expression) 使用 from_unixtime(mtime, '%Y-%m-%d %H:%i:%S') caravel 怎么会自动加...

lifeinearth ⋅ 2016/09/09 ⋅ 2

caravel之架构与源码浅析

如果你打算改造和定制caravel,这篇文章可能对你有帮助 外围观察 上边的这张图列出了caravel用到的部分技术(由Wappalyzer分析得出) 包括: 后端 采用python的Flask框架(当前版本是Flask 0...

aibati2008 ⋅ 2016/10/11 ⋅ 0

[转载]易上手的数据挖掘、可视化与机器学习工具: Orange介绍

标签 PostgreSQL , Orange3 , 可视化 , 时空数据 背景 可视化分析会是一个让枯燥的数据说话的快捷途径,降低可视化分析门槛,同时又保留它的编程能力,是非常重要的。 如今数据种类越来越多,...

德哥 ⋅ 01/02 ⋅ 0

使用pypi镜像源加速第三方库在线安装

pipy国内镜像目前有: http://pypi.douban.com/ 豆瓣 http://pypi.hustunique.com/ 华中理工大学 http://pypi.sdutlinux.org/ 山东理工大学 http://pypi.mirrors.ustc.edu.cn/ 中国科学技术大......

aibati2008 ⋅ 2016/07/21 ⋅ 0

caravel的dashbord背景色问题

运行caravel创建分析图表,在将分析的图表添加到dashbord之后,要求图表的背景色透明,而里面显示的元素正常, 即将背景1和背景2弄成透明的和黑色背景一样,而其他要显示的数据不变...

syxfengyi ⋅ 2016/08/02 ⋅ 1

创建admin用户出现问题

[root@slave1 fab-1.4.2]# fabmanager create-admin --app caravel Traceback (most recent call last): File "/usr/bin/fabmanager", line 5, in from pkgresources import loadentry_point......

村长肉条 ⋅ 2016/11/23 ⋅ 0

Caravel+Kylin 实现的OLAP平台

近期和朋友一起,尝试着使用Caravel和Kylin搭建了一个OLAP平台, 充分结合了两个开源项目的优点,实现了海量数据的实时可视化。 具体信息请见博客: http://lxw1234.com/archives/2016/06/68...

石头上的常春藤 ⋅ 2016/06/13 ⋅ 1

数据探查与可视化平台--Superset

Superset 是 Airbnb (知名在线房屋短租公司)开源的数据探查与可视化平台(曾用名 Panoramix、Caravel ),该工具在可视化、易用性和交互性上非常有特色,用户可以轻松对数据进行可视化分析...

匿名 ⋅ 2016/04/02 ⋅ 13

Airbnb 开源数据探查与可视化平台 Caravel

Caravel 是 Airbnb(知名在线房屋短租公司)开源的数据探查与可视化平台(曾用名Panoramix),该工具在可视化、易用性和交互性上非常有特色,用户可以轻松对数据进行可视化分析。 核心功能:...

oschina ⋅ 2016/04/02 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

SpringCloud 微服务 (六) 服务通信 RestTemplate

壹 通信的方式主要有两种,Http 和 RPC SpringCloud使用的是Http方式通信, Dubbo的通信方式是RPC 记录学习SpringCloud的restful方式: RestTemplate (本篇)、Feign 贰 RestTemplate 类似 Http...

___大侠 ⋅ 9分钟前 ⋅ 0

React创建组件的三种方式

1.无状态函数式组建 无状态函数式组件,也就是你无法使用State,也无法使用组件的生命周期方法,这就决定了函数组件都是展示性组件,接收Props,渲染DOM,而不关注其他逻辑。 无状态函数式组...

kimyeongnam ⋅ 16分钟前 ⋅ 0

react 判断实例类型

今天在写组件的时候想通过判断内部子元素不同而在父元素上应用不同的class,于是首先要解决的就是如何判断子元素的类型。 这里附上一个讲的很全面的文章: https://www.cnblogs.com/onepixel...

球球 ⋅ 22分钟前 ⋅ 0

Centos7备份数据到百度网盘

一、关于 有时候我们需要进行数据备份,如果能自动将数据备份到百度网盘,那将会非常方便。百度网盘有较大的存储空间,而且不怕数据丢失,安全可靠。下面简单的总结一下如何使用 bypy 实现百...

zctzl ⋅ 36分钟前 ⋅ 0

开启远程SSH

SSH默认没有开启账号密码登陆,需要再配置表中修改: vim /etc/ssh/sshd_configPermitRootLogin yes #是否可以使用root账户登陆PasswordAuthentication yes #是都开启密码登陆ser...

Kefy ⋅ 39分钟前 ⋅ 0

Zookeeper3.4.11+Hadoop2.7.6+Hbase2.0.0搭建分布式集群

有段时间没更新博客了,趁着最近有点时间,来完成之前关于集群部署方面的知识。今天主要讲一讲Zookeeper+Hadoop+Hbase分布式集群的搭建,在我前几篇的集群搭建的博客中已经分别讲过了Zookeep...

海岸线的曙光 ⋅ 46分钟前 ⋅ 0

js保留两位小数方法总结

本文是小编针对js保留两位小数这个大家经常遇到的经典问题整理了在各种情况下的函数写法以及遇到问题的分析,以下是全部内容: 一、我们首先从经典的“四舍五入”算法讲起 1、四舍五入的情况...

孟飞阳 ⋅ 今天 ⋅ 0

python log

python log 处理方式 log_demo.py: 日志代码。 #! /usr/bin/env python# -*- coding: utf-8 -*-# __author__ = "Q1mi""""logging配置"""import osimport logging.config# 定义三种......

inidcard ⋅ 今天 ⋅ 0

mysql 中的信息数据库以及 shell 查询 sql

Information_schema 是 MySQL 自带的信息数据库,里面的“表”保存着服务器当前的实时信息。它提供了访问数据库元数据的方式。 什么是元数据呢?元数据是关于数据的数据,如数据库名或表名,...

blackfoxya ⋅ 今天 ⋅ 0

maven配置阿里云镜像享受飞的感觉

1.在maven目录下的conf/setting.xml中找到mirrors添加如下内容,对所有使用改maven打包的项目生效。 <mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.al......

kalnkaya ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部