Metabase
Metabaseは、シンプルで使いやすいデータ分析と可視化機能を提供するオープンソースのビジネスインテリジェンスツールです。豊富なデータソース接続をサポートし、インタラクティブなダッシュボードを迅速に構築できます。主な特徴には、ユーザーフレンドリーなインターフェース、使いやすさ、セルフサービス分析のサポート、可視化ダッシュボードの作成、データドリルダウン探索、SQLクエリとデータエクスポート用の統合SQLクエリエディタが含まれます。
Metabase Apache Doris Driverを使用することで、MetabaseをApache Dorisデータベースに接続し、Dorisの内部データと外部データの両方をクエリおよび可視化できます。
このドライバーにより、MetabaseはApache Dorisデータベースとテーブルをデータソースとして統合できます。この機能を有効にするには、以下のセットアップガイドに従ってください:
- ドライバーのインストールと設定
- MetabaseでのApache Dorisデータソースの設定
- Metabaseでの可視化の構築
- 接続と使用のヒント
Metabaseとdoris Driverのインストール
前提条件
- Metabaseバージョン0.48.0以降をダウンロードしてインストールしてください。詳細はMetabase Installation Documentationを参照してください。
- Apache Dorisクラスターを準備してください。
doris Driverのインストール
まず、最新のmetabase-doris-driverをダウンロードする必要があります。
次に、ドライバーをインストールします。インストール方法は、Metabaseのデプロイ方法によって異なります:
Metabase標準デプロイ
-
ドライバーをダウンロード
-
Metabaseプラグインディレクトリを作成します(存在しない場合):
mkdir -p $path_metabase/plugins
- JARファイルをプラグインディレクトリにコピーします:
cp doris.metabase-driver.jar $path_metabase/plugins
- Metabaseサービスを再起動します
Metabase Docker デプロイメント
MetabaseをDockerを使用して起動する場合は、doris.metabase-driver.jarをマウントして起動することを推奨します。Dockerコンテナ内のプラグインパスは/plugins/です。
-
Driverをダウンロードします
-
以下のコマンドを使用してMetabaseを起動します:
docker run -d -p 3000:3000 --name metabase -v $host_path/doris.metabase-driver.jar:/plugins/doris.metabase-driver.jar metabase/metabase
MetabaseでのDorisデータソースの設定
Metabaseとmetabase-doris-driverをインストールしたので、Dorisのtpchデータベースに接続するMetabaseのデータソースを定義する方法を見てみましょう。
接続パラメータの説明
Apache Dorisに接続する際に設定する必要があるパラメータは以下の通りです:
| パラメータ | 意味 | 例 |
|---|---|---|
| Display Name | データソース表示名 | Doris-TPCH |
| Host | Doris FEノードアドレス | 127.0.0.1 |
| Port | Doris Query Port(MySQLプロトコルポート) | 9030 |
| Catalog name | Catalog名(オプション、デフォルトはinternal) | internal |
| Database name | データベース名(必須) | tpch |
| Username | ユーザー名 | root |
| Password | パスワード | your_password |
Database Name形式の説明:
- 内部テーブル:
tpchなどのデータベース名を直接入力します。システムは自動的にinternalcatalogを使用します。 - 外部テーブル/Data Lake:Catalog設定を入力します。内部テーブルのみをリンクする場合、この項目は不要です。
設定手順
-
Metabaseを起動してログインします。
-
右上の歯車アイコンをクリックし、Admin Settingsを選択します。

- 左側のメニューでDatabasesを選択し、右上のAdd databaseボタンをクリックします。

- Database typeドロップダウンメニューでApache Dorisを選択します。

- 接続情報を入力します:
- Display name: Doris-TPCH
- Host: 127.0.0.1
- Port: 9030
- Database name: tpch
- Username: admin
- Password: ******

-
Saveをクリックして設定を保存します。
-
Metabaseは自動的に接続をテストし、データベースメタデータを同期します。接続が成功すると、成功メッセージが表示されます。

これでデータソース設定は完了です!次に、Metabaseでビジュアライゼーションを構築できます。
Metabaseでのビジュアライゼーション構築
データソースとしてTPC-Hデータを選択します。Doris TPC-Hデータソース構築の手順については、このドキュメントを参照してください。
MetabaseでDorisデータソースを設定したので、データを可視化しましょう...
コスト分析のために、異なる貨物輸送方法での時系列の注文金額成長曲線を分析する必要があるとします。
Questionの作成
- ホームページ右上のNew +ボタンをクリックし、Questionを選択します。

- データソースを選択します:
- Database: Doris TPCH
- Table: lineitem

SQLを使用したカスタムメトリクスの構築
売上を計算するには、カスタムSQL式を使用する必要があります:
- 右上のview sqlスイッチをクリックし、次にconvert this question to SQLをクリックしてSQLを編集します。

