設定例:
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'
))
<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>
</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 の場合、ClickHouse server は例外をスローする前にクエリの実行を 3 回再試行します。再試行すると応答時間が長くなる点に注意してください。デフォルト値: false。 |
query | カスタムクエリです。省略可能です。 |
table フィールドまたは where フィールドは、query フィールドと併用できません。また、table フィールドまたは query フィールドのいずれか一方は必ず指定する必要があります。
明示的な secure パラメータはありません。SSL 接続を確立する場合、セキュリティは必須です。
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>