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

Tableau Online

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

ClickHouse Cloud セットアップ

アプリを接続 を選択

ClickHouse Cloud Serviceを作成した後、アプリを接続画面で、ドロップダウンからMySQLを選択します。

MySQLインターフェース選択ドロップダウンを示すClickHouse Cloudの認証情報画面

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

スイッチを切り替えて、この特定のサービスのためにMySQLインターフェースを有効にします。 これにより、このサービスのポート3306が公開され、ユニークなMySQLユーザー名を含むMySQL接続画面が表示されます。

ClickHouse Cloud MySQLインターフェースを有効にする切り替えと接続詳細

代わりに、既存のサービスに対してMySQLインターフェースを有効にするためには:

接続 を選択

サービスが実行中の状態であることを確認し、MySQLインターフェースを有効にしたいサービスをクリックします。 左側のメニューから「接続」を選択します:

接続オプションがハイライトされているClickHouse Cloudサービス接続画面

MySQL を選択

ドロップダウンの 接続先 から 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のようになります。

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

設定プロファイルを作成して、あなたの読み取り専用ユーザーに適用し、 readonly設定を1に設定します:

CREATE SETTINGS PROFILE readonly_profile SETTINGS readonly = 1

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

次の形式の名前のユーザーを作成します:

mysql4<subdomain>_<username>

readonly_profileを新しいユーザーに適用し、パスワードがダブル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): Lost connection to MySQL server at 'reading authorization packet', system error: 54

この場合、ユーザー名がmysql4<subdomain>_<username>形式に従っていることを確認してください、 (上記 のように)。

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

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

サーバーの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ハッシュに置き換えてください。

さらに、use_mysql_types_in_show_columnsを使用して、SHOW [FULL] COLUMNSクエリ結果でClickHouseのタイプの代わりにネイティブなMySQLタイプを表示することをお勧めします。これにより、BIツールがMySQLコネクタを使用してデータベーススキーマを正しく調査できるようになります。

例えば:

/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サーバーが希望のIPアドレスでリスンするように構成します。例えば、config.xmlで以下をコメント解除してすべてのアドレスをリスンするようにします:

<listen_host>::</listen_host> 

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

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

Tableau Online インターフェースに 'New' ボタンが表示されています。公開データソースを作成するためのボタン。

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

Tableau Online コネクタ選択画面に MySQL オプションがハイライトされています。

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

Tableau Online MySQL 接続設定画面で、サーバー、ポート、データベース、および資格情報フィールドが表示されています。

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

Tableau Online データソースページで、左側にデータベーステーブル、右側にドラッグ&ドロップ機能のあるキャンバスが表示されています。

その後は、右上隅で "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 を使用している場合は、このトラブルシューティングスレッドをチェックして、ドライバーのインストールワークアラウンドをご確認ください。

Tableau Desktop インターフェースに接続メニューが表示されており、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 にサーバーメニューが表示されており、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 で修正されました。他に互換性のない問題に出会った場合は、ためらわずに お問い合わせ または 新しい問題を作成してください。