メインコンテンツへスキップ
メインコンテンツへスキップ

Tableau Online

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

ClickHouse Cloud のセットアップ

Connect your app を選択する

ClickHouse Cloud サービスを作成したら、Connect your app 画面でドロップダウンから MySQL を選択します。

MySQL インターフェイス選択用ドロップダウンが表示された ClickHouse Cloud の認証情報画面

MySQL インターフェイスを有効化する

このサービスで MySQL インターフェイスを有効化するために、スイッチをオンにします。 これにより、このサービスでポート 3306 が公開され、固有の MySQL ユーザー名を含む MySQL 接続画面が表示されます。

MySQL インターフェイスの有効化トグルと接続情報が表示された ClickHouse Cloud 画面

既存のサービスに対して MySQL インターフェイスを有効化する場合は、次の手順を実行します。

Connect を選択する

対象のサービスが Running 状態であることを確認し、MySQL インターフェイスを有効化したいサービスをクリックします。 左側のメニューから "Connect" を選択します。

Connect オプションが強調表示された ClickHouse Cloud サービス接続画面

MySQL を選択する

Connect With ドロップダウンから MySQL を選択します。

MySQL オプションの選択が表示された ClickHouse Cloud の接続画面

MySQL インターフェイスを有効化する

このサービスで MySQL インターフェイスを有効化するために、スイッチをオンにします。 これにより、このサービスでポート 3306 が公開され、固有の MySQL ユーザー名を含む MySQL 接続画面が表示されます。

MySQL インターフェイスが有効化され、接続情報が表示された ClickHouse Cloud の接続画面

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 のようになります。

読み取り専用の設定プロファイルを作成する

読み取り専用ユーザーに適用するための settings profile を作成し、 readonly 設定を 1 に設定します:

CREATE SETTINGS PROFILE readonly_profile SETTINGS readonly = 1

新しい読み取り専用の MySQL ユーザーを作成する

次の形式に従った名前で ユーザーを作成 します:

mysql4<subdomain>_<username>

新しいユーザーに readonly_profile を適用し、パスワードが double SHA1 形式であることを確認します。例:

CREATE USER mysql4foobar_readonly
IDENTIFIED WITH double_sha1_password BY 'YourPassword42$'
SETTINGS PROFILE 'readonly_profile';

新しいユーザーに対象テーブルへの権限を付与する

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

GRANT SELECT ON system.query_log TO mysql4foobar_readonly;
注記

読み取り専用ユーザーには、アクセスを許可したいテーブルに対してのみ SELECT 権限を付与するようにしてください。

新しく作成したユーザーを使用して、MySQL インターフェース経由で ClickHouse Cloud サービスに接続できます。

ClickHouse Cloud で複数の MySQL ユーザーに関するトラブルシューティング

新しい MySQL ユーザーを作成した後に、MySQL CLI クライアント経由で接続しようとした際、次のエラーが表示される場合:

ERROR 2013 (HY000): 'reading authorization packet' でMySQLサーバーへの接続が失われました、システムエラー: 54

この場合は、ユーザー名が 上記 で説明したとおり mysql4&lt;subdomain&gt;_&lt;username&gt; 形式になっていることを確認してください。

オンプレミスの ClickHouse サーバーのセットアップ

MySQL インターフェースが有効になっている ClickHouse サーバーのセットアップ方法については、 公式ドキュメント を参照してください。

サーバーの config.xml に項目を追加することに加えて

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

MySQL インターフェイスを使用するユーザーに対しては、 Double SHA1 password encryption を使用することも必須となります。

シェルから 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

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 エントリを、自身で生成した Double SHA1 ハッシュ値に置き換えてください。

さらに、SHOW [FULL] COLUMNS クエリ結果で ClickHouse の型ではなくネイティブな MySQL 型を表示するために、 use_mysql_types_in_show_columns を使用することを推奨します。 これにより、MySQL コネクタを使用する際に、BI ツールがデータベーススキーマを正しく解析できるようになります。

例:

