УскорСниС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ…

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ DAX запросов Π·Π° счСт распрСдСлСния Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΡƒΠ·Π»Π°Ρ… (Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅), Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π΄Π°Π½Π½Ρ‹Ρ…. Для этого Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ шаги:

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

  • …
    Для Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ³ΠΎ Π²Ρ‹Π²ΠΎΠ΄Π° ΠΏΠΎ "Π²ΠΎΡ€ΠΊΠ΅Ρ€" Π½ΠΎΠ΄Π°ΠΌ, ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ:

    docker inspect -f "{{.ID}} {{.Status.Addr}} {{.Spec.Labels}}" $(docker node ls -q)

3. ВнСситС ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ измСнСния Π² Ρ„Π°ΠΉΠ» /var/lib/visiology/scripts/v3/visiology3.yml:

  • скопируйтС сСкции clickhouse-1 ΠΈ jdbc-bridge-1 Π² количСствС, Ρ€Π°Π²Π½ΠΎΠΌ количСству Π²Π°ΡˆΠΈΡ… сСрвСров. Π’ скопированных сСкциях Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ всС Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ (1) Π½Π° 2, 3, 4 ΠΈ Ρ‚.Π΄.
    ΠŸΡ€ΠΈΠΌΠ΅Ρ€ (Π½Π°Π΄ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ†ΠΈΡ„Ρ€Ρ‹ Π² строках 1, 29, 39, 49, 51, 61, 71):

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:2.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"
  • Π² ΡΠ΅ΠΊΡ†ΠΈΡŽ 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.Nodes Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹:

"clickhouse2": { "ConnectionString": "Compression=True;CheckCompressedHash=False;Compressor=lz4;Host={{ env "CLICKHOUSE_HOST_2" }};Port={{ env "CLICKHOUSE_PORT" }};Username={{ secret "CLICKHOUSE_FE_USER" }};Password={{ secret "CLICKHOUSE_FE_PASSWORD" }};Database={{ env "CLICKHOUSE_DB" }};UseSession=true;Timeout=120;set_max_execution_time=120;set_cancel_http_readonly_queries_on_client_close=1;set_timeout_before_checking_execution_speed=30;", "TcpPort": "9000" }, "clickhouse3": { "ConnectionString": "Compression=True;CheckCompressedHash=False;Compressor=lz4;Host={{ env "CLICKHOUSE_HOST_3" }};Port={{ env "CLICKHOUSE_PORT" }};Username={{ secret "CLICKHOUSE_FE_USER" }};Password={{ secret "CLICKHOUSE_FE_PASSWORD" }};Database={{ env "CLICKHOUSE_DB" }};UseSession=true;Timeout=120;set_max_execution_time=120;set_cancel_http_readonly_queries_on_client_close=1;set_timeout_before_checking_execution_speed=30;", "TcpPort": "9000" }, ...
  • ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ структура этого Ρ„Π°ΠΉΠ»Π° отличаСтся ΠΎΡ‚ Ρ‚ΠΎΠΉ, которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² вСрсии 3.8.

  • ЗапятыС Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π²ΠΎ всСх строках, ΠΊΡ€ΠΎΠΌΠ΅ послСднСй.

  • НС Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ Π·Π°ΠΏΡΡ‚ΡƒΡŽ послС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° "clickhouse1".

Π’ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строкС Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ†ΠΈΡ„Ρ€Ρƒ Π½Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ Π² части 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, promtail Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ Π΄ΠΎΠΊΠ΅Ρ€Π° Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ сСрвСрС.

8.Β Β  Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π½Π° Π³Π»Π°Π²Π½ΠΎΠΌ сСрвСрС:

/var/lib/visiology/scripts/v3/prepare-config.sh --force-regenerate-configs

9.Β Β  ЗапуститС ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ.

ИзмСнСниС сСрвСра ClickHouse для Π½Π°Π±ΠΎΡ€Π° Π΄Π°Π½Π½Ρ‹Ρ…

Π Π°Π½Π΅Π΅ Π² Visiology 3 (Π΄ΠΎ вСрсии 3.9) сущСствовало API для измСнСния привязки β€œΠ½Π°Π±ΠΎΡ€ Π΄Π°Π½Π½Ρ‹Ρ… β†”οΈŽ ClickHouse-сСрвСр”. Π’.Π΅. ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ Π½Π°Π±ΠΎΡ€Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… ClickHouse-сСрвСрах.

Начиная с вСрсии 3.9 ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΈ нСболшиС измСнСния Π² API ΠΈ Π»ΠΎΠ³ΠΈΠΊΠΈ для Π½ΠΎΠ²Ρ‹Ρ… Π½Π°Π±ΠΎΡ€ΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ….

