Перенесення даних з MySQL в ClickHouse
ClickHouse підтримує пряме підключення до серверів MySQL, що дозволяє швидко і без зайвих проміжних кроків переносити дані з MySQL в ClickHouse.
Налаштування доступу
Для початку необхідно дозволити користувачеві ClickHouse підключатися до MySQL-серверів. Відповідний привілей налаштовується на рівні користувача і діє для всіх баз даних в межах MySQL-сервера. Для налаштування привілею в панелі управління ClickHouse в розділі Користувачі встановіть прапорець "MySQL" в налаштуваннях користувача. У разі, якщо привілей не налаштований, сервер поверне помилку "Not enough privileges. To execute this query, it's necessary to have the grant READ ON MYSQL."
Отримання даних з MySQL
Для читання даних з таблиці MySQL використовується таблична функція mysql. Приклад запиту:
SELECT *
FROM mysql('host:port', 'database', 'table_name', 'login', 'password')
Запит повертає дані із зазначеної таблиці MySQL і дозволяє працювати з ними так само, як зі звичайною таблицею ClickHouse.
Завантаження даних в ClickHouse
Отримані дані можна відразу зберегти в заздалегідь створену таблицю ClickHouse за допомогою оператора INSERT … SELECT:
INSERT INTO clickhouse_table (date, ip, log)
SELECT date, ip, log
FROM mysql('host:port', 'database', 'table_name', 'login', 'password')
WHERE date > CURRENT_DATE() - INTERVAL 1 MONTHУ даному прикладі в ClickHouse завантажуються тільки дані за останній місяць, що зручно при інкрементальному перенесенні або первинній міграції великих обсягів даних.