Files
homework/mdrozdov/clickhouse/secondary_index.sql
T
2026-01-31 03:29:26 +07:00

65 lines
1.2 KiB
SQL

--task 1
create table mdrozdov.logs3
on CLUSTER clickhouse_cluster (
log_id Int,
ts DateTime
)
engine = ReplicatedMergeTree(
'/clickhouse/tables/{shard}/mdrozdov/logs3',
'{replica}'
)
order by ts
alter table mdrozdov.logs3
add index idx_ts ts type minmax GRANULARITY 2;
select *
from mdrozdov.logs3
where ts between '2024-06-02' and '2024-06-03'
SELECT
query,
read_rows,
result_rows,
read_bytes
FROM system.query_log
WHERE query LIKE '%logs%'
ORDER BY event_time DESC
LIMIT 1;
-- task 2
create table mdrozdov.clicks
on CLUSTER clickhouse_cluster (
id UInt64,
country String
)
engine = ReplicatedMergeTree(
'/clickhouse/tables/{shard}/mdrozdov/clicks',
'{replica}'
)
order by id
alter table mdrozdov.clicks
add index idx_country country type set(100) GRANULARITY 2
Explain
select *
from mdrozdov.clicks
where country = 'RU'
-- task 3
create table mdrozdov.users
on CLUSTER clickhouse_cluster (
id UInt64,
email String
)
engine = ReplicatedMergeTree(
'/clickhouse/tables/{shard}/mdrozdov/users',
'{replica}'
)
order by id
ALTER TABLE mdrozdov.users
ADD INDEX idx_email email TYPE bloom_filter(0.01) GRANULARITY 2;
SELECT * FROM mdrozdov.users WHERE email = 'alice@mail.com';