Skip to main content
Edit this page

Looker Studio

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

ClickHouse Cloudのセットアップ

  1. ClickHouse Cloud Serviceを作成した後、認証情報画面でMySQLタブを選択します。
    Credentials screen - Prompt
  2. この特定のサービスに対してMySQLインターフェースを有効にするためにスイッチを切り替えます。これにより、そのサービスでポート3306が公開され、ユニークなMySQLユーザー名を含むMySQL接続画面が表示されます。パスワードはサービスのデフォルトユーザーのパスワードと同じになります。
    Credentials screen - Enabled MySQL
    代わりに、既存のサービスに対してMySQLインターフェースを有効にするには:
  3. サービスがRunning状態であることを確認し、MySQLインターフェースを有効にするサービスの「接続文字列を表示」ボタンをクリックします。
    Connection screen - Prompt MySQL
  4. この特定のサービスに対してMySQLインターフェースを有効にするためにスイッチを切り替えます。これにより、デフォルトのパスワードを入力するよう求められます。
    Connection screen - Prompt MySQL
  5. パスワードを入力すると、このサービスのMySQL接続文字列が表示されます。
    Connection screen -  MySQL Enabled

ClickHouse Cloudで複数のMySQLユーザーを作成する

デフォルトでは、mysql4<subdomain>という組み込みユーザーがあり、これはdefaultユーザーと同じパスワードを使用します。<subdomain>部分はあなたのClickHouse Cloudホスト名の最初のセグメントです。このフォーマットは、安全な接続を実装しているがTLSハンドシェイクでSNI情報を提供しないツール(MySQLコンソールクライアントがその一例)で作業するために必要です。この場合、ユーザー名に追加のヒントを含めずには内部ルーティングを行うことができません。

これにより、MySQLインターフェースで使用する新しいユーザーを作成する際には、mysql4<subdomain>_<username>のフォーマットを使用することを強くお勧めします。ここで、<subdomain>はあなたのCloudサービスを識別するためのヒントであり、<username>は選択した任意のサフィックスです。

Tip

ClickHouse Cloudホスト名がfoobar.us-east1.aws.clickhouse.cloudの場合、<subdomain>部分はfoobarに相当し、カスタムMySQLユーザー名はmysql4foobar_team1のようになります。

MySQLインターフェースを使用するために追加のユーザーを作成することができます。例えば、追加の設定を適用する必要がある場合などです。

  1. オプション - カスタムユーザーに適用する設定プロフィールを作成します。たとえば、後で作成するユーザーで接続するときにデフォルトで適用される追加設定を持つmy_custom_profile:

    CREATE SETTINGS PROFILE my_custom_profile SETTINGS prefer_column_name_to_alias=1;

    prefer_column_name_to_aliasは単なる例として使用されます。ここに他の設定を使用することもできます。

  2. 以下のフォーマットを使用してユーザーを作成します: mysql4<subdomain>_<username> (上記参照)。パスワードはダブルSHA1形式である必要があります。例:

    CREATE USER mysql4foobar_team1 IDENTIFIED WITH double_sha1_password BY 'YourPassword42$';

    または、このユーザーにカスタムプロフィールを使用したい場合:

    CREATE USER mysql4foobar_team1 IDENTIFIED WITH double_sha1_password BY 'YourPassword42$' SETTINGS PROFILE 'my_custom_profile';

    ここで、my_custom_profileは前に作成したプロフィールの名前です。

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

    GRANT SELECT ON system.query_log TO mysql4foobar_team1;
  4. 作成したユーザーを使用して、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サーバーのセットアップ

ClickHouseサーバーにMySQLインターフェースを有効にする方法については公式ドキュメントを参照してください。

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

最初の行は生成されたパスワードで、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ハッシュに置き換えてください。

さらに、BIツールがMySQLコネクタを使用する際にデータベーススキーマを適切に調査できるように、SHOW [FULL] COLUMNS クエリの結果でMySQLネイティブタイプを表示するために、use_mysql_types_in_show_columnsを使用することを推奨します。

例えば:

/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行取得しました (0.00 sec)
4行読み込み、603.00 B、0.00156秒で、2564行/秒、377.48 KiB/秒

最後に、ClickHouseサーバーを希望するIPアドレスでリッスンするように設定します。例えば、config.xml の中で、すべてのアドレスでリッスンするために以下をアンコメントしてください:

<listen_host>::</listen_host> 

Looker StudioをClickHouseに接続する

まず、https://lookerstudio.google.com にGoogleアカウントでログインし、新しいデータソースを作成します。

新しいデータソースの作成

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

MySQLコネクタの検索

接続の詳細を指定します。MySQLインターフェースのポートはデフォルトで9004で、サーバーの設定によって異なる場合があります。

接続の詳細を指定

次に、ClickHouseからデータを取得する方法を2つ選ぶことができます。まず、テーブルブラウザ機能を使用することができます。

テーブルブラウザの使用

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

カスタムクエリを使用してデータを取得

最後に、イントロスペクトされたテーブル構造を確認し、必要に応じてデータ型を調整できます。

イントロスペクトされたテーブル構造の表示

これで、データの探査や新しいレポートの作成を進めることができます!

ClickHouse CloudでLooker Studioを使用する

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

MySQLの有効化が必要

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

ClickHouse CloudでのSSL設定

その後の手順は、前述のセクションに記載されている手順と同じです。