網上大多superset 安裝都是基於 superset 0.28.0 ,目前docker 最新鏡像是 0.36.0 因此執行 創建用戶第一步 就走不下去
superset 0.36.0 安裝步驟
# 1.安裝 superset
pip install apache-superset
# 2.初始化數據庫
superset db upgrade
# 3.創建用戶並按提示設置密碼
superset fab create-admin
# 4.加載官方例子
superset load_examples
# 5.初始化角色和權限
superset init
# 6.在本機8088端口運行superset
superset run -p 8088 --host 0.0.0.0
----------------------------------------------------------------------------------------
superset run 外網不能訪問 添加 --host 0.0.0.0
superset run --host 0.0.0.0
----------------------------------------------------------------------------------------
Superset 是一款由 Airbnb 開源的“現代化的企業級 BI(商業智能) Web 應用程序”,其通過創建和分享 dashboard,為數據分析提供了輕量級的數據查詢和可視化方案。
最方便的搭建方法就是使用docker運行:
系統環境准備:
apt-get upgrade && apt-get update
安裝docker
> apt install docker.io > systemctl start docker > systemctl enable docker
獲取鏡像
> docker search superset > docker pull amancevice/superset
啟動superset鏡像
> docker images REPOSITORY TAG IMAGE ID CREATED SIZE amancevice/superset latest 26506f00f388 5 weeks ago 1.4GB
# 創建掛載目錄 > mkdir /data/superset -p # 啟動 > docker run -d -p 8088:8088 --name superset -v /data/superset:/home/superset amancevice/superset:latest 18c22f0fc458b6b727f6b2705b69c5226c8471714f97740fe462daf3444be666 # 查看啟動的容器 > docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 18c22f0fc458 amancevice/superset:latest "gunicorn superset:a…" 4 seconds ago Up 3 seconds (health: starting) 0.0.0.0:8088->8088/tcp jovial_nash
對superset進行初始化設置
# 創建用戶名和密碼 > docker exec -it -u root 18c22f0fc458 fabmanager create-admin --app superset # 初始化數據庫 > docker exec -it 18c22f0fc458 superset db upgrade # 導入示例數據 > docker exec -it 18c22f0fc458 superset load_examples # 創建默認角色和權限 > docker exec -it 18c22f0fc458 superset init # 啟動服務 > docker exec -it 18c22f0fc458 superset runserver
配置Oracle依賴並連接Oracle數據庫
數據庫依賴軟件安裝文檔:
http://superset.apache.org/installation.html#database-dependencies
這里是在docker容器中安裝依賴,Oracle客戶端下載列表:
https://www.oracle.com/technetwork/database/database-technologies/instant-client/downloads/index.html
# 把下載的Oracle客戶端包放在掛載目錄: > cp instantclient-basic-linux.x64-11.2.0.4.0.zip /data/superset # 進入容器: > docker exec -it -u root 83a1cb4cf984 bash # 在容器內部安裝Oracle客戶端和cx_Oracle依賴包 root@83a1cb4cf984> apt-get -y upgrade && apt-get -y update root@83a1cb4cf984> apt-get install -y libaio1 root@83a1cb4cf984> pip3 install cx_Oracle root@83a1cb4cf984> mkdir /opt/oracle root@83a1cb4cf984> unzip instantclient-basic-linux.x64-11.2.0.4.0.zip -d /opt/oracle/ root@83a1cb4cf984> cd /opt/oracle/instantclient_11_2/ root@83a1cb4cf984> ln -s libclntsh.so.11.1 libclntsh.so root@83a1cb4cf984> ln -s libocci.so.11.1 libocci.so root@83a1cb4cf984> echo /opt/oracle/instantclient_11_2 > /etc/ld.so.conf.d/oracle-instantclient.conf root@83a1cb4cf984> ldconfig # 創建 tnsnames.ora 文件,配置Oracle連接信息: root@83a1cb4cf984> mkdir -p /opt/oracle/instantclient_11_2/network/admin root@83a1cb4cf984> echo 'DB-NAME = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.66 )(PORT = 1521)) ) (CONNECT_DATA=(SERVICE_NAME=orcl)))' > /opt/oracle/instantclient_11_2/network/admin/tnsnames.ora root@83a1cb4cf984> exit
以上步驟其實可以用dockerfile批量完成。
在瀏覽器打來 http://ip:8088,訪問superset配置:
數據庫連接詳細配置見:
https://docs.sqlalchemy.org/en/13/core/engines.html#database-urls