Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

QuickSight

ClickHouse対応

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
fbc958cc745a82188a51f30de69eebfc67c40ee4

1行目は生成されたパスワードで、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/T6L0
mysql> 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」をクリックします。

Datasets セクションで New dataset ボタンが表示されている Amazon QuickSight ダッシュボード

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

検索結果で MySQL が強調表示されている QuickSight のデータソース選択画面

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

hostname、ポート、データベース、認証情報のフィールドがある QuickSight の MySQL 接続設定フォーム

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

ClickHouse で利用可能なデータベーステーブルが表示されている QuickSight のテーブル選択インターフェイス

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

ClickHouse からデータを取得するための QuickSight の custom SQL クエリエディタ

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

カラムとサンプルデータを含むテーブル構造が表示されている QuickSight のデータプレビュー

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

下隅で Direct Query モードのオプションが強調表示されている QuickSight インターフェイス

これで、dataset を公開して新しい visualization を作成できます。

既知の制限

  • SPICE インポートは想定どおりに動作しないため、代わりに Direct Query モードを使用してください。詳細は #58553 を参照してください。
Navigation