SQLPadとは
SQLPad は、SQL クエリを記述して実行し、結果を視覚化するための Web アプリです。Postgres、MySQL、SQL Server、ClickHouse、Crate、Vertica、Trino、Presto、Pinot、Drill、SAP HANA、Snowflake、BigQuery、SQLite、TiDB などを ODBC 経由でサポートします。
yaml設定
以下の設定を使用すると、Docker Composeを使用してSQLPadを起動できます。
検証用のClickHouseコンテナの設定もセットにしています。
version: '3'
services:
sqlpad:
image: sqlpad/sqlpad:latest
container_name: sqlpad
restart: always
ports:
# イメージのデフォルトは3000
- 3000:3000
environment:
# 認証を無効化する
SQLPAD_AUTH_DISABLED: true
# ユーザーのロールを定める(admin or editor)
SQLPAD_AUTH_DISABLED_DEFAULT_ROLE: admin
# ログレベルの定義
SQLPAD_APP_LOG_LEVEL: info
SQLPAD_WEB_LOG_LEVEL: warn
volumes:
- ./data:/var/lib/sqlpad
clickhouse_test:
image: yandex/clickhouse-server
container_name: clickhouse_test
hostname: clickhouse_test
restart: always
# ports:
# - "9000:9000"
# - "8123:8123"
volumes:
- ./click-data/var/lib/clickhouse:/var/lib/clickhouse
- ./click-data/var/log/clickhouse-server:/var/log/clickhouse-server
- ./click-data/etc/clickhouse-server/users.d:/etc/clickhouse-server/users.d
volumes設定を使用して、ホストマシンの./dataディレクトリとコンテナ内の/var/lib/sqlpad
ディレクトリをマウントします。これにより、SQLPadのデータベースファイルと設定ファイルがホストマシンのファイルシステムに保存されます。
コンテナ起動
yamlを配置したディレクトリで以下を実行する。
docker-compose up -d
アクセス確認
以下にアクセスする。
ClickHouseに接続
SQLPadからClickHouseに接続してみましょう。
New connection を選択します。
今回は検証環境のため以下の設定で接続します。
-
Connection name
- コネクションの名前を自由に指定できます。
-
Driver
- ドライバーを選択します。今回は
ClickHouse
を選択します。
- ドライバーを選択します。今回は
-
Host
- DBがあるホストを指定します。(コンテナの場合、同じネットワーク内であればサービス名でもOKです)
-
HTTP Port(optional)
- DBのHTTPポートを指定します。ClickHouseのデフォルトは8123です。
-
Username (optional)
- DBのユーザー名を指定します。
-
Password (optional)
- 上記ユーザーのパスワードを指定します。
-
Database Name (optional)
- 接続したいDB名を指定します。
TEST で接続確認を行うことができます。save で設定を保存します。
以下のように情報が確認できればOKです。
デモは以上です。
まとめ
SQLPadをコンテナで構築し、ClickHouseへアクセス確認を行うところまで実施しました。サポートされているDBの種類も豊富なので活用できそうです。