Tableau Online
Tableau Online は、公式の MySQL データソースを使用して、ClickHouse Cloud またはオンプレミスの ClickHouse セットアップに MySQL インターフェースを介して接続できます。
ClickHouse Cloud セットアップ
MySQLインターフェースを有効にする
スイッチを切り替えて、この特定のサービスのためにMySQLインターフェースを有効にします。
これにより、このサービスのポート3306
が公開され、ユニークなMySQLユーザー名を含むMySQL接続画面が表示されます。

代わりに、既存のサービスに対してMySQLインターフェースを有効にするためには:
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パスワード暗号化を使用する必要があります。
シェルからDouble SHA1で暗号化されたランダムパスワードを生成するには:
出力は以下のようになります:
最初の行は生成されたパスワードであり、2行目はClickHouseを構成するために使用できるハッシュです。
生成されたハッシュを使用するmysql_user
の例の設定は以下の通りです:
/etc/clickhouse-server/users.d/mysql_user.xml
password_double_sha1_hex
エントリを自分の生成したDouble SHA1ハッシュに置き換えてください。
さらに、use_mysql_types_in_show_columns
を使用して、SHOW [FULL] COLUMNS
クエリ結果でClickHouseのタイプの代わりにネイティブなMySQLタイプを表示することをお勧めします。これにより、BIツールがMySQLコネクタを使用してデータベーススキーマを正しく調査できるようになります。
例えば:
/etc/clickhouse-server/users.d/mysql_user.xml
または、デフォルトのプロファイルではなく、別のプロファイルに割り当てることができます。
mysql
バイナリが利用可能な場合は、コマンドラインから接続をテストできます。上記のサンプルユーザー名(mysql_user
)とパスワード(LZOQYnqQN4L/T6L0
)を使用した場合、コマンドラインは次のようになります:
最後に、ClickHouseサーバーが希望のIPアドレスでリスンするように構成します。例えば、config.xml
で以下をコメント解除してすべてのアドレスをリスンするようにします:
Tableau Online を ClickHouse に接続する (SSLなしのオンプレミス)
あなたの Tableau Cloud サイトにログインし、新しい公開データソースを追加します。

利用可能なコネクタのリストから "MySQL" を選択します。

ClickHouse セットアップ中に収集した接続情報を指定します。

Tableau Online はデータベースを調査し、利用可能なテーブルのリストを提供します。希望するテーブルを右側のキャンバスにドラッグします。さらに、"Update Now" をクリックするとデータをプレビューでき、調査したフィールドタイプや名前を微調整することができます。

その後は、右上隅で "Publish As" をクリックするだけで、通常通り Tableau Online で新しく作成したデータセットを使用できるようになります。
NB: Tableau Online を Tableau Desktop と組み合わせて使用し、ClickHouse データセットを共有したい場合は、デフォルトの MySQL コネクタとともに Tableau Desktop を使用する必要があることに注意してください。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 ドライバーをインストールする必要があります。 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
で修正されました。他に互換性のない問題に出会った場合は、ためらわずに お問い合わせ または 新しい問題を作成してください。