/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 rows in set (0.00 sec)
Read 4 rows, 603.00 B in 0.00156 sec., 2564 rows/sec., 377.48 KiB/sec.

最後に、ClickHouse Server が指定した IP アドレスで待ち受けるように設定します。たとえば config.xml では、すべてのアドレスで待ち受けるために、次の設定のコメントアウトを解除します。

<listen_host>::</listen_host> 

Tableau Online から ClickHouse へ接続する(オンプレミス、SSL なし)

Tableau Cloud サイトにログインし、新しい Published Data Source を追加します。

Tableau Online のインターフェースで、公開データソースを作成するための「New」ボタンが表示されている画面

利用可能なコネクタ一覧から「MySQL」を選択します。

MySQL オプションがハイライトされた Tableau Online のコネクタ選択画面

ClickHouse のセットアップ時に取得した接続情報を入力します。

サーバー、ポート、データベース、および認証情報のフィールドがある Tableau Online の MySQL 接続設定画面

Tableau Online がデータベースを解析し、利用可能なテーブル一覧を表示します。右側のキャンバスに、使用したいテーブルをドラッグします。あわせて、「Update Now」をクリックしてデータをプレビューしたり、検出されたフィールドの型や名前を細かく調整したりできます。

左側にデータベーステーブル、右側にドラッグ&ドロップ可能なキャンバスが表示されている Tableau Online のデータソース画面

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

注意:Tableau Online と Tableau Desktop を併用し、両者で ClickHouse のデータセットを共有したい場合は、Tableau Desktop でもデフォルトの MySQL コネクタを使用してください。その際は、Data Source ドロップダウンから MySQL を選択すると表示されるセットアップガイド(こちら)に従ってください。M1 Mac を使用している場合は、ドライバインストールの回避策について、この トラブルシューティングスレッド を参照してください。

Tableau Online を ClickHouse(Cloud またはオンプレミス環境での SSL 設定)に接続する

Tableau Online の MySQL 接続セットアップウィザードからは SSL 証明書を指定できないため、
Tableau Desktop を使って接続を設定し、その接続を Tableau Online にエクスポートする方法しかありません。この手順自体は比較的簡単です。

Windows または Mac マシンで Tableau Desktop を起動し、「Connect」 -> 「To a Server」 -> 「MySQL」を選択します。
最初にマシンへ MySQL ドライバのインストールが必要になる場合があります。
Data Source のドロップダウンで MySQL を選択すると表示されるセットアップガイドに従うことで、こちらからインストールできます。
M1 Mac を使用している場合は、ドライバインストールの回避策として このトラブルシューティングスレッド を確認してください。

Tableau Desktop のイン�ターフェイスで、Connect メニュー内の MySQL オプションがハイライトされている画面

注記

MySQL 接続のセットアップ UI で、必ず "SSL" オプションを有効にしてください。
ClickHouse Cloud の SSL 証明書は Let's Encrypt によって署名されています。
ルート証明書は こちら からダウンロードできます。

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

Tableau Desktop の MySQL 接続ダイアログ。SSL オプションが有効で、サーバー名、ユーザー名、パスワード、証明書の入力フィールドが表示されている画面

通常どおり(Tableau Online の場合と同様に)必要なテーブルを選択し、
「Server」 -> 「Publish Data Source」 -> Tableau Cloud を選択します。

Tableau Desktop の Server メニューで、Publish Data Source オプションがハイライトされている画面

重要: 「Authentication」オプションで "Embedded password" を選択する必要があります。

Tableau Desktop の公開ダイアログで、Authentication オプションの Embedded password が選択されている画面

さらに、「Update workbook to use the published data source」を選択します。

Tableau Desktop の公開ダイアログで、「Update workbook to use the published data source」オプションにチェックが入っている画面

最後に「Publish」をクリックすると、認証情報を埋め込んだデータソースが自動的に Tableau Online で開かれます。

既知の制限事項 (ClickHouse 23.11)

既知の制限事項はすべて ClickHouse 23.11 で解消されています。その他に互換性の問題が見つかった場合は、お問い合わせからご連絡いただくか、新しい issue を作成してください。