SELECT и INSERT к данным, которые хранятся на удалённом сервере MySQL.
Создание таблицы
- Имена столбцов должны совпадать с именами в исходной таблице MySQL, но можно использовать только часть этих столбцов и в любом порядке.
- Типы столбцов могут отличаться от типов в исходной таблице MySQL. ClickHouse пытается преобразовать значения в типы данных ClickHouse.
- Настройка external_table_functions_use_nulls определяет, как обрабатывать столбцы Nullable. Значение по умолчанию: 1. Если установлено значение 0, функция таблицы не создаёт столбцы типа Nullable и вместо NULL выполняет вставку значений по умолчанию. Это также применимо к значениям NULL внутри массивов.
host:port— адрес сервера MySQL.database— имя удалённой базы данных.table— имя удалённой таблицы.user— пользователь MySQL.password— пароль пользователя.replace_query— флаг, преобразующий запросыINSERT INTOвREPLACE INTO. Еслиreplace_query=1, запрос заменяется.on_duplicate_clause— выражениеON DUPLICATE KEY on_duplicate_clause, которое добавляется к запросуINSERT. Пример:INSERT INTO t (c1,c2) VALUES ('a', 2) ON DUPLICATE KEY UPDATE c2 = c2 + 1, гдеon_duplicate_clause— этоUPDATE c2 = c2 + 1. См. документацию MySQL, чтобы узнать, какиеon_duplicate_clauseможно использовать с секциейON DUPLICATE KEY. Чтобы указатьon_duplicate_clause, нужно передать0в параметрreplace_query. Если одновременно передатьreplace_query = 1иon_duplicate_clause, ClickHouse сгенерирует исключение.
host и port следует указывать отдельно. Этот подход рекомендуется для продакшн-среды.
Простые условия WHERE, такие как =, !=, >, >=, <, <=, выполняются на сервере MySQL.
Остальные условия и ограничение выборки LIMIT выполняются в ClickHouse только после завершения запроса к MySQL.
Поддерживается несколько реплик, которые должны быть перечислены через |. Например:
Пример использования
Настройки
connection_auto_close
- 1 — автоматическое закрытие соединения разрешено, поэтому его повторное использование отключено
- 0 — автоматическое закрытие соединения не разрешено, поэтому его повторное использование включено
1.
connection_max_tries
- Положительное целое число.
- 0 — Для пула с failover повторные попытки не выполняются.
3.
connection_pool_size
- Положительное целое число.
16.
connection_wait_timeout
connection_pool_size активных соединений), 0 — не ждать.
Возможные значения:
- Положительное целое число.
5.
connect_timeout
- Положительное целое число.
10.
read_write_timeout
- Положительное целое число.
300.