В рамках одной задачи, мне нужно было поменять (в том числе) запрос для словаря dicts_db.very_important_dict в ClickHouse.
Все остальные объекты по задачке поменяла (и даже не забыла про реплики), а вот именно с very_important_dict получила ошибку:
SQL Error [630] [07000]: Code: 630. DB::Exception: Cannot drop or rename dicts_db.very_important_dict (5a5a55a5-5aaa-5555-a55a-555a55a5aaaa), because some tables depend on it: some_db1.some_table1, some_db2.some_table2 (a5555a55-5a5a-55aa-55aa-aaa5a555a5a5). (HAVE_DEPENDENT_OBJECTS) (version 25.3.2.39 (official build))
Зависимые объекты, перечисленные в тексте ошибки, имеют движок ReplicatedMergeTree. Сначала попробовала только их дэтачнуть (т.к. они перечислены в тексте ошибки):
detach table some_db1.some_table1 on cluster dwh
detach table some_db2.some_table2 on cluster dwh
После 15 минут ожидания (подождала ZooKeeper) - та же ошибка.
Потом пошла искать все объекты, которые в DDL содержат упоминание dictionary dicts_db.very_important_dict:
select *
from system.tables
where create_table_query like '%dicts_db.very_important_dict%'
Плюсом, детачнула и все эти объекты.
detach table first_db.some1_mv
detach table first_db.some2_mv
detach table first_db.some3_mv
detach table second_db.some_history_table
detach table third_db.table1
detach table third_db.table2
detach table third_db.table3
И все равно при попытке удалить словарь падаю на ту же ошибку.
Поэтому быстренько вернула все объекты на место. И пошла за помощью к коллегам.
Как же можно поменять запрос для такого словаря?
Пишите свои предложения и предположения🤯
А ответ - как получилось реализовать задачу в данном случае будет в следующем постике😡