Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Looker Studio

パートナーインテグレーション

Looker Studio は、Google 公式の MySQL データソースを使用して、MySQL インターフェイス経由で ClickHouse に接続できます。

ClickHouse Cloud の設定

[object Object]

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

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

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

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

MySQL インターフェイスを有効にするトグルと接続詳細が表示された ClickHouse Cloud 画面

また、既存のサービスで MySQL インターフェイスを有効にする場合は、次の手順に従います。

[object Object]

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

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

[object Object]

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 コンソールクライアントは、その一例です。

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

読み取り専用ユーザーに適用する 設定プロファイル を作成し、 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;

新しく作成したユーザーは、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 server の設定方法については、公式ドキュメントを参照してください。

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

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 エントリを、自分で生成したダブル 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 アカウントで Looker Studio にログインし、新しいデータソースを作成します。

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

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

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

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

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

ここからは、ClickHouse からデータを取得する方法が 2 つあります。1 つ目は、Table Browser 機能を使用する方法です。

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

または、カスタムクエリを指定してデータを取得することもできます。

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 の接続設定

以降の手順は、前のセクションに記載したものと同じです。

Navigation