メインコンテンツへスキップ
メインコンテンツへスキップ

MySQL Dictionary ソース

設定例:

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'
))

設定項目:

SettingDescription
portMySQL サーバーのポートです。すべてのレプリカに対して指定することも、各レプリカごとに個別に(<replica> 内で)指定することもできます。
userMySQL ユーザー名です。すべてのレプリカに対して指定することも、各レプリカごとに個別に(<replica> 内で)指定することもできます。
passwordMySQL ユーザーのパスワードです。すべてのレプリカに対して指定することも、各レプリカごとに個別に(<replica> 内で)指定することもできます。
replicaレプリカ設定のセクションです。複数のセクションを定義できます。
replica/hostMySQL ホストです。
replica/priorityレプリカの優先度です。接続を試行する際、ClickHouse は優先度の順にレプリカを走査します。数値が小さいほど優先度が高くなります。
dbデータベース名です。
tableテーブル名です。
where抽出条件です。条件の構文は MySQL の WHERE 句と同じで、たとえば id > 10 AND id < 20 のように記述します。省略可能です。
invalidate_queryDictionary の状態を確認するためのクエリです。省略可能です。詳細は Refreshing dictionary data using LIFETIME セクションを参照してください。
fail_on_connection_loss接続喪失時のサーバーの動作を制御します。true の場合、クライアントとサーバー間の接続が失われるとすぐに例外がスローされます。false の場合、ClickHouse サーバーは例外をスローする前にクエリの実行を 3 回再試行します。再試行により応答時間が増加する点に注意してください。デフォルト値: false
queryカスタムクエリです。省略可能です。
注記

table フィールドまたは where フィールドは、query フィールドと同時には使用できません。また、table フィールドか query フィールドのいずれか一方は必ず指定する必要があります。

注記

明示的なパラメータ secure は存在しません。SSL 接続を確立する場合は、セキュアな接続が必須となります。

MySQL には、ソケットを使用してローカルホスト経由で接続できます。そのためには、hostsocket を設定します。

設定例:

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'
))