Tableau Online
Tableau Online は、公式の MySQL データソースを利用し、MySQL インターフェース経由で ClickHouse Cloud またはオンプレミス環境の ClickHouse に接続できます。
ClickHouse Cloud のセットアップ
MySQL インターフェイスを有効化する
このサービスで MySQL インターフェイスを有効化するために、スイッチをオンにします。
これにより、このサービスでポート 3306 が公開され、固有の MySQL ユーザー名を含む MySQL 接続画面が表示されます。

既存のサービスに対して MySQL インターフェイスを有効化する場合は、次の手順を実行します。
Connect を選択する
対象のサービスが Running 状態であることを確認し、MySQL インターフェイスを有効化したいサービスをクリックします。
左側のメニューから "Connect" を選択します。

MySQL インターフェイスを有効化する
このサービスで MySQL インターフェイスを有効化するために、スイッチをオンにします。
これにより、このサービスでポート 3306 が公開され、固有の MySQL ユーザー名を含む MySQL 接続画面が表示されます。

ClickHouse Cloud で読み取り専用の MySQL ユーザーを作成する
ClickHouse Cloud は、デフォルトユーザーと同じパスワードを共有する mysql4<subdomain> ユーザーを自動的に作成します。
<subdomain> 部分は、ClickHouse Cloud のホスト名の先頭部分に対応します。
このユーザー名フォーマットは、安全な接続を確立するものの、TLS ハンドシェイク内に SNI (Server Name Indication) 情報を含めないツールとの互換性を確保するために必要です。 SNI 情報がない場合、システムは適切な内部ルーティングを行えないため、ユーザー名に埋め込まれたサブドメインのヒントによって必要なルーティング情報を提供します。 MySQL コンソールクライアントは、この要件を持つツールの一例です。
推奨されるベストプラクティスは、新しい読み取り専用の MySQL ユーザーを作成することです。
foobar.us-east1.aws.clickhouse.cloud のような ClickHouse Cloud のホスト名では、<subdomain> 部分は foobar に相当し、カスタム MySQL ユーザー名は mysql4foobar_team1 のようになります。
ClickHouse Cloud で複数の MySQL ユーザーに関するトラブルシューティング
新しい MySQL ユーザーを作成した後に、MySQL CLI クライアント経由で接続しようとした際、次のエラーが表示される場合:
この場合は、ユーザー名が 上記 で説明したとおり mysql4<subdomain>_<username> 形式になっていることを確認してください。
オンプレミスの ClickHouse サーバーのセットアップ
MySQL インターフェースが有効になっている ClickHouse サーバーのセットアップ方法については、 公式ドキュメント を参照してください。
サーバーの config.xml に項目を追加することに加えて
MySQL インターフェイスを使用するユーザーに対しては、 Double SHA1 password encryption を使用することも必須となります。
シェルから Double SHA1 で暗号化されたランダムなパスワードを生成するには、次のようにします。
出力結果は以下のようになります。
1 行目は生成されたパスワードで、2 行目は ClickHouse を設定する際に使用できるハッシュです。
以下は、生成されたハッシュを使用する mysql_user の設定例です。
/etc/clickhouse-server/users.d/mysql_user.xml
password_double_sha1_hex エントリを、自身で生成した Double SHA1 ハッシュ値に置き換えてください。
さらに、SHOW [FULL] COLUMNS クエリ結果で ClickHouse の型ではなくネイティブな MySQL 型を表示するために、
use_mysql_types_in_show_columns を使用することを推奨します。
これにより、MySQL コネクタを使用する際に、BI ツールがデータベーススキーマを正しく解析できるようになります。
例:
/etc/clickhouse-server/users.d/mysql_user.xml
または、デフォルトプロファイルではなく別のプロファイルに割り当てます。
mysql バイナリが利用可能な場合は、コマンドラインから接続をテストできます。
上記のサンプルのユーザー名(mysql_user)とパスワード(LZOQYnqQN4L/T6L0)を使用した場合、コマンドは次のようになります。
最後に、ClickHouse Server が指定した IP アドレスで待ち受けるように設定します。たとえば config.xml では、すべてのアドレスで待ち受けるために、次の設定のコメントアウトを解除します。
Tableau Online から ClickHouse(オンプレミス・SSL なし)への接続
Tableau Cloud サイトにログインし、新しい Published Data Source(公開データソース)を追加します。

利用可能なコネクタ一覧から「MySQL」を選択します。

ClickHouse のセットアップ時に取得した接続情報を入力します。

Tableau Online がデータベースをスキャンし、利用可能なテーブルの一覧を表示します。右側のキャンバスに目的のテーブルをドラッグします。さらに、「Update Now」をクリックしてデータをプレビューしたり、検出されたフィールドの型や名前を微調整したりできます。

その後は、右上の「Publish As」をクリックするだけで、作成したデータセットを Tableau Online で通常どおり利用できるようになります。
注: Tableau Online と Tableau Desktop を併用し、それらの間で ClickHouse のデータセットを共有したい場合は、Tableau Desktop でもデフォルトの MySQL コネクタを使用してください。Data Source ドロップダウンから MySQL を選択した際に表示されるセットアップガイドに従って構成します(ガイドは こちら にあります)。M1 Mac を使用している場合は、ドライバーインストールの回避策について、この トラブルシューティングスレッド を参照してください。
Tableau Online を ClickHouse に接続する(SSL を用いたクラウドまたはオンプレミス環境)
Tableau Online の MySQL 接続セットアップウィザードでは SSL 証明書を指定できないため、
Tableau Desktop で接続を設定し、その接続を Tableau Online にエクスポートする方法のみが利用できます。とはいえ、この手順は比較的容易です。
Windows または Mac のマシン上で Tableau Desktop を起動し、「Connect」 -> 「To a Server」 -> 「MySQL」を選択します。
多くの場合、最初にマシンに MySQL ドライバをインストールする必要があります。
Data Source のドロップダウンから MySQL を選択すると表示されるセットアップガイドに従うことで、ここからインストールできます。
M1 Mac をお使いの場合は、ドライバインストールの回避策について、このトラブルシューティングスレッドを確認してください。

MySQL 接続セットアップの UI で、「SSL」オプションが有効になっていることを確認してください。
ClickHouse Cloud の SSL 証明書は Let's Encrypt によって署名されています。
ルート証明書はここからダウンロードできます。
ClickHouse Cloud インスタンス用の MySQL ユーザー認証情報と、ダウンロードしたルート証明書へのパスを入力します。

(Tableau Online の場合と同様に)必要なテーブルをいつもどおり選択し、
「Server」 -> 「Publish Data Source」 -> 「Tableau Cloud」を選択します。

重要: 「Authentication」オプションで「Embedded password」を選択する必要があります。

さらに、「Update workbook to use the published data source」を選択します。

最後に「Publish」をクリックすると、認証情報が埋め込まれたデータソースが自動的に Tableau Online で開かれます。
既知の制限事項(ClickHouse 23.11)
既知の制限事項はすべて ClickHouse 23.11 で修正されています。その他の非互換性が発生した場合は、お問い合わせいただくか、新しい issue を作成してください。

