Tableau Online は、公式の MySQL データソースを使用して、MySQL インターフェイス経由で ClickHouse Cloud またはオンプレミスの ClickHouse 環境に接続できます。
ClickHouse Cloud の設定
[object Object]
ClickHouse Cloud サービスを作成したら、Connect your app 画面でドロップダウンから MySQL を選択します。

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

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

[object Object]
Connect With ドロップダウンから MySQL を選択します。

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

ClickHouse Cloud で読み取り専用の MySQL ユーザーを作成する
ClickHouse Cloud では、デフォルトユーザーと同じパスワードを共有する mysql4<subdomain> ユーザーが自動的に作成されます。
<subdomain> の部分は、ClickHouse Cloud のホスト名の先頭部分に対応します。
このユーザー名形式は、安全な接続を確立しても TLS ハンドシェイクに SNI (Server Name Indication) 情報を含めないツールとの互換性のために必要です。 SNI 情報がないと、システムは適切な内部ルーティングを実行できないため、ユーザー名に埋め込まれたサブドメイン情報が必要なルーティング情報を補います。 MySQL コンソールクライアントは、その一例です。
読み取り専用の設定プロファイルを作成する
読み取り専用ユーザーに適用する 設定プロファイル を作成し、
readonly 設定を 1 にします。
CREATE SETTINGS PROFILE readonly_profile SETTINGS readonly = 1新しい読み取り専用の MySQL ユーザーを作成する
次の形式の名前で ユーザーを作成 します。
mysql4<subdomain>_<username>新しいユーザーに readonly_profile を適用し、パスワードがダブル SHA1 フォーマットであることを確認してください。例:
CREATE USER mysql4foobar_readonly
IDENTIFIED WITH double_sha1_password BY 'YourPassword42$'
SETTINGS PROFILE 'readonly_profile';新しいユーザーに必要なテーブルへのアクセス権限を付与する
必要なテーブルまたはデータベースを操作できるように、新しいユーザーに必要な権限を 付与 します。
たとえば、system.query_log のみにアクセスを許可する場合は次のとおりです。
GRANT SELECT ON system.query_log TO mysql4foobar_readonly;新しく作成したユーザーは、MySQL インターフェイスを使用して ClickHouse Cloud サービスに接続する際に利用できます。
ClickHouse Cloud で複数の MySQLユーザーをトラブルシューティングする
新しい MySQLユーザーを作成し、MySQL CLI クライアント経由で接続した際に次のエラーが表示される場合:
ERROR 2013 (HY000): Lost connection to MySQL server at 'reading authorization packet', system error: 54この場合、ユーザー名が上記で説明した mysql4<subdomain>_<username> 形式に従っていることを確認してください。
オンプレミスの ClickHouse サーバーのセットアップ
MySQL インターフェイスを有効にした ClickHouse server の設定方法については、公式ドキュメントを参照してください。
サーバーの config.xml にエントリを追加する以外に
<clickhouse>
<mysql_port>9004</mysql_port>
</clickhouse>また、MySQL インターフェイスを使用するユーザーには、 ダブル SHA1 パスワード暗号化 の使用が必須です。
シェルからダブル SHA1 で暗号化されたランダムなパスワードを生成するには:
PASSWORD=$(base64 < /dev/urandom | head -c16); echo "$PASSWORD"; echo -n "$PASSWORD" | sha1sum | tr -d '-' | xxd -r -p | sha1sum | tr -d '-'出力は以下のようになります。
LZOQYnqQN4L/T6L0
fbc958cc745a82188a51f30de69eebfc67c40ee41行目は生成されたパスワードで、2行目はClickHouseの設定に使用できるハッシュです。
以下は、生成されたハッシュを使用する mysql_user の設定例です。
/etc/clickhouse-server/users.d/mysql_user.xml
<users>
<mysql_user>
<password_double_sha1_hex>fbc958cc745a82188a51f30de69eebfc67c40ee4</password_double_sha1_hex>
<networks>
<ip>::/0</ip>
</networks>
<profile>default</profile>
<quota>default</quota>
</mysql_user>
</users>password_double_sha1_hex エントリを、自分で生成したダブル SHA1 ハッシュに置き換えてください。
さらに、SHOW [FULL] COLUMNS クエリの結果に ClickHouse の型ではなくネイティブな MySQL 型を表示するため、use_mysql_types_in_show_columns を使用することを推奨します。
これにより、MySQL コネクタを使用する際に、BI ツールがデータベースのスキーマを適切に解析できるようになります。
例:
/etc/clickhouse-server/users.d/mysql_user.xml
<profiles>
<default>
<use_mysql_types_in_show_columns>1</use_mysql_types_in_show_columns>
</default>
</profiles>または、デフォルトではなく別のプロファイルに割り当てます。
mysql バイナリが利用できる場合は、コマンドラインから接続をテストできます。
上記のサンプルのユーザー名 (mysql_user) とパスワード (LZOQYnqQN4L/T6L0) を使用すると、コマンドラインは次のようになります。
mysql --protocol tcp -h localhost -u mysql_user -P 9004 --password=LZOQYnqQN4L/T6L0mysql> show databases;
+--------------------+
| name |
+--------------------+
| INFORMATION_SCHEMA |
| default |
| information_schema |
| system |
+--------------------+
4 rows in set (0.00 sec)
Read 4 rows, 603.00 B in 0.00156 sec., 2564 rows/sec., 377.48 KiB/sec.最後に、ClickHouse Server が指定した IP アドレスで待ち受けるよう設定します。たとえば、config.xml で全アドレスを待ち受けるには、以下のコメントアウトを解除します。
<listen_host>::</listen_host> 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 を使用している場合は、ドライバーのインストール回避策について このトラブルシューティングスレッド を確認してください。

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 を作成してください。