если, например, вставка происходит с нескольких процессов. Сейчас пишется по 2.5+- млн записей / N процессов. Пробовал уменьшать/увеличивать размер батча или колич-во процессов, но их прямую зависимость к общей скорости процесса загрузки данных особо не заметил.
Могу ли я как-то ускорить процесс загрузки данных на уровне КХ, при этом имея максимально возможно оптимальное число процессов, или нужно как-то изменять текущую архитектуру - добавить брокера нужно мб, чтобы параллельные записи в КХ уменьшить? Записи происходят в одну таблицу движка MergeTree.
Да, ещё хотел бы уточнить, что это всё происходит на одной машине. То есть, может быть, нужно уменьшить колич-во N, чтобы кх успевал вставлять данные быстрее
В диск не упираетесь?
оно все равно в итоге бьется по блокам в 1 048 000 записей в одном коннекте ( https://clickhouse.tech/docs/en/operations/settings/settings/#settings-max_insert_block_size ) загрузка упирается в кол-во одновременных тредов вставки и то как они утилизируют IO / CPU (сортировка по PK) можно размер блока увеличить можно с алгоритмами сжатия и составом Primary Key в таблице
параллелится, 6 ядер -> 6 заливок , примерно в 6 раз быстрее
Обсуждают сегодня