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

Looker Studio

Community Maintained

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

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> 

Looker Studio を ClickHouse に接続する

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

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

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

Looker Studio コネクタリストでの MySQL コネクタ検索

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

Looker Studio での ClickHouse MySQL 接続の詳細指定

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

Looker Studio での ClickHouse テーブルの選択にテーブルブラウザを使用

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

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

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

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

これで、データを探索したり、新しいレポートを作成したりすることができます!

ClickHouse Cloud での Looker Studio の使用

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

ClickHouse Cloud 設定での MySQL インターフェースの有効化

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

ClickHouse Cloud SSL 設定での Looker Studio 接続構成

残りの手順は、前のセクションに記載されているのと同様です。