Выполните шаги 1 - 5, описанные в разделе Ускорение загрузки данных (в пункте 5 заменять значения для RefreshDataJob__ParallelWorkers и Hangfire__WorkerCount необязательно).
В файле /var/lib/visiology/scripts/v3/visiology3.yml для каждого экземпляра Clickhouse, добавленного на втором шаге (в секции clickhouse-1, clickhouse-2, clickhouse-n), необходимо внести в секцию environment переменную с соответствующим ему значением:
SERVER_ID: 1
SERVER_ID: 2
SERVER_ID: n
В том же файле /var/lib/visiology/scripts/v3/visiology3.yml для каждой секции clickhouse-1, clickhouse-2, clickhouse-n и т.д. добавить строки в секцию configs:
Обратите внимание, что при копировании следует заменить индексы в строчках 1, 4, 12.
В файле /var/lib/visiology/scripts/v3/visiology3.yml в секции data-management-service/environment заменить строку CLICKHOUSE_HOST: ${CLICKHOUSE_HOST_1} на
EtlNodes – ноды, на которых будет выполняться ETL. Вы можете, например, выделить ноды только для ETL, чтобы не влиять на производительность DAX-запросов.
QueryNodes – ноды, на которые будут отправляться запросы DAX.
TargetReplicaNodesCount – количество узлов-реплик, на которых должна храниться копия данных или выполняться операция. То есть, кластер будет пытаться хранить данные на таком количестве узлов.
ConfirmationReplicaNodesCount – количество узлов-реплик, которые должны подтвердить выполнение операции, прежде чем эта операция будет считаться завершённой и подтверждённой.
Предположим, что TargetReplicaNodesCount = 3, а ConfirmationReplicaNodesCount = 2. Это означает, что кластер будет пытаться загрузить данные на три узла. Если один из узлов выйдет из строя в процессе загрузки, то загрузка будет считаться успешной, т.к. только двум узлам нужно подтвердить успешность операции. Соответственно, для достижения отказоустойчивости, значение ConfirmationReplicaNodesCount должен быть меньше, чем значение TargetReplicaNodesCount.
Отредактируйте конфигурацию data-management-service в файле /var/lib/visiology/scripts/v3/configs/datamanagementservice.json, добавив в секцию ConnectionStrings строки "clickhouse2", "clickhouse3", "clickhouseN" В каждой строке нужно поменять цифру на соответствующую в части Host={{ env "CLICKHOUSE_HOST_1" }}