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

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(公開データソース)を追加します。

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

利用可能なコネクタ一覧から「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 に接続する(SSL を用いたクラウドまたはオンプレミス環境)

Tableau Online の MySQL 接続セットアップウィザードでは SSL 証明書を指定できないため、
Tableau Desktop で接続を設定し、その接続を Tableau Online にエクスポートする方法のみが利用できます。とはいえ、この手順は比較的容易です。

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

MySQL オプションがハイライトされた Connect メニューを表示している Tableau Desktop インターフェイス

注記

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

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

SSL オプションが有効になっており、サーバー、ユーザ名、パスワード、証明書の各フィールドが表示されている Tableau Desktop の MySQL 接続ダイアログ

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

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

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

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

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

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

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

既知の制限事項(ClickHouse 23.11)

既知の制限事項はすべて ClickHouse 23.11 で修正されています。その他の非互換性が発生した場合は、お問い合わせいただくか、新しい issue を作成してください。