使用 Apache Superset 視覺化 ClickHouse 資料

獨孤風發表於2021-06-17

Apache Superset是一個強大的BI工具,它提供了檢視和探索資料的方法。它在 ClickHouse 使用者中也越來越受歡迎。

我們將介紹安裝 Superset 的 2 種方法,然後展示如何從 Superset 連線到您的第一個 ClickHouse 資料庫。程式碼示例基於 Ubuntu 18.04、Superset 1.1.0 和 clickhouse-sqlalchemy 0.1.6。

方法一:Python虛擬環境

第一種方法直接在您的主機上安裝 Superset。我們將首先建立一個 Python 虛擬環境。以下是常用命令。

python3 -m venv clickhouse-sqlalchemy
. clickhouse-sqlalchemy/bin/activate
pip install --upgrade pi

安裝並啟動 Superset

安裝依賴包

sudo apt-get install build-essential libssl-dev libffi-dev python-dev python-pip libsasl2-dev libldap2-dev

處理與 ClickHouse 的 Superset 連線的命令。可能需要根據您的環境稍微調整。

export FLASK_APP=superset
pip install apache-superset
superset db upgrade
superset fab create-admin
superset load_examples
superset init

安裝 clickhouse-sqlalchemy 驅動程式

pip install clickhouse-sqlalchemy

clickhouse-driver 版本必須為 0.2.0 或更高版本。

pip freeze |grep clickhouse
clickhouse-driver==0.2.0
clickhouse-sqlalchemy==0.1.6

啟動 Superset 並登入

是時候開始 Superset 了。執行以下命令:

superset run -p 8088 --with-threads --reload --debugger

瀏覽器訪問 localhost:8088

您將看到如下所示的登入螢幕。輸入您在 Superset 安裝期間定義的管理員登入名和密碼(例如,admin/secret)。

方法 2:使用 Docker Compose 執行 Superset

如果您不想糾結於 Python 版本、虛擬環境和 pip。可以使用docker。

首先安裝docker和docker-compose。

安裝完成檢視版本。

$ docker --version
Docker version 19.03.4, build 9013bf583a
$ docker-compose --version
docker-compose version 1.29.1, build c34c88b2

使用docker-compose 安裝superset

git clone https://github.com/apache/superset
cd superset
touch ./docker/requirements-local.txt
echo "clickhouse-driver>=0.2.0" >> ./docker/requirements-local.txt
echo "clickhouse-sqlalchemy>=0.1.6" >> ./docker/requirements-local.txt
docker-compose -f docker-compose-non-dev.yml up

執行成功後 瀏覽器訪問 localhost:8088

預設登入名/密碼是admin / admin

連線到 ClickHouse

無論您選擇哪種安裝方法,您現在都可以連線到您的第一個 ClickHouse 資料庫。

登入後,您將看到一個螢幕,其中包含您最近的工作以及當前的儀表板。選擇右上角的資料選項卡,然後選資料庫。將出現一個頁面,其中包含您當前的資料庫連線。按+ 資料庫按鈕新增新資料庫。

輸入以下值:

資料庫名稱:clickhouse-public
SQLALCHEMY 網址:clickhouse+native://demo:demo@github.demo.trial.altinity.cloud /default?secure=true

Altinity.Cloud是一個公共的資料集站點。

按下測試連線按鈕。成功後儲存連結。

連線過程

連線使用了 SQLAlchemy,這是一種用於連線 ClickHouse 以及許多其他資料庫的通用 API。

SQLAlchemy 連線使用支援多個驅動程式的專用 URL 格式。要連線到 ClickHouse,您需要提供一個類似於我們之前顯示的 URL:

clickhouse+native://demo:demo@github.demo.trial.altinity.cloud/default?secure=true

連線ClickHouse 有兩個主要的協議,原生TCP和HTTP。

建議使用原生TCP。

clickhouse+native://<user>:<password>@<host>:<port>/<database>[?options…]

配置Superset

我們已經成功連線了clickhouse,下面我們使用superset建立一個儀表盤。

首先,讓我們建立資料集。選擇 clickhouse-public 作為連線,然後選擇 schema default和 table ontime

有了資料集後,建立第一個圖表就很簡單了。只需單擊資料集頁面上的資料集名稱。Superset 將切換到一個螢幕來定義一個圖表,如下所示。

建立一個時間序列圖表

在儀表盤釋出圖表。

選擇DASHBOARD 按鈕,將建立的圖表新增進來。

以上就是Apache Superset視覺化ClickHouse資料的全過程了。

更多大資料,資料視覺化技術,歡迎關注大資料流動~

相關文章