Вопрос: Масштабирование ClickHouse. Управление миграциями. Шардирование и репликация данных.

517 views
Skip to first unread message

DarkFeralis Stream Gaming

unread,
Jun 25, 2017, 1:25:18 AM6/25/17
to ClickHouse
Доброго времени суток уважаемые участники группы.
Читая про репликацию данных, шардирование и распределенное выполнение (на базе Distributed-таблицы) - только запутался. В теории вроде бы все понятно, на практике засыпался на настройках конфига.
Особое непонимание у меня с секциями <zookeeper> и <remote_servers> - в документации как я понял сказано что это совсем не связанные вещи,- тут у меня сразу возникает вопрос за что (и главное как работает) секция <replica> в <remote_servers><shard>

Возможно вы сможете помочь мне,- хотя бы "мозги на место поставить" - а то действительно уже "на ровном месте плаваю".

Я уже даже сомневаюсь,- можно ли получить что я хочу.

Схема которую хотелось бы реализовать выглядит примерно следующим образом:


Описание:

  • Допустим есть 3 Региона (территориально удалены друг от друга).
  • В каждом регионе стоит по 3 сервера: для обеспечения отказоустойчивости и возможно для балансировки нагрузки
  • Сервера региона обслуживают данные (запись данных) только пользователей одного региона - запись осуществляется в таблицу на движке ReplicatedMergeTree (Например: Table1Rep)
  • Данные внутри региона реплицируются по другим серверам региона (все 3 сервера - имеют одинаковые данные в таблице Table1Rep)
  • На каждом регионе есть таблица на движке Distributed (Например Table1Shared - на базе таблицы Table1Rep)
  • На основе таблицы Table1Shared  - пользователи каждого региона должны получать доступ к данным всех регионов (распределенное выполнение на всех регионах)
  • Прямой записи в таблицу Table1Shared  - не планируется
И вторая часть схемы:
  • Есть некий архивный сервер (Центральный сервер) который не обслуживает клиентов, не пишет данные, а просто агрегирует все данные с себе (Назначение: общее бэкапаирование, узкий круг задач которые не требуют распределенного выполнения, контроль целостности данных и т.д. - вообщем его назначение "крайне расплывчатое"
  • Хотелось бы что бы он хранил в таблице Table1Rep - все данные из регионов
Как то так... Может не очень понятно написал.

Буду очень признателен любому комментарию по этой теме.
Заранее спасибо всем.
С Уважением к Вам.



tatiana....@revjet.com

unread,
Jun 26, 2017, 1:34:15 PM6/26/17
to ClickHouse
У Вас есть три шарда (регионы), в каждом из которых три реплики (сервера). Это и надо описать в секции <remote_servers>.
Distributed таблица для этого кластера будет отправлять запросы на каждый шард, выбирая одну из реплик.

Таблицу, которая реплицирует данные из нескольких других таблиц, создать не получится.
Reply all
Reply to author
Forward
0 new messages