文档章节

caravel的使用问题汇总

aibati2008
 aibati2008
发布于 2016/06/20 13:33
字数 1444
阅读 542
收藏 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
博文 81
码字总数 60745
作品 0
成都
技术主管
开源OLAP+数据可视化工具–For Apache Kylin

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

openthings
2016/06/13
575
0
caravel表的日期字段 进行格式化

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

lifeinearth
2016/09/09
240
2
caravel之架构与源码浅析

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

aibati2008
2016/10/11
181
0
[转载]易上手的数据挖掘、可视化与机器学习工具: Orange介绍

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

德哥
01/02
0
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
16
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

shell-日志脚本小实验

1.查找日志2018-8-15,求得那一分钟访问量最大。 #/bin/bash#from cc#2018-8-15#2018-08-15.log 哪一分钟 访问量 最大for d in `ls /data/nginx/logs/`doif [ -a 2018-08-15...

chencheng-linux
昨天
0
0
Android中的设计模式之状态模式

参考 《设计模式:可复用面向对象软件的基础 》5.8 State 状态 对象行为型模式 《Android源码设计模式解析与实战》第7章 随遇而安--状态模式 意图 允许一个对象在其内部状态改变时改变它的行...

newtrek
昨天
0
0
xshell端 vim没有颜色

说明 使用xshell连接服务器的时候,使用vim打开文档没有颜色 解决方法: 1.在更目录home或者etc下找到vim的配置文件vimrc 2.vim打开它找个坑,添加下面这个东西 set t_Co=256 3.保存退出,就...

杉下
昨天
0
0
spring 资料

spring boot http://www.ityouknow.com/springboot/2016/01/06/spring-boot-quick-start.html

zaolonglei
昨天
2
0
TypeScript基础入门 - 函数 - 简介

转载 TypeScript基础入门 - 函数 - 简介 项目实践仓库 https://github.com/durban89/typescript_demo.gittag: 1.1.6 为了保证后面的学习演示需要安装下ts-node,这样后面的每个操作都能直接...

durban
昨天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部