Skip to main content
Edit this page

Tableau Online

Tableau Onlineは、公式のMySQLデータソースを使用して、MySQLインターフェース経由でClickHouse CloudまたはオンプレミスのClickHouseセットアップに接続できます。

ClickHouse Cloud セットアップ

  1. ClickHouse Cloud Serviceを作成した後、認証情報画面でMySQLタブを選択します。
    Credentials screen - Prompt
  2. この特定のサービスに対してMySQLインターフェースを有効にするためにスイッチを切り替えます。これにより、そのサービスでポート3306が公開され、ユニークなMySQLユーザー名を含むMySQL接続画面が表示されます。パスワードはサービスのデフォルトユーザーのパスワードと同じになります。
    Credentials screen - Enabled MySQL
    代わりに、既存のサービスに対してMySQLインターフェースを有効にするには:
  3. サービスがRunning状態であることを確認し、MySQLインターフェースを有効にするサービスの「接続文字列を表示」ボタンをクリックします。
    Connection screen - Prompt MySQL
  4. この特定のサービスに対してMySQLインターフェースを有効にするためにスイッチを切り替えます。これにより、デフォルトのパスワードを入力するよう求められます。
    Connection screen - Prompt MySQL
  5. パスワードを入力すると、このサービスのMySQL接続文字列が表示されます。
    Connection screen -  MySQL Enabled

ClickHouse Cloudで複数のMySQLユーザーを作成する

デフォルトでは、mysql4<subdomain>という組み込みユーザーがあり、これはdefaultユーザーと同じパスワードを使用します。<subdomain>部分はあなたのClickHouse Cloudホスト名の最初のセグメントです。このフォーマットは、安全な接続を実装しているがTLSハンドシェイクでSNI情報を提供しないツール(MySQLコンソールクライアントがその一例)で作業するために必要です。この場合、ユーザー名に追加のヒントを含めずには内部ルーティングを行うことができません。

これにより、MySQLインターフェースで使用する新しいユーザーを作成する際には、mysql4<subdomain>_<username>のフォーマットを使用することを強くお勧めします。ここで、<subdomain>はあなたのCloudサービスを識別するためのヒントであり、<username>は選択した任意のサフィックスです。

Tip

ClickHouse Cloudホスト名がfoobar.us-east1.aws.clickhouse.cloudの場合、<subdomain>部分はfoobarに相当し、カスタムMySQLユーザー名はmysql4foobar_team1のようになります。

MySQLインターフェースを使用するために追加のユーザーを作成することができます。例えば、追加の設定を適用する必要がある場合などです。

  1. オプション - カスタムユーザーに適用する設定プロフィールを作成します。たとえば、後で作成するユーザーで接続するときにデフォルトで適用される追加設定を持つmy_custom_profile:

    CREATE SETTINGS PROFILE my_custom_profile SETTINGS prefer_column_name_to_alias=1;

    prefer_column_name_to_aliasは単なる例として使用されます。ここに他の設定を使用することもできます。

  2. 以下のフォーマットを使用してユーザーを作成します: mysql4<subdomain>_<username> (上記参照)。パスワードはダブルSHA1形式である必要があります。例:

    CREATE USER mysql4foobar_team1 IDENTIFIED WITH double_sha1_password BY 'YourPassword42$';

    または、このユーザーにカスタムプロフィールを使用したい場合:

    CREATE USER mysql4foobar_team1 IDENTIFIED WITH double_sha1_password BY 'YourPassword42$' SETTINGS PROFILE 'my_custom_profile';

    ここで、my_custom_profileは前に作成したプロフィールの名前です。

  3. 新しいユーザーに必要なアクセス権を付与して、目的のテーブルまたはデータベースと対話できるようにします。権限を付与する例として、たとえばsystem.query_logのみのアクセスを付与したい場合:

    GRANT SELECT ON system.query_log TO mysql4foobar_team1;
  4. 作成したユーザーを使用して、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 サーバーセットアップ

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

サーバーの 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

