SELECT и INSERT к данным, хранящимся на удаленном сервере MySQL.
Синтаксис
Аргументы
| Аргумент | Описание |
|---|---|
host:port | Адрес сервера MySQL. |
database | Имя удалённой базы данных. |
table | Имя удалённой таблицы. |
user | Имя пользователя MySQL. |
password | Пароль пользователя. |
replace_query | Флаг, который преобразует запросы INSERT INTO в REPLACE INTO. Возможные значения:- 0 — запрос выполняется как INSERT INTO.- 1 — запрос выполняется как REPLACE INTO. |
on_duplicate_clause | Выражение ON DUPLICATE KEY on_duplicate_clause, добавляемое к запросу INSERT. Можно указывать только вместе с replace_query = 0 (если одновременно передать replace_query = 1 и on_duplicate_clause, ClickHouse выдаст исключение).Пример: INSERT INTO t (c1,c2) VALUES ('a', 2) ON DUPLICATE KEY UPDATE c2 = c2 + 1;Здесь on_duplicate_clause — это UPDATE c2 = c2 + 1. Сведения о том, какие on_duplicate_clause можно использовать с секцией ON DUPLICATE KEY, см. в документации MySQL. |
host и port нужно указывать отдельно. Такой подход рекомендуется для продакшн-среды.
Простые секции WHERE, такие как =, !=, >, >=, <, <=, в настоящее время выполняются на сервере MySQL.
Остальные условия и ограничение выборки LIMIT выполняются в ClickHouse только после завершения запроса к MySQL.
Поддерживается несколько реплик, которые должны быть перечислены через |. Например:
Возвращаемое значение
Некоторые типы данных MySQL могут сопоставляться с разными типами ClickHouse — это регулируется настройкой уровня запроса mysql_datatypes_support_level
В запросе
INSERT, чтобы отличить табличную функцию mysql(...) от имени таблицы со списком имён столбцов, необходимо использовать ключевые слова FUNCTION или TABLE FUNCTION. См. примеры ниже.