Apache Superset是一个开源的、现代的、轻量级BI分析工具,能够对接多种数据源、拥有丰富的图标展示形式、支持自定义仪表盘,且拥有友好的用户界面,十分易用。
Superset是由Python语言编写的Web应用。我安装中并不顺利,因此记录下来。
环境: window 10, python3.8 superset-0.30.1
1、使用conda 建立虚拟环境 conda create -n superset python=3.8
2、pip install superset
3、pip install flask-appbuilder
4、flask fab create-admin --username admin --firstname admin --lastname admin --email admin@126.com --password admi
这一步执行时出现2个问题: 1) 总是报No module named 'xxxxx'的错误,总结如下:
pathlib
retry
croniter
contextlib2
pyarrow
msgpack
crytography
geopy
polyline
geohash
humanize
pandas
flask_caching
flask_talisman
flask_migrate
flask_compress
celery
isodate
pip install 上述模块。
2) 报错 No module named ‘geohash’,安装geohash模块后依然报此错,原因是安装后模块的文件夹名称是Geohash,g字母是大写,但是superset中是按小写字母import的,因此将Geohash的文件夹名称改为geohash小写。还有 geohash文件夹下
将init.py更改为从.geohash(在模块名称前面有一个点)
5、python superset db upgrade 默认使用sqlite数据库
6、python superset load_examples
此步也出错,原因是从网上下载测试数据失败,因此 1)从github下载,放本地文件夹。https://github.com/apache-superset/examples-datahttps://github.com/apache-superset/examples-data 2)site-packages\superset\examples\helper.py负责从网上下载数据文件,修改此代码,从本地加载数据。EXAMPLES_DATA_FOLDER是上步下载的数据包的文件夹。
def get_example_data(filepath, is_gzip=True, make_bytes=False):
localfile = os.path.join( EXAMPLES_DATA_FOLDER, f"{filepath}" )
if os.path.exists( localfile ):
with open( localfile, 'rb' ) as f:
content = f.read()
else:
content = request.urlopen(f"{BASE_URL}{filepath}?raw=true").read()
if is_gzip:
content = zlib.decompress(content, zlib.MAX_WBITS | 16)
if make_bytes:
content = BytesIO(content)
return content
7、python superset init
8、python superset run -p 8088
进入界面,还未完成汉化工作。