メインコンテンツまでスキップ
メインコンテンツまでスキップ

QuickSight

Community Maintained

QuickSightは、公式のMySQLデータソースとDirect Queryモードを使用して、オンプレミスのClickHouseセットアップ (23.11以上) にMySQLインターフェースで接続できます。

オンプレミスのClickHouseサーバー設定

ClickHouseサーバーをMySQLインターフェースで設定する方法については、公式ドキュメント を参照してください。

サーバーの config.xml にエントリを追加することに加えて、

<clickhouse>
    <mysql_port>9004</mysql_port>
</clickhouse>

MySQLインターフェースを使用するユーザーに対して、Double SHA1パスワード暗号化 を使用することが必須です。

シェルからDouble SHA1で暗号化されたランダムパスワードを生成するには:

PASSWORD=$(base64 < /dev/urandom | head -c16); echo "$PASSWORD"; echo -n "$PASSWORD" | sha1sum | tr -d '-' | xxd -r -p | sha1sum | tr -d '-'

出力は以下のようになります。

LZOQYnqQN4L/T6L0
fbc958cc745a82188a51f30de69eebfc67c40ee4

最初の行は生成されたパスワードで、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 のエントリを、生成したDouble 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ユーザーが使用できる別のプロファイルに割り当てることをお勧めします。

最後に、クリックハウスサーバーを希望の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 にアクセスし、データセットに移動して「新しいデータセット」をクリックします。

Amazon QuickSightダッシュボードのデータセットセクションにある新しいデータセットボタン

QuickSightにバンドルされている公式のMySQLコネクタを検索します(名称はMySQL)。

検索結果にハイライトされたQuickSightデータソース選択画面

接続詳細を指定します。MySQLインターフェースポートはデフォルトで9004ですが、サーバー構成によって異なる場合があります。

ホスト名、ポート、データベースおよび資格情報フィールドを含むQuickSight MySQL接続設定フォーム

ClickHouseからデータを取得する方法として、2つの選択肢があります。まずは、リストからテーブルを選択できます。

ClickHouseから利用可能なデータベーステーブルを示すQuickSightのテーブル選択インターフェース

あるいは、カスタムSQLを指定してデータを取得することもできます。

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

「データを編集/プレビュー」をクリックすると、テーブルの構造を確認したり、カスタムSQLを調整したりできます。

カラムとサンプルデータを含むテーブル構造を示��すQuickSightデータプレビュー

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

左下隅にハイライトされたDirect Queryモードオプションを持つQuickSightインターフェース

これで、データセットを公開し、新しい視覚化を作成することができます!

知られている制限事項

  • SPICEインポートは期待通りに動作しません。かわりにDirect Queryモードを使用してください。詳細は #58553 を参照してください。