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

Looker Studio

Partner Integration

Looker Studio は、公式の Google MySQL データソースを使用して、MySQL インターフェース経由で 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> 

Looker Studio を ClickHouse に接続する

まず、Google アカウントで https://lookerstudio.google.com にログインし、新しい Data Source を作成します:

Looker Studio インターフェースで新しいデータソースを作成する

Google が提供する公式の MySQL コネクタ(名前は MySQL)を検索します:

Looker Studio のコネクタ一覧で MySQL コネクタを検索する

接続情報を入力します。MySQL インターフェースのポートはデフォルトで 9004 ですが、 サーバー構成によっては異なる場合がある点に注意してください。

Looker Studio で ClickHouse MySQL 接続情報を指定する

次に、ClickHouse からデータを取得する方法として 2 つの方法があります。1 つ目は、Table Browser 機能を使用する方法です:

Looker Studio で Table Browser を使用して ClickHouse テーブルを選択する

もう 1 つは、カスタム SQL クエリを指定してデータを取得する方法です:

Looker Studio でカスタム SQL クエリを使用して ClickHouse からデータを取得する

最後に、自動解析されたテーブル構造を確認し、必要に応じてデータ型を調整できます。

Looker Studio で自動解析された ClickHouse テーブル構造を表示する

これで、データの探索や新しいレポートの作成に進むことができます。

ClickHouse Cloud で Looker Studio を使用する

ClickHouse Cloud を使用する場合は、まず MySQL インターフェイスを有効にする必要があります。接続ダイアログの「MySQL」タブで有効にできます。

ClickHouse Cloud の設定で MySQL インターフェイスを有効にする

Looker Studio の UI では、「Enable SSL」オプションを選択します。ClickHouse Cloud の SSL 証明書は Let's Encrypt によって署名されています。このルート証明書は こちら からダウンロードできます。

ClickHouse Cloud の SSL 設定を用いた Looker Studio の接続構成

残りの手順は前のセクションで説明した内容と同じです。