ALTER TABLE [db.]table [ON CLUSTER cluster] APPLY PATCHES [IN PARTITION partition_id]O comando aciona manualmente a materialização física das partes de patch criadas por instruções de UPDATE leve. Ele força a aplicação dos patches pendentes às partes de dados, reescrevendo apenas as colunas afetadas.
Quando usar APPLY PATCHES
As partes de patch normalmente são aplicadas automaticamente durante os merges quando a configuração apply_patches_on_merge está habilitada (padrão). No entanto, talvez você queira acionar manualmente a aplicação de patches nestes cenários:
- Para reduzir a sobrecarga de aplicar patches durante consultas
SELECT - Para consolidar várias partes de patch antes que se acumulem
- Para preparar os dados para backup ou exportação com os patches já materializados
- Quando
apply_patches_on_mergeestá desabilitada e você quer controlar quando os patches são aplicados
Exemplos
Aplique todos os patches pendentes em uma tabela:
ALTER TABLE my_table APPLY PATCHES;Aplique patches somente a uma partição específica:
ALTER TABLE my_table APPLY PATCHES IN PARTITION '2024-01';Combine-o com outras operações:
ALTER TABLE my_table APPLY PATCHES, UPDATE column = value WHERE condition;Monitoramento da aplicação de patch
Você pode monitorar o andamento da aplicação de patch usando a tabela system.mutations:
SELECT * FROM system.mutations
WHERE table = 'my_table' AND command LIKE '%APPLY PATCHES%';Veja também
UPDATEleve - Criar parte de patch com atualizações leves- configuração
apply_patches_on_merge- Controlar a aplicação automática de patches durante os merges