image-20240827-062400.png

ИзмСнСния в API

  1. ΠœΠ΅Ρ‚ΠΎΠ΄ получСния serverKey Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ массив строк, Π° Π½Π΅ ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ строку. НапримСр:

image-20240827-062532.png
  1. ΠœΠ΅Ρ‚ΠΎΠ΄ ΠΏΠΎΠ΄ΠΌΠ΅Π½Ρ‹ serverKey Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ массив строк, Π° Π½Π΅ ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ строку. НапримСр:

image-20240827-062711.png

ИзмСнСния Π² ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… Π½Π°Π±ΠΎΡ€Π° Π΄Π°Π½Π½Ρ‹Ρ…

  1. Бвойство ServerKey, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΎΡ‚Π²Π΅Ρ‡Π°Π»ΠΎ Π·Π° сопоставлСниС β€œΠ½Π°Π±ΠΎΡ€ Π΄Π°Π½Π½Ρ‹Ρ… β†”οΈŽ ClickHouse-сСрвСр” Π±Ρ‹Π»ΠΎ ΡƒΠ΄Π°Π»Π΅Π½ΠΎ, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ привязки Π½Π°Π±ΠΎΡ€ΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… ΠΊ ClickHouse-сСрвСрам Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ (см. Π½ΠΈΠΆΠ΅). Для ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ остаСтся ΠΏΡ€Π΅ΠΆΠ½ΠΈΠΌ.

  2. Появилось Π½ΠΎΠ²ΠΎΠ΅ свойство ServerSelectionType (число), Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‰Π΅Π³ΠΎ значСния:

  • Static (1)

  • Dynamic (2) - являСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΏΡ€ΠΈ создании Π½Π°Π±ΠΎΡ€Π° Π΄Π°Π½Π½Ρ‹Ρ….

  1. Появилось Π½ΠΎΠ²ΠΎΠ΅ свойство ActiveServerKeys (массив строк).
    Если Π² Π½Π°Π±ΠΎΡ€Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ServerSelectionType = Dynamic, Ρ‚ΠΎ ΠΏΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ClickHouse-сСрвСр выбираСтся ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎΠΉ автоматичСски.
    ПослС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… всСгда записываСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² ΠΏΠΎΠ»Π΅ ActiveServerKeys, Ρ‚.ΠΊ. ΠΎΠ½ΠΎ Π² ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для осущСствлСния DAX-запросов.

  1. Появилось Π½ΠΎΠ²ΠΎΠ΅ свойство TargetServerKeys (массив строк).
    Если Π² Π½Π°Π±ΠΎΡ€Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ServerSelectionType = Static, Ρ‚ΠΎ ΠΏΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ClickHouse сСрвСр выбираСтся ΠΈΠ· поля TargetServerKeys.

Настройка ClickHouse-сСрвСра для Π½Π°Π±ΠΎΡ€Π° Π΄Π°Π½Π½Ρ‹Ρ…

Для Π½ΠΎΠ²Ρ‹Ρ… ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ

ΠŸΡ€ΠΈ создании Π½ΠΎΠ²ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡ€Π° Π΄Π°Π½Π½Ρ‹Ρ… Ρ‡Π΅Ρ€Π΅Π· UI полю ServerSelectionType назначаСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Dynamic, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ автоматичСскоС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ClickHouse сСрвСра.

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, Ссли Π²Ρ‹ создаСтС Π½ΠΎΠ²ΡƒΡŽ модСль Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» привязки ClickHouse-сСрвСров ΠΊ Π½Π°Π±ΠΎΡ€Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ свойства ServerSelectionType Π½Π° Static ΠΈ ΠΏΡ€ΠΈΠ²ΡΠ·Π°Ρ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ сСрвСра Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ΅Ρ‚ΠΎΠ΄ API ΠΏΠΎ ΡƒΠΆΠ΅ Π·Π½Π°ΠΊΠΎΠΌΠΎΠΌΡƒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ запроса Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ServerSelectionType Ρƒ Π½Π°Π±ΠΎΡ€Π° Π΄Π°Π½Π½Ρ‹Ρ…:

image-20240827-071258.png

Для старых ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ

ПослС ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Π½Π° 3.9 для ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΌΠ΅Π½ΡΡ‚ΡŒ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» привязки сохранится ΠΊΠ°ΠΊ Π±Ρ‹Π»ΠΎ Ρ€Π°Π½Π΅Π΅ Π·Π° счСт ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΉ.

Β 


Π‘ΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅

Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ JDBC

Β