Вы можете увеличить скорость обработки DAX запросов за счет распределения данных на нескольких узлах (горизонтальное масштабирование), что позволит ускорить загрузку данных. Для этого необходимо выполнить следующие шаги:
...
скопируйте секции
clickhouse-1
иjdbc-bridge-1
в количестве, равном количеству ваших серверов. В скопированных секциях необходимо заменить все единицы (1
) на2
,3
,4
и т.д.
Пример (надо заменить цифры в строках 1, 3029, 4039, 5049, 5251, 6261, 7271):
Блок кода | ||
---|---|---|
| ||
clickhouse-2: # Use clickhouse/clickhouse-server:23.3.4.17-alpine image: ${CLICKHOUSE_TAG} ulimits: nofile: soft: 262144 hard: 262144 configs: - source: clickhousejdbcbridge target: /etc/clickhouse-server/config.d/clickhouse-jdbc-bridge.xml - source: clickhousedisabledroplimits target: /etc/clickhouse-server/config.d/clickhouse-disable-drop-limits.xml - source: clickhousetimezone target: /etc/clickhouse-server/config.d/clickhouse-timezone.xml - source: clickhousequerymaskingrulesforjdbc target: /etc/clickhouse-server/config.d/clickhouse-query-masking-rules-for-jdbc.xml - source: clickhouselogging target: /etc/clickhouse-server/config.d/clickhouse-logging.xml - source: clickhouseentrypoint target: /entrypoint.sh mode: 0555 - source: clickhousecreatedmstemp target: /docker-entrypoint-initdb.d/clickhouse-create-dmstemp.sql environment: CLICKHOUSE_DB: ${CLICKHOUSE_DB} DM_CLICKHOUSE_DB: ${DM_CLICKHOUSE_DB} CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT: 1 CLICKHOUSE_INIT_TIMEOUT: 600 JDBC_BRIDGE_HOST: ${JDBC_BRIDGE_HOST_2} secrets: - source: CLICKHOUSE_FE_USER target: CLICKHOUSE_USER - source: CLICKHOUSE_FE_PASSWORD target: CLICKHOUSE_PASSWORD volumes: - clickhouse_data:/var/lib/clickhouse << : [*logging-options] labels: component: "v3-clickhouse-2" networks: visiology-3: smart-forms-share: deploy: endpoint_mode: dnsrr replicas: 1 placement: max_replicas_per_node: 1 constraints: - "node.labels.v3-clickhouse-2==true" jdbc-bridge-2: # Use cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/original/jdbc-bridge:3.62.1.0-v3.10 image: ${JDBC_BRIDGE_TAG} environment: JDBC_BRIDGE_JVM_OPTS: ${JDBC_BRIDGE_MEM_OPTIONS} configs: - source: jdbcbridge target: /app/config/server.json << : [*logging-options] labels: component: "v3-jdbc-bridge-2" networks: visiology-3: smart-forms-share: deploy: endpoint_mode: dnsrr replicas: 1 placement: max_replicas_per_node: 1 constraints: - "node.labels.v3-clickhouse-2==true" |
...
Блок кода | ||
---|---|---|
| ||
/var/lib/visiology/scripts/v3/prepare-config.sh --force-regenerate-configs |
9. Запустите платформу.
Изменение сервера ClickHouse для набора данных
Ранее в Visiology 3 (до версии 3.9) существовало API для изменения привязки “набор данных ↔︎ ClickHouse-сервер”. Т.е. можно было хранить разные наборы данных на разных ClickHouse-серверах.
Начиная с версии 3.9 произошли неболшие изменения в API и логики для новых наборов данных.
...
Изменения в API
Метод получения serverKey теперь возвращает массив строк, а не простую строку. Например:
...
Метод подмены serverKey теперь принимает массив строк, а не простую строку. Например:
...
Изменения в метаданных набора данных
Свойство ServerKey, которое отвечало за сопоставление “набор данных ↔︎ ClickHouse-сервер” было удалено, теперь функционал поддержки привязки наборов данных к ClickHouse-серверам работает немного другим образом (см. ниже). Для существующих моделей реализованы миграции и поведение остается прежним.
Появилось новое свойство ServerSelectionType (число), допускающего значения:
Static (1)
Dynamic (2) - является значением по умолчанию при создании набора данных.
Появилось новое свойство ActiveServerKeys (массив строк).
Если в наборе данных ServerSelectionType = Dynamic, то при загрузке данных ClickHouse-сервер выбирается платформой автоматически.
После загрузки данных всегда записывается значение в поле ActiveServerKeys, т.к. оно в последующем используется для осуществления DAX-запросов.
Появилось новое свойство TargetServerKeys (массив строк).
Если в наборе данных ServerSelectionType = Static, то при загрузке данных ClickHouse сервер выбирается из поля TargetServerKeys.
Настройка ClickHouse-сервера для набора данных
Для новых моделей
При создании нового набора данных через UI полю ServerSelectionType назначается значение Dynamic, что означает автоматическое определение ClickHouse сервера.
Поэтому, если вы создаете новую модель данных и хотите использовать функционал привязки ClickHouse-серверов к набору данных, то необходимо изменить значение свойства ServerSelectionType на Static и привязать конкретный ключ сервера через метод API по уже знакомому методу.
Пример запроса на изменение ServerSelectionType у набора данных:
...
Для старых моделей
После перехода на 3.9 для существующих моделей менять ничего не нужно, функционал привязки сохранится как было ранее за счет миграций.
...
Смотрите также
📄 Загрузка данных с помощью JDBC
...