Tableau を ClickHouse に接続する
ClickHouse は公式の Tableau コネクタを提供しており、 Tableau Exchange に掲載されています。 このコネクタは、ClickHouse の高度な JDBC ドライバー をベースとしています。
このコネクタを使用すると、Tableau から ClickHouse のデータベースやテーブルをデータソースとして利用できます。この機能を有効にするには、 以下のセットアップガイドに従ってください。
利用開始前のセットアップ
-
接続情報を準備します
HTTP(S) で ClickHouse に接続するには、次の情報が必要です。
Parameter(s) Description HOSTandPORT通常、TLS を使用する場合のポートは 8443、TLS を使用しない場合のポートは 8123 です。 DATABASE NAME既定で defaultという名前のデータベースが用意されています。接続したいデータベースの名前を使用してください。USERNAMEandPASSWORD既定のユーザー名は defaultです。用途に応じて適切なユーザー名を使用してください。ClickHouse Cloud サービスに関する詳細情報は、ClickHouse Cloud コンソールで確認できます。 サービスを選択し、Connect をクリックします。

HTTPS を選択します。接続情報は、サンプルの
curlコマンド内に表示されます。
自己管理型の ClickHouse を使用している場合、接続情報は ClickHouse 管理者によって設定されます。
-
Tableau Desktop をダウンロードしてインストールします。
-
clickhouse-tableau-connector-jdbcの手順に従って、互換性のあるバージョンの ClickHouse JDBC driver をダウンロードします。
clickhouse-jdbc-X.X.X-all-dependencies.jar JAR ファイルを必ずダウンロードしてください。このアーティファクトはバージョン 0.9.2 から利用可能です。
- JDBC ドライバーを、以下のフォルダーに配置します(OS に応じて、フォルダーが存在しない場合は作成してください):
- macOS:
~/Library/Tableau/Drivers - Windows:
C:\Program Files\Tableau\Drivers
- macOS:
- Tableau で ClickHouse のデータソースを設定し、データの可視化を開始します。
Tableau で ClickHouse データソースを構成する
clickhouse-jdbc ドライバーのインストールと設定が完了したので、ClickHouse の TPCD データベースに接続する
Tableau のデータソースをどのように定義するかを説明します。
-
Tableau を起動します。(すでに起動している場合は再起動してください。)
-
左側メニューの To a Server セクションで More をクリックします。利用可能なコネクタ一覧で ClickHouse by ClickHouse を検索します:

コネクタ一覧に ClickHouse by ClickHouse が見つからない場合は、古いバージョンの Tableau Desktop を使用している可能性があります。 その場合は、Tableau Desktop アプリケーションのアップグレードを検討するか、コネクタを手動でインストールしてください。
- ClickHouse by ClickHouse をクリックすると、次のダイアログが表示されます:

- Install and Restart Tableau をクリックします。アプリケーションを再起動します。
- 再起動後、コネクタは
ClickHouse JDBC by ClickHouse, Inc.という完全な名前で表示されます。これをクリックすると、次のダイアログが表示されます:

-
接続情報を入力します:
Setting Value Server プレフィックスやサフィックスを付けない ClickHouse ホスト名 Port 8443 Database default Username default Password ****
ClickHouse Cloud を利用する場合は、安全な接続のために SSL のチェックボックスを有効にする必要があります。
今回の ClickHouse データベース名は TPCD ですが、上のダイアログでは Database を default に設定し、その次のステップで Schema に TPCD を選択する必要があります。(これはコネクタ側のバグによるものと思われ、この動作は将来的に変更される可能性がありますが、 現時点ではデータベースとして default を使用する必要があります。)
- Sign In ボタンをクリックすると、新しい Tableau ワークブックが表示されます:

- Schema のドロップダウンから TPCD を選択すると、TPCD 内のテーブル一覧が表示されます:

これで Tableau で可視化を作成する準備が整いました。
Tableau での可視化の作成
Tableau で ClickHouse のデータソースを構成できたので、さっそくデータを可視化してみましょう。
- CUSTOMER テーブルをワークブック上にドラッグします。列は表示されますが、データテーブルは空であることが分かります:

-
Update Now ボタンをクリックすると、CUSTOMER から 100 行がテーブルに読み込まれます。
-
ORDERS テーブルをワークブックにドラッグし、2 つのテーブル間のリレーションシップフィールドとして Custkey を設定します:

- これで、データソースとして ORDERS と LINEITEM テーブルが互いに関連付けられました。このリレーションシップを利用して、 データに関するさまざまな問いに答えることができます。ワークブック下部の Sheet 1 タブを選択します。

- たとえば、特定のアイテムが各年にどれだけ注文されたかを知りたいとします。ORDERS の OrderDate を Columns セクション(横方向のフィールド)にドラッグし、LINEITEM の Quantity を Rows にドラッグします。Tableau は 次のような折れ線グラフを生成します:

あまり面白い折れ線グラフではありませんが、このデータセットはスクリプトによって生成され、クエリのパフォーマンステスト用に構築されているため、 TCPD データのシミュレートされた注文には大きな変動がないことに気付くでしょう。
-
次に、四半期ごとの平均注文額(ドル)を、配送モード(航空、郵便、船舶、トラックなど)ごとにも知りたいとします。
- New Worksheet タブをクリックして新しいシートを作成します
- ORDERS の OrderDate を Columns にドラッグし、Year から Quarter に変更します
- LINEITEM の Shipmode を Rows にドラッグします
次のように表示されるはずです:

- Abc の値は、テーブルにメトリクスをドラッグするまでの空きスペースを埋めるプレースホルダーです。ORDERS の Totalprice をテーブル上にドラッグします。 デフォルトの集計は Totalprices の SUM(合計)になっていることに注意してください:

- SUM をクリックし、Measure を Average に変更します。同じドロップダウンメニューから Format を選択し、 Numbers を Currency (Standard) に変更します:

これで完了です。Tableau を ClickHouse に正常に接続できました。これにより、ClickHouse データを分析および可視化するための 可能性が大きく広がりました。
コネクタを手動でインストールする
デフォルトでコネクタが含まれていない古いバージョンの Tableau Desktop を使用している場合は、次の手順で手動インストールできます。
- Tableau Exchange から最新の taco ファイルをダウンロードします。
- taco ファイルを次の場所に配置します。
- macOS:
~/Documents/My Tableau Repository/Connectors - Windows:
C:\Users\[Windows User]\Documents\My Tableau Repository\Connectors
- macOS:
- Tableau Desktop を再起動します。インストールが正常に完了していれば、「New Data Source」セクションにコネクタが表示されます。
接続と分析に関するヒント
Tableau と ClickHouse の統合を最適化するための、より詳しい説明やベストプラクティスについては、接続のヒント および 分析のヒント を参照してください。
テスト
このコネクタは TDVT フレームワーク でテストされており、現在テストカバレッジ 97% を維持しています。
概要
Tableau を ClickHouse に接続するには、汎用の ODBC/JDBC 用 ClickHouse ドライバーを使用できます。ただし、このコネクターを使用すると、接続設定の手順を簡略化できます。コネクターに関して問題が発生した場合は、GitHub でお気軽にお問い合わせください。