最初の行は生成されたパスワードで、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ハッシュに置き換えてください。

さらに、BIツールがMySQLコネクタを使用する際にデータベーススキーマを適切に調査できるように、SHOW [FULL] COLUMNS クエリの結果でMySQLネイティブタイプを表示するために、use_mysql_types_in_show_columnsを使用することを推奨します。

例えば:

/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/T6L0
mysql> show databases;
+--------------------+
| name |
+--------------------+
| INFORMATION_SCHEMA |
| default |
| information_schema |
| system |
+--------------------+
4行取得しました (0.00 sec)
4行読み込み、603.00 B、0.00156秒で、2564行/秒、377.48 KiB/秒

最後に、ClickHouseサーバーを希望するIPアドレスでリッスンするように設定します。例えば、config.xml の中で、すべてのアドレスでリッスンするために以下をアンコメントしてください:

<listen_host>::</listen_host> 

Tableau OnlineからClickHouseに接続する(SSLなしオンプレミスの場合)

Tableau Cloudサイトにログインし、新しい公開データソースを追加します。

Creating a new published data source

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

Selecting MySQL connector

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

Specifying your connection details

Tableau Onlineはデータベースを調べ、利用可能なテーブルのリストを提供します。目的のテーブルを右側のキャンバスにドラッグします。さらに、「今すぐ更新」をクリックしてデータをプレビューしたり、調査したフィールドのタイプや名前を微調整することもできます。

Selecting the tables to use

その後、右上の「Publish As」をクリックすれば、新しく作成したデータセットをTableau Onlineで通常通り使用できるようになります。

注:Tableau OnlineをTableau Desktopと組み合わせて使用し、ClickHouseデータセットを共有する場合は、こちらに表示されるセットアップガイドに従い、デフォルトのMySQLコネクタを使用するTableau Desktopを使用することを確認してください。こちらのデータソースドロップダウンでMySQLを選択した場合のみ表示されます。また、M1 Macをお使いの方は、こちらのトラブルシューティングスレッドでドライバインストールの方法を確認してください。

Tableau OnlineからClickHouseに接続する(CloudまたはオンプレミスセットアップでSSL使用)

Tableau OnlineのMySQL接続設定ウィザードではSSL証明書を提供することができないため、接続設定はTableau Desktopを使用して行い、それをTableau Onlineにエクスポートする必要があります。このプロセスは比較的簡単です。

WindowsまたはMacマシンでTableau Desktopを実行し、「接続」->「サーバーに接続」->「MySQL」を選択します。 おそらく、最初にマシンにMySQLドライバをインストールする必要があります。こちらのデータソースドロップダウンでMySQLを選択した場合に表示されるセットアップガイドに従ってください。また、M1 Macをお使いの方は、こちらのトラブルシューティングスレッドでドライバインストールの方法を確認してください。

Create a new data source
Note

MySQL接続設定画面で、「SSL」オプションが有効になっていることを確認してください。 ClickHouse CloudのSSL証明書は、LetsEncryptによって署名されています。 このルート証明書をこちらからダウンロードできます。

ClickHouse CloudインスタンスのMySQLユーザー資格情報と、ダウンロードしたルート証明書へのパスを提供します。

Specifying your credentials

通常通り、目的のテーブルを選択し(Tableau Onlineと同様)、サーバー -> データソースの公開 -> Tableau Cloudを選択します。

Publish data source

重要:認証オプションで「埋め込みパスワード」を選択する必要があります。

Data source publishing settings - embedding your credentials

さらに、「発行したデータソースを使用するようにワークブックを更新」を選択します。

Data source publishing settings - updating the workbook for online usage

最後に「発行」をクリックすると、埋め込まれた資格情報を持つデータソースがTableau Onlineで自動的に開かれます。

既知の制限事項 (ClickHouse 23.11)

既知の制限事項はすべてClickHouse 23.11で修正されています。他の互換性の問題が発生した場合は、こちらからご連絡いただくか、新しい問題を作成してください。