-- task 1 create table mdrozdov.sales2 on CLUSTER clickhouse_cluster ( id Int, region String, sale_date Date, amount Decimal(8, 2) ) engine = ReplicatedMergeTree( '/clickhouse/tables/{shard}/mdrozdov/sales2', '{replica}' ) partition by toYYYYMM(sale_date) order by id -- удаление таблицы -- drop table mdrozdov.sales -- on CLUSTER clickhouse_cluster; не удаляет таблицу полностью, она остается в zookeeper INSERT into mdrozdov.sales2 values (1, 'RU', '2024-05-01', 100.0), (2, 'RU', '2024-05-15', 120.0), --эти значения удалились (3, 'US', '2024-06-01', 90.0), (4, 'US', '2024-07-03', 150.0), (5, 'DE', '2024-07-04', 160.0) alter table mdrozdov.sales2 drop partition '202405' --2 значения удалились, которые хранились в соответствующей партиции -- task 2 create table mdrozdov.events2 on CLUSTER clickhouse_cluster ( id Int, event_type String, event_date Date ) engine = ReplicatedMergeTree( '/clickhouse/tables/{shard}/mdrozdov/events2', '{replica}' ) partition by event_type order by id INSERT into mdrozdov.events2 values (1, 'login', '2024-06-01'), (2, 'click', '2024-06-01'), (3, 'click', '2024-06-02'), (4, 'purchase', '2024-06-03'), (5, 'login', '2024-06-04') alter table mdrozdov.events2 drop partition 'click' -- task 3 create table mdrozdov.logs on CLUSTER clickhouse_cluster ( id Int, user_id Int, log_time DateTime ) engine = ReplicatedMergeTree( '/clickhouse/tables/{shard}/mdrozdov/logs', '{replica}' ) partition by cityHash64(user_id) % 100 order by id insert into mdrozdov.logs values (1, 123, '2024-07-17 10:00:00'), (2, 456, '2024-07-17 10:01:00'), (3, 789, '2024-07-17 10:02:00') --Что ты выиграешь с точки зрения баланса? --равномерное распределение данных в разных партициях, лучшее управление обновлением и удалением данных -- Почему такой тип PARTITION не ускорит SELECT * WHERE user_id = 456? -- потому что clickhouse не умеет выполнять условия партиции, чтобы найти сразу ту в которой надо искать, -- поэтому будет пробегать все 100, чтобы найти нужное, поэтому важно, чтобы таблица была отсортирована по user_id -- task 4 create table mdrozdov.visits on CLUSTER clickhouse_cluster ( id Int, region String, visit_date Date ) engine = ReplicatedMergeTree( '/clickhouse/tables/{shard}/mdrozdov/visits', '{replica}' ) partition by (region, toYYYYMM(visit_date)) order by (region, visit_date) insert into mdrozdov.visits values (1, 'RU', '2024-06-01'), (2, 'RU', '2024-06-15'), (3, 'US', '2024-06-03'), (4, 'US', '2024-07-01'), (5, 'RU', '2024-07-05') alter table mdrozdov.visits drop partition ('RU', 202407) -- эффективное удаление июльских данных по россии