2025年9月11日 星期四

[Open-source tool] 如何利用 docker compose 安裝 Superset 並連接MySQL的Sakila資料庫?


Apache Superset 是一款 Apache 基金會的開源資料視覺化與商業智慧(Business Intelligence, BI)平台。其設計目標是提供一個輕量級、可擴展、易於部署的資料探索與儀表板工具,讓使用者能透過簡單直觀的操作來分析與呈現各種數據。其核心是基於 Python 與 Flask Web 框架構建,並支援連接各種 SQL 資料庫,如 MySQL、PostgreSQL、Oracle、SQLite、Snowflake、BigQuery 等。前端則採用 React.js 與 Apache ECharts 進行互動式圖表與儀表板渲染,提供高度可自訂的視覺化能力。另外,其能與 Docker、Kubernetes 等容器化平台整合,具備水平擴展能力,方便企業在既有基礎架構中導入。

Superset作為BI數據平台,除了豐富的資料視覺化方式和,其也具備SQL Lab 查詢頁面,讓使用者可直接在瀏覽器中撰寫 SQL,並將查詢結果儲存為自命名的數據集,並透過互動式儀表板即時呈現可視化結果。而互動式儀表板(Dashboard)可將多個圖表組合為單一儀表板,並支援篩選器、時間區間切換與動態更新,適合經營管理團隊查看各項營運數據。

本文主要著重於Apache Superset的docker compose安裝方式,以快速建置SuperSet環境,並連接到MySQL內的Sakila範例資料庫,透過SQL語法篩選和儲存數據集,最後在Dashboard上呈現。過程步驟如下:


Docker compose 安裝

1. Clone Superset 的 GitHub到本地端

git clone --depth=1  https://github.com/apache/superset.git

完成後,可在當前目錄中看到一個 Superset 資料夾被創建出來。

2. 選擇官方的docker compose up方式

# Set the version you want to run
##export TAG=5.0.0
# Fetch the tag you're about to check out (assuming you shallow-cloned the repo)
##sudo git fetch --depth=1 origin tag $TAG
# Could also fetch all tags too if you've got bandwidth to spare
# git fetch --tags
# Checkout the corresponding git ref
##sudo git checkout $TAG
# Fire up docker compose
sudo docker compose -f docker-compose-image-tag.yml up

若順利安裝完成,藉由docker查詢,應可觀察到一系列的Superset docker容器被啟動了,如下圖。


3.訪問superset服務

開啟http://localhost:8088,即可訪問superset,帳號/密碼預設值如下
username: admin
password: admin


連接MySQL數據集

若MySQL建置在192.168.0.107,可利用下列方式連接,並輸入對應的資料庫名稱/帳號/密碼,如下圖。


當Superset連接MySQL的Sakila資料庫,接續即可藉由SQL Lab 語法頁面篩選數據和儲存數據集,並建置對應的互動式圖表與儀表板。最後要提醒的是,若要用於生產環境,官方建議用k8s來安裝和部署較佳。


Reference:

沒有留言:

張貼留言