две реплики) - данные в таблицы попадают с задержкой в несколько часов. Однако, если начать активно делать select запросы к этим таблицам, то еще не записавшиеся данные начинают быстро "доезжать" в них.
Подскажите, пожалуйста, с чем может быть связана такая проблема и как с ней бороться?
Задержки при репликации или после вставки в Distributed таблицу, никак не связаны с SELECT-ами. Разные данные на последовательно выполняемых одинаковых запросах, могут говорить о том, что запрос приходит на разные серверы - на разные реплики (это нормально, но выбор реплик можно настроить с помощью настройки load_balancing - например, чтобы чаще предпочиталась одна и та же реплика) или в случае неправильной конфигурации кластера может быть так, что в качестве реплик в Distributed таблице прописаны серверы разных шардов. Задержка в несколько часов нетипична. Скорее всего это говорит о накоплении очереди в Distributed таблице. Рекоменудется включить синхронную вставку в Distributed таблицу: insert_distributed_sync = 1, а также посмотреть на саму очередь в файловой системе и на ошибки при отправке данных в логах.
Обсуждают сегодня