設定例:
SOURCE(MYSQL(
port 3306
user 'clickhouse'
password 'qwerty'
replica(host 'example01-1' priority 1)
replica(host 'example01-2' priority 1)
db 'db_name'
table 'table_name'
where 'id=10'
invalidate_query 'SQL_QUERY'
fail_on_connection_loss 'true'
query 'SELECT id, value_1, value_2 FROM db_name.table_name'
enable_compression 1
))<source>
<mysql>
<port>3306</port>
<user>clickhouse</user>
<password>qwerty</password>
<replica>
<host>example01-1</host>
<priority>1</priority>
</replica>
<replica>
<host>example01-2</host>
<priority>1</priority>
</replica>
<db>db_name</db>
<table>table_name</table>
<where>id=10</where>
<invalidate_query>SQL_QUERY</invalidate_query>
<fail_on_connection_loss>true</fail_on_connection_loss>
<query>SELECT id, value_1, value_2 FROM db_name.table_name</query>
<enable_compression>1</enable_compression>
</mysql>
</source>設定フィールド:
| Setting | Description |
|---|---|
port |
MySQL サーバーのポートです。すべてのレプリカに対して指定することも、各レプリカごとに個別に指定することもできます (<replica> 内) 。 |
user |
MySQL ユーザー名です。すべてのレプリカに対して指定することも、各レプリカごとに個別に指定することもできます (<replica> 内) 。 |
password |
MySQL ユーザーのパスワードです。すべてのレプリカに対して指定することも、各レプリカごとに個別に指定することもできます (<replica> 内) 。 |
replica |
レプリカ設定のセクションです。複数指定できます。 |
replica/host |
MySQL ホストです。 |
replica/priority |
レプリカの優先度です。接続を試みる際、ClickHouse は優先度順にレプリカをたどります。数値が小さいほど優先度は高くなります。 |
db |
データベース名です。 |
table |
テーブル名です。 |
where |
選択条件です。条件の構文は MySQL の WHERE 句と同じで、たとえば id > 10 AND id < 20 のように指定します。省略可能です。 |
invalidate_query |
Dictionary の状態を確認するためのクエリです。省略可能です。詳しくは、LIFETIME を使用した Dictionary データの更新 を参照してください。 |
fail_on_connection_loss |
接続が失われたときのサーバーの動作を制御します。true の場合、クライアントとサーバー間の接続が失われると、ただちに例外がスローされます。false の場合、サーバーはエラーを報告する前に少なくとも 3 回データの取得を再試行します。再試行すると応答時間が長くなる点に注意してください。デフォルト値: false。 |
query |
カスタムクエリです。省略可能です。 |
enable_compression |
MySQL プロトコル接続で zlib 圧縮を有効にします。1 に設定すると、ClickHouse は MySQL サーバーにプロトコルレベルの圧縮を要求します。<replica> 内でレプリカごとに設定することもできます。デフォルト値: 0。 |
ssl_ca_pem |
MySQL サーバー証明書の検証に使用する CA certificate の内容です。省略可能です。 |
ssl_cert_pem |
証明書ベース認証用のクライアント証明書の内容です。省略可能です。 |
ssl_key_pem |
ssl_cert_pem に対応する秘密鍵の内容です。省略可能です。 |
ssl_ca, ssl_cert, ssl_key |
同じ認証情報をサーバー上のファイルへのパスとして指定します。サーバー設定ファイルで定義された Dictionary、またはそこで定義された 名前付きコレクション を通じてのみ使用できます。以下を参照してください。省略可能です。 |
MySQLには、ソケットを介してローカルホスト上で接続できます。これを行うには、hostとsocketを設定します。
設定例:
SOURCE(MYSQL(
host 'localhost'
socket '/path/to/socket/file.sock'
user 'clickhouse'
password 'qwerty'
db 'db_name'
table 'table_name'
where 'id=10'
invalidate_query 'SQL_QUERY'
fail_on_connection_loss 'true'
query 'SELECT id, value_1, value_2 FROM db_name.table_name'
))<source>
<mysql>
<host>localhost</host>
<socket>/path/to/socket/file.sock</socket>
<user>clickhouse</user>
<password>qwerty</password>
<db>db_name</db>
<table>table_name</table>
<where>id=10</where>
<invalidate_query>SQL_QUERY</invalidate_query>
<fail_on_connection_loss>true</fail_on_connection_loss>
<query>SELECT id, value_1, value_2 FROM db_name.table_name</query>
</mysql>
</source>