направить:
Нужно настроить перекладку записей из имеющейся продуктивной MS SQL базы в таблицу CH.
На данный момент хочу делать это раз в минуту (за 60 секунд в источнике генерируется ~19к строк).
После некоторого тюнинга запроса на MSSQL инстансе он выполняется за 15-30 секунд (приходится джойнить две толстые таблицы), в зависимости от загрузки сервера.
1 секунда уходит на складывание PIVOT-ом пары строк в одну вида [date],[timestamp_utc],[metric.1],[metric.2]
всё это генерируется на стороне MSSQL сервера - windows server.
Какие есть годные варианты, чтобы максимально быстро сложить результирующий CSV в таблицу CH?
Пока успел попробовать только передавать через web-морду по 1000 строк curl-ом - ооочень медленно.
Поглядел на Go либу - она вроде только через web работает..
Может, я невнимательно читал документацию и задачу записи через web-interface я мог бы распараллелить? Engine = MergeTree
Можно класть по любому количеству строк. Для го есть нативная библиотека неплохая
Условно костыльное решение: скидывать готовые csv в папку с именем вида unixtime.csv и заливать их по расписанию через clickhouse-client или веб-морду. Возможно менее костыльное- настроить сходное по логике через syslog-ng
Обсуждают сегодня