QuickSight は、公式の MySQL データソースと Direct Query モードを使用して、MySQL インターフェイス経由でオンプレミスの ClickHouse 環境 (23.11+) に接続できます。
オンプレミスでの ClickHouse サーバー のセットアップ
MySQL インターフェイスを有効にした ClickHouse サーバー の設定方法については、公式ドキュメントを参照してください。
ClickHouse サーバー の 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 ハッシュに置き換えてください。
QuickSight では、MySQL ユーザーのプロファイルにいくつか追加の設定が必要です。
/etc/clickhouse-server/users.d/mysql_user.xml
<profiles>
<default>
<prefer_column_name_to_alias>1</prefer_column_name_to_alias>
<mysql_map_string_to_text_in_show_columns>1</mysql_map_string_to_text_in_show_columns>
<mysql_map_fixed_string_to_text_in_show_columns>1</mysql_map_fixed_string_to_text_in_show_columns>
</default>
</profiles>ただし、デフォルトのプロファイルではなく、MySQLユーザーが使用する別のプロファイルに割り当てることを推奨します。
最後に、ClickHouseサーバーが必要なIPアドレスで待ち受けるように設定します。
config.xml で、すべてのアドレスで待ち受けるには、以下のコメントアウトを外します。
<listen_host>::</listen_host>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.QuickSight を ClickHouse に接続する
まず、https://quicksight.aws.amazon.com にアクセスし、Datasets に移動して「New dataset」をクリックします。

QuickSight に含まれている公式の MySQL コネクタ (名前は MySQL) を検索します。

接続情報を指定します。MySQL インターフェイスのポートはデフォルトで 9004 ですが、 サーバー設定によって異なる場合があるので注意してください。

ここで、ClickHouse からデータを取得する方法は 2 つあります。1 つ目は、一覧からテーブルを選択する方法です。

また、データを取得するために custom SQL を指定することもできます。

「Edit/Preview data」をクリックすると、取得したテーブル構造を確認したり、custom SQL でデータにアクセスする場合はその内容を調整したりできます。

UI の左下で「Direct Query」モードが選択されていることを確認してください。

これで、dataset を公開して新しい visualization を作成できます。
既知の制限
- SPICE インポートは想定どおりに動作しないため、代わりに Direct Query モードを使用してください。詳細は #58553 を参照してください。