- 以下のSQLクエリを入力します:
SELECT
DATE_FORMAT(l_shipdate, '%Y-%m') AS ship_month,
l_shipmode,
SUM(l_extendedprice * (1 - l_discount)) AS revenue
FROM lineitem
WHERE l_shipdate >= '1995-01-01'
AND l_shipdate < '1997-01-01'
GROUP BY
DATE_FORMAT(l_shipdate, '%Y-%m'),
l_shipmode
ORDER BY ship_month, l_shipmode
- 右下角のVisualizeボタンをクリックして結果を表示します。

可視化チャートの設定
- デフォルトの表示はテーブルです。左下角のVisualizationボタンをクリックしてLineチャートタイプを選択します。

-
必要に応じてチャートパラメータを設定します(metabaseは以下のように自動設定します):
- X軸: ship_month(出荷月)
- Y軸: revenue(収益)
- Series: l_shipmode(出荷モード)
-
チャートスタイルのカスタマイズ:
- Settingsアイコンをクリックして色、ラベル、凡例位置などを調整します。
- Displayタブで、軸タイトル、値フォーマットなどを設定できます。
-
チャートの設定後、右上角のSaveをクリックします。
-
issue名を入力します:my-tpch、保存先のコレクションを選択します。

Dashboardの作成
- + New → Dashboardをクリックして新しいダッシュボードを作成します。ダッシュボード名を入力します:my-tpch

- Add a chartをクリックして保存済みのquestionをダッシュボードに追加します。

- チャートの位置とサイズを調整し、右上角のSaveをクリックしてダッシュボードを保存します。

この時点で、Metabaseが正常にApache Dorisに接続され、データ分析と可視化ダッシュボードの作成が実装されました!
高度な機能
Catalogsを使用した外部データへのアクセス
Dorisはマルチカタログ機能をサポートしており、外部データソースへのクエリとデータソース間クエリが可能です。Metabaseで使用する場合:
- Links設定インターフェースで
Catalogを設定し、そのcatalog下の外部データベースをDatabaseで設定します。例えば:
catalog: hive_catalog、database: warehouse- hive_catalogという名前のwarehouseデータベースにアクセス

- またはSQLクエリで明示的にCatalogを指定します:
SELECT * FROM hive.warehouse.orders LIMIT 100;
パラメータ化クエリの使用
Metabaseは、SQLクエリでの変数の使用をサポートしており、インタラクティブなダッシュボードを簡単に作成できます:
SELECT
l_shipmode,
SUM(l_extendedprice * (1 - l_discount)) AS revenue
FROM lineitem
WHERE l_shipdate BETWEEN {{start_date}} AND {{end_date}}
AND l_shipmode = {{ship_mode}}
GROUP BY l_shipmode
保存後、ドロップダウンメニューや日付ピッカーを使用して、ダッシュボード内でデータを動的にフィルタリングできます。
Performance Optimization 推奨事項
-
Partition Clippingの使用: WHERE句にパーティションカラムのフィルタ条件を追加してください。
WHERE date >= '2024-01-01' AND date < '2024-02-01' -
Materialized Viewの活用: 複雑な集約クエリについては、DorisでMaterialized Viewを作成することで、クエリプロセスを高速化できます。
-
結果セットサイズの制御: LIMITを使用して返される行数を制限し、一度に大量のデータを読み込むことを避けます。
-
クエリキャッシング: Metabaseは自動的にクエリ結果をキャッシュします。適切なキャッシュ時間を設定することでパフォーマンスを向上させることができます。
接続と使用のヒント
- ドライバーインストール:
doris.metabase-driver.jarがMetabaseのpluginsディレクトリに配置されていることを確認し、Metabaseを再起動してください。 - タイムゾーン設定: タイムゾーンの問題が発生した場合は、JDBC接続文字列に
serverTimezone=Asia/Shanghaiを追加してください。 - パーティションテーブル最適化: 適切なDorisパーティションテーブルを作成し、時間で分割してバケット化することで、クエリでスキャンされるデータ量を効果的に削減できます。
- ネットワーク接続: パブリックネットワークアクセスによって生じるセキュリティリスクを回避するため、VPCプライベート接続の使用を推奨します。
- アクセス制御: 最小権限の原則に従って、Dorisユーザーアカウントのロールとアクセス許可を細かく調整してください。
- メタデータ同期: Doris...テーブル構造が変更された場合は、Metabase管理ページで「Sync database schema now」をクリックして手動で同期してください。
- パフォーマンス監視: 低速なクエリについては、Dorisで
SHOW QUERY PROFILEを使用してパフォーマンスボトルネックを分析できます。
データ型表示の異常
-
最新バージョンのDoris Driverを使用していることを確認してください。
-
DorisのlargeInt型はSQLで明示的に変換する必要があります。
SELECT CAST(large_int_col AS STRING) FROM table