2024-02-01

【LinuxMint20.3】以 docker 安裝 Apache Superset -- 免費,開源的 BI

參考資料 ----


Superset 的安裝方式有:
  • Linux 套件安裝
  • 以 Docker Compose 佈署
  • 以 Kubernetes(K8S) 佈署
  • 在 Dockerhub 執行
  • 以 Pypi 下載安裝
  • 自 GitHub 下載安裝
  • 自 Apache 基金會官網下載安裝


其中 Docker Compose 只支援單機運行且不支援高可用性(HA),因此官方不建議安裝使用於正式生產環境(production);聽起來,似乎雖然不是開發版本,但適合快速安裝嚐鮮用。本筆記採用 Docker Compose 佈署


安裝必要的相依套件
  1.  
  2. [user]$ sudo apt install git docker docker-compose
  3.  


複製資源庫
  1.  
  2. # 預定裝在 /usr/share
  3. [user]$ cd /usr/share
  4. [user]$ sudo git clone https://github.com/apache/superset.git
  5.  
  6. # 會看到生成 /usr/share/superset/ 目錄
  7.  


執行 docker daemon
  1.  
  2. [user]$ cd superset
  3. # 執行 docker daemon
  4. [user]$ sudo systemctl start docker
  5.  
  6. # 檢查確認 docker daemon 執行狀態
  7. [user]$ sudo systemctl status docker
  8.  


啟動 superset
  1.  
  2. # 第一次執行, 下傳 container, 一次性指令
  3. [user]$ sudo docker-compose -f docker-compose-non-dev.yml pull
  4.  
  5. # 之後只要執行這指令
  6. [user]$ sudo docker-compose -f docker-compose-non-dev.yml up
  7.  


若要停止執行 superset,則 CTRL + C
這時會看到螢幕顯示
Stopping superset_app...
Stopping superset_worker_beat...
...
等正在停止程序的訊息

superset 內建並不支援 Microsoft SQL Server,若要連接 mssql,則要安裝驅動程式,官方建議的驅動為 pymssql
  1.  
  2. [user]$ sudo vim /usr/share/superset/docker/requirements-local.txt
  3. # 輸入
  4. pymssql
  5.  
  6. :x 存檔離開
  7.  
  8. # 再執行
  9. [user]$ sudo docker-compose -f docker-compose-non-dev.yml up
  10. # 就會自動安裝 pymssql 了
  11.  


開啟瀏覽器,輸入網址
http://localhost:8088
登入帳/密:admin / admin

建立資料庫連線

點擊右上角的 "Settings"
Database Connections



+DATABASE
→ 可以看到列出的預設支援資料庫沒有 MS SQL Server
→ 下拉下方的 Supported databases,選擇最末的 Other



DISPLAY NAME (必填) 命名您的資料庫連線
SQLALCHEMY URI(必填) 輸入連線字串,格式為
  1.  
  2. mssql+pymssql://username:password@hostname:port/database_name
  3.  
  4. * password 內含有 @ 字元,要改為 URL編碼(percent-encoding),改成 %40
  5. * port 的部份,若您的 mssql 採用預設的 port,則可不填
  6.  
→ 點擊 TEST CONNECTION 鈕確認連線正常
→ CONNECT 建立連線





設定為開機自動執行 superset

  1.  
  2. [user]$ sudo vim /etc/systemd/system/superset.service
  3. # 輸入下述指令
  4. [Unit]
  5. Description=Apache Superset
  6. After=docker.service
  7.  
  8. [Service]
  9. Type=simple
  10. ExecStart=/usr/bin/docker-compose -f /usr/share/superset/docker-compose-non-dev.yml up
  11. ExecStop=/usr/bin/docker-compose -f /usr/share/superset/docker-compose-non-dev.yml down
  12.  
  13. [Install]
  14. WantedBy=multi-user.target
  15.  
  16. :x 存檔離開
  17.  
  18. # 啟用 docker.service 開機自動執行
  19. [user]$ sudo systemctl enable docker.service
  20.  
  21. # 啟用 superset.service 開機自動執行
  22. [user]$ sudo systemctl enable superset.service
  23.  
重新開機,驗證 superset 確實開機自動執行

版本號碼為 0.0.0-dev,在 Apache Superset 0.0.0dev Overview 有解釋。


沒有留言:

張貼留言