Миграция данных Cloud Audit
После обновления Платформы выполните миграцию данных Cloud Audit для оптимизации индексов. В процессе миграции оригинальные данные будут сохранены в отдельной таблице, которую можно будет удалить после окончания процесса.
-
На управляющем узле с установленной утилитой
kubectlполучите скрипт миграции:# podname=$(kubectl -n paas-vkcloud get pods | grep storage-consumer | head -n 1 | cut -d " " -f1)# kubectl -n paas-vkcloud cp $podname:/go/bin/db/migrations/000005_data_plane_order_key.sh ./000005_data_plane_order_key.sh -
Получите количество реплик для подов консьюмеров:
# kubectl -n paas-vkcloud get pods | grep storage-consumer | wc -l -
Убедитесь, что на диске достаточно места. Необходим объем, превышающий размер БД минимум в 2 раза.
Чтобы определить размер БД
cloudaudit, выполните команду:# clickhouse-client --port <ПОРТ> --database cloudaudit --multiquery --multiline "SELECT table, formatReadableSize(sum(bytes)) as size, min(min_date) as min_date, max(max_date) as max_date FROM system.parts WHERE active GROUP BY table" --format PrettyЗдесь
<ПОРТ>— значение переменнойch_listen_tcp_portв файле./vkcloud/group_vars/vkcloud_ch_cluster_cloudaudit/vars.yml(по умолчанию —9030).Пример ожидаемого результатаevents 18.52 MiB 1970-01-01 1970-01-01metadata 9.53 KiB 2025-10-21 2025-10-28trace_log 10.29 MiB 2025-10-21 2025-10-28 -
Остановите поды с консьюмерами:
# kubectl scale -n paas-vkcloud --replicas=0 deployment/audit-storage-consumer-storage-consumer -
Остановите фоновые слияния данных (merges) на всех шардах кластера:
# clickhouse-client --port <ПОРТ> --query "SYSTEM STOP MERGES ON CLUSTER '<КЛАСТЕР>'"# clickhouse-client --port <ПОРТ> --query "SYSTEM STOP TTL MERGES ON CLUSTER '<КЛАСТЕР>'"Здесь:
<ПОРТ>— значение переменнойch_listen_tcp_portв файле./vkcloud/group_vars/vkcloud_ch_cluster_cloudaudit/vars.yml(по умолчанию —9030).<КЛАСТЕР>— значение переменнойch_macros[cloudaudit].clusterв файле./vkcloud/group_vars/vkcloud_clickhouse/vars.yml(по умолчанию —vkcloud_ch_cluster_cloudaudit).
-
Отредактируйте скрипт
000005_data_plane_order_key.sh:- В строке
connect_optsзамените порт9000на значение переменнойch_listen_tcp_portиз файла./vkcloud/group_vars/vkcloud_ch_cluster_cloudaudit/vars.yml(по умолчанию —9030). - Из этой же строки удалите фрагмент
--user <user> --password <password>.
- В строке
-
Выполните скрипт:
# bash ./000005_data_plane_order_key.sh -
Запустите фоновые слияния данных на всех шардах кластера:
# clickhouse-client --port <ПОРТ> --query "SYSTEM START MERGES ON CLUSTER '<КЛАСТЕР>'"# clickhouse-client --port <ПОРТ> --query "SYSTEM START TTL MERGES ON CLUSTER '<КЛАСТЕР>'"Здесь:
<ПОРТ>— значение переменнойch_listen_tcp_portв файле./vkcloud/group_vars/vkcloud_ch_cluster_cloudaudit/vars.yml(по умолчанию —9030).<КЛАСТЕР>— значение переменнойch_macros[cloudaudit].clusterв файле./vkcloud/group_vars/vkcloud_clickhouse/vars.yml(по умолчанию —vkcloud_ch_cluster_cloudaudit).
-
Запустите консьюмеры:
# kubectl scale -n paas-vkcloud --replicas=<КОЛИЧЕСТВО_РЕПЛИК> deployment/audit-storage-consumer-storage-consumerЗдесь
<КОЛИЧЕСТВО_РЕПЛИК>— количество реплик, полученное ранее. -
После успешного выполнения миграции и проверки целостности данных удалите таблицу с резервной копией:
# clickhouse-client --port <ПОРТ> --database cloudaudit --query "DROP TABLE events_old ON CLUSTER '<КЛАСТЕР>';"Здесь
<КЛАСТЕР>— значение переменнойch_macros[cloudaudit].clusterв файле./vkcloud/group_vars/vkcloud_clickhouse/vars.yml(по умолчанию —vkcloud_ch_cluster_cloudaudit).