/
Ускорение загрузки данных

Ускорение загрузки данных

Вы можете увеличить скорость обработки запросов за счет распределения данных на нескольких узлах (горизонтальное масштабирование), что позволит ускорить загрузку данных. Для этого необходимо выполнить следующие шаги:

1. Добавьте в Docker Swarm все используемые для загрузки сервера. Для этого необходимо сделать следующее:

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

    docker swarm join-token worker
  • на остальных серверах, для добавления рабочей ноды, выполните команду с полученным токеном. Например:

    docker swarm join \ --token SWMTKN-1-49nj1cmql0jkz5s954yi3oex3nedyz0fb0xx14ie39trti4wxv-8vxv8rssmk743ojnwacrr2e7c \ 192.168.99.100:2377
  • убедитесь, что в Swarm указано нужное количество машин:

    docker node ls

2.   Добавьте лейблы на каждый сервер, начиная с главного, где необходимо подставить нужные идентификаторы нод. Обратите внимание, что цифра после v3-clickhouse меняется:

  • docker node update --label-add=v3-clickhouse-1=true WORKER_NODE_ID_1

  • docker node update --label-add=v3-clickhouse-2=true WORKER_NODE_ID_2

  • docker node update --label-add=v3-clickhouse-3=true WORKER_NODE_ID_3

  • docker node update --label-add=monitoring-v3=true WORKER_NODE_ID_2

  • docker node update --label-add=monitoring-v3=true WORKER_NODE_ID_3

3. Внесите следующие изменения в файл /var/lib/visiology/scripts/v3/visiology3.yml:

  • скопируйте секции clickhouse-1 и jdbc-bridge-1 в количестве, равном количеству ваших серверов. В скопированных секциях необходимо заменить все единицы (1) на 2, 3, 4 и т.д.
    Пример (надо заменить цифры в строках 1, 24, 34, 43, 45, 55, 64):

  • в секцию environment раздела formula-engine необходимо добавить следующие строки:

 CLICKHOUSE_HOST_2: ${CLICKHOUSE_HOST_2}

 CLICKHOUSE_HOST_3: ${CLICKHOUSE_HOST_3}

  и т.д.

4.   Внесите следующие изменения в файл /var/lib/visiology/scripts/v3/configs/viqube2.json:

  • в секцию ClickHouseSettings. ConnectionStrings добавьте строки:

Обратите внимание, что запятые должны быть во всех строках, кроме последней.

В каждой строке нужно поменять цифру на соответствующую в части Host={{ env "CLICKHOUSE_HOST_1" }}.

5. Внесите следующие изменения в файл /var/lib/visiology/scripts/v3/defaults.env:

  • добавьте следующие строки:
    CLICKHOUSE_HOST_2=clickhouse-2
    CLICKHOUSE_HOST_3=clickhouse-3
    и т.д.

  • добавьте следующие строки:
    JDBC_BRIDGE_HOST_2=jdbc-bridge-2
    JDBC_BRIDGE_HOST_3=jdbc-bridge-3
    и т.д.

  • Замените значения RefreshDataJob__ParallelWorkers и Hangfire__WorkerCount на количество баз данных Clickhouse, умноженное на 2, т.е. для четырех баз Clickhouse требуется указать значение 8.

  • Убедитесь, что есть пустая строка в конце файла.

6. Внесите следующие изменения в файл /var/lib/visiology/scripts/v3/backup-service.yml:

  • Замените поле CLICKHOUSE_HOSTS на CLICKHOUSE_HOSTS: ${CLICKHOUSE_HOST_1} ${CLICKHOUSE_HOST_2} и т.д.

7.   Загрузите образы clickhouse, jdbc-bridge, cadvisor, node-exporter в память докера на каждом сервере.

8.   Выполните следующую команду:

9.   Запустите платформу.

Смотрите также

Загрузка данных с помощью JDBC