メインコンテンツまでスキップ

Metabase

Metabaseは、シンプルで使いやすいデータ分析および可視化機能を提供し、豊富なデータソース接続をサポートし、インタラクティブなダッシュボードの迅速な構築を可能にするオープンソースのビジネスインテリジェンスツールです。主な機能には、ユーザーフレンドリーなインターフェース、使いやすさ、セルフサービス分析のサポート、可視化ダッシュボードの作成、データドリルダウン探索、SQLクエリとデータエクスポートのための統合SQLクエリエディタが含まれます。

Metabase Apache Doris Driverにより、MetabaseをApache Dorisデータベースに接続し、Dorisの内部および外部データのクエリと可視化が可能になります。

このドライバーにより、MetabaseがApache Dorisデータベースとテーブルをデータソースとして統合できます。この機能を有効にするには、以下のセットアップガイドに従ってください:

  • ドライバーのインストールと設定
  • MetabaseでのApache Dorisデータソースの設定
  • Metabaseでの可視化の構築
  • 接続と使用のヒント

MetabaseとDoris Driverのインストール

前提条件

  1. Metabaseバージョン0.48.0以降をダウンロードしてインストールします。詳細についてはMetabase Installation Documentationを参照してください。
  2. Apache Dorisクラスターを準備します。

Doris Driverのインストール

まず、最新のmetabase-doris-driverをダウンロードする必要があります。

次に、ドライバーをインストールします。インストール方法は、Metabaseのデプロイメント方法によって異なります:

Metabase標準デプロイメント

  1. Driverをダウンロードします

  2. Metabaseプラグインディレクトリを作成します(存在しない場合):

mkdir -p $path_metabase/plugins
  1. JARファイルをプラグインディレクトリにコピーします:
cp doris.metabase-driver.jar $path_metabase/plugins
  1. Metabaseサービスを再起動します

Metabase Dockerデプロイメント

MetabaseをDockerを使用して起動する場合は、doris.metabase-driver.jarをマウントして起動することを推奨します。Dockerコンテナ内のプラグインパスは/plugins/です。

  1. Driverをダウンロードします

  2. 次のコマンドを使用して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データソースを設定する

Metabasemetabase-doris-driverがインストールされたので、Dorisのtpchデータベースに接続するMetabaseのデータソースを定義する方法を見てみましょう。

接続パラメータの説明

Apache Dorisに接続する際に設定する必要があるパラメータは以下の通りです:

ParametersMeaningExample
Display Nameデータソース表示名Doris-TPCH
HostDoris FEノードアドレス127.0.0.1
PortDoris Query Port(MySQLプロトコルポート)9030
Catalog nameCatalog名(オプション、デフォルトはinternal)internal
Database nameデータベース名(必須)tpch
Usernameユーザー名root
Passwordパスワードyour_password

Database Name形式の説明:

  • Internal Tables: データベース名を直接入力します(例:tpch)。システムは自動的にinternalカタログを使用します。
  • External Tables/Data Lake: Catalog設定を入力します。内部テーブルのみをリンクする場合、この項目は不要です。

設定手順

  1. Metabaseを起動してログインします。

  2. 右上の歯車アイコンをクリックして、Admin Settingsを選択します。

Metabase Admin Settings

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

Add database

  1. Database typeドロップダウンメニューからApache Dorisを選択します。

Select Apache Doris

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

Fill in connection information

  1. Saveをクリックして設定を保存します。

  2. Metabaseは自動的に接続をテストし、データベースメタデータを同期します。接続が成功すると、成功メッセージが表示されます。

Connection successful

これでデータソース設定は完了です!次に、Metabaseで可視化を構築できます。

Metabaseでの可視化の構築

データソースとしてTPC-Hデータを選択します。Doris TPC-Hデータソースの構築手順についてはこのドキュメントを参照してください。

MetabaseでDorisデータソースを設定したので、データを可視化してみましょう...

コスト分析のために、異なる配送方法の時系列での注文金額の成長曲線を分析する必要があるとします。

Questionの作成

  1. ホームページの右上のNew +ボタンをクリックしてQuestionを選択します。

Create a new question

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

Select the table

SQLを使用したカスタムメトリクスの構築

収益を計算するには、カスタムSQL式を使用する必要があります:

  1. 右上のview sqlスイッチをクリックし、次にconvert this question to SQLをクリックしてSQLを編集します。

Switch to SQL mode

  1. 以下の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
  1. 右下隅のVisualizeボタンをクリックして結果を表示します。

View Results

可視化チャートの設定

  1. デフォルトの表示はテーブルです。左下隅のVisualizationボタンをクリックして、Lineチャートタイプを選択します。

Select Line Chart

  1. 必要に応じてチャートパラメータを設定します(metabaseは以下のように自動設定します):

    • X軸: ship_month(出荷月)
    • Y軸: revenue(収益)
    • シリーズ: l_shipmode(出荷モード)
  2. チャートスタイルをカスタマイズします:

    • Settingsアイコンをクリックして、色、ラベル、凡例の位置などを調整します。
    • Displayタブでは、軸のタイトル、値の形式などを設定できます。
  3. チャートの設定後、右上隅のSaveをクリックします。

  4. 課題名を入力します:my-tpch、および保存先のコレクションを選択します。

Naming the issue

Dashboardの作成

  1. + NewDashboardをクリックして新しいダッシュボードを作成します。ダッシュボード名を入力します:my-tpch

Creating a Dashboard

  1. Add a chartをクリックして、保存したクエスチョンをダッシュボードに追加します。

Adding a Question

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

Saving the Dashboard

この時点で、MetabaseはApache Dorisへの接続に成功し、データ分析と可視化ダッシュボードの作成が実装されました!

高度な機能

Catalogsを使用した外部データへのアクセス

Dorisはマルチcatalog機能をサポートしており、外部データソースへのクエリやデータソース間のクエリが可能です。Metabaseで使用する場合:

  1. Links設定画面でCatalogを設定し、そのcatalog配下の外部データベースをDatabaseに設定します。例:
    catalog: hive_catalogdatabase: warehouse - hive_catalogという名前のwarehouseデータベースにアクセス

Configuring catalog

  1. または、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

保存後、ドロップダウンメニューや日付ピッカーを使用してダッシュボードでデータを動的にフィルタリングできます。

パフォーマンス最適化の推奨事項

  1. Partition Clippingを使用: WHERE句にパーティション列のフィルタ条件を追加します。

    WHERE date >= '2024-01-01' AND date < '2024-02-01'
  2. Materialized Viewの活用: 複雑な集計クエリの場合、Dorisでmaterialized viewを作成することでクエリプロセスを高速化できます。

  3. 結果セットサイズの制御: LIMITを使用して返される行数を制限し、一度に大量のデータを読み込むことを避けます。

  4. クエリキャッシング: 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