4月,Avito工程师与ClickHouse首席开发人员Alexei Milovidov和Integros的Golang开发人员Kirill Shvakov进行了在线聚会。他们讨论了我们如何使用数据库管理系统以及我们遇到的困难。
在这次会议的基础上,我们收集了一篇文章,其中包含有关备份和数据重新分片,外部词典,Golang驱动程序和ClickHouse版本更新的问题和有关问题的专家解答。对于已经积极使用Yandex DBMS并对它的现在和未来感兴趣的开发人员,这可能会很有用。除非另有说明,否则默认答案是Alexey Milovidov。
注意,下切了很多文字。我们希望有问题的内容能帮助您导航。

内容
, -. — .
ClickHouse , — . ?
ClickHouse , , optimize final , .
, - , . , , , , ClickHouse. , ?
, , , . , ClickHouse . , , - . , , ClickHouse . .
ClickHouse?
, optimize final, , , , , , ?
: - - . , , ?
. «.», . , .
, ClickHouse, . , . , , .
. — .
, :
- , — show create table.
- ClickHouse — select * from table . TabSeparated. — Native.
, . , ClickHouse. , MySQL .
ClickHouse . alter table freeze partition. alter table freeze — .
, . , . . - , .
. — . Directory-Detached attach partition. .
- — , . , «.». — , .
. ClickHouse , . , . . — LVM , — ZFS Linux.
, - . , , . , . , .
?
ClickHouse. ? .
- roll back ? , , , ?
, , , , ?
. , issue : « - , , ». , issue . , , ClickHouse. , 20.3.
ClickHouse — . , . , , .
-, , select, , . select .
-, — . . : , , . ClickHouse .
, . , ClickHouse , . - , , , alter drop column. .
20.3, , . — , . , , . , , , , - , . , , .
. alter delete alter update, , . .
, ?
, ? . Btrfs ZFS Linux LVM?
attach partition , ClickHouse , . . — MergeTree , attach, alter. attach , alter table move partition.
— Btrfs. , LVM, LVM , ext4, . Btrts . , , . , Btrfs .
?
. . — ClickHouse . , . , ClickHouse .
, . , , . , , , .
, , — alter table fetch partition. , , 2017 , — - . , - .
, . , . . , . , .
, , , . — . select Distributed , .
, , . , , , . , select — , , — .
. , - , , Distributed . ClickHouse optimize skip unused shards. select where , , . , . , .
, . , , .
, lead system administrator : , , , . , , , . , , , - .
: — , , . , . , . , , .
, , , . . , , . , , .
2019 . , 2019 , 2019 — , - . . , ad hoc , .
. , , . .
, . . — . — . — , . , .
, — . , select. select, , .
, CPU - - . , , . , , . , . , .
: , , . , ClickHouse .
, , . . , ClickHouse: « . - - , ».
, , , . .
: , , , , .
«.». — , . -. «.», — avito.ru, , .
— , . , «». , «» . , .
, , ? , ClickHouse «» — . , , ClickHouse .
— - . Distributed , , . , , , , .
. , , . , - . . avito.ru. , , — . .
. , . . .
? — , . . — -, , , MySQL. — . .
. , , . , - , . , . Distributed , . .
, , . clickhouse-copier.
— . , , , , 120 — 360 . , . «.» avito.ru, 120 . . , . Distributed , 120 .
— . , .
ClickHouse clickhouse-copier. ?
, . , , . , . .
, . , , , , .
, , . Distributed , clickhouse-copier, , , . , , , . , , .
clickhouse-copier? . , clickhouse-copier , , — insert select. , , , , -, . .
2017 , . ClickHouse. , . , ? .
, , . , , , . , , — .
?
TTL move to slow disk . , cron, ?
, - — . , . , , .
. — . - , . , — .
— . . , .
ClickHouse, ?
- ClickHouse , . 19.11 19.16 , , 19.16 20.3. , ?
«» . — changelog. , . . , , , , .
— , , — . . , , , , , . . - , — .
— . ClickHouse, .
20.3.4. 20 — 2020. , , , . — 20.3. — 3 — , - . ClickHouse - , . 20.4 ClickHouse . — 20.3.4. 4 — -, , - . 4 , .
, - . , - . , - , , . . -, ClickHouse .
ClickHouse , ClickHouse — , 20.4.1 — , . ? ClickHouse, , , , . ClickHouse , — .
: . - , , ClickHouse, . .
. , ClickHouse. — Hetzner , . , Ansible, , — .
? ClickHouse , — Docker, LXC, , Ansible playbook, . . , - . , , — . , . — .
, senior backend engineer : . ClickHouse, , . . -, . — , , , , . . , , .
: , «.». 600 - , 360, . — . ? . . , .
- -. , , .
. ClickHouse. , «.», , . , CI. .
. . , . . : , , . . . — , .
- . : « , . , . , . ». , , — . .
Kill query , . ?
, - , , ClickHouse. - — , . , CPU , . ClickHouse . : « , , process list, ».
kill. , . , ClickHouse - , , , . , ClickHouse, kill query . ? , kill query , .
. , kill query .
Kill query « , ». . , . , , . , . , .
, - . , , , , , . , . , . , , — ClickHouse.
?
, item — . — . , 1K RPS 1K item’?
, , — , , .
. select 1 ClickHouse , . , - key-value , . , . — 8192 . 64 1 . . .
. , . , , . 1000 RPS ClickHouse , , .
ClickHouse , — . , , .
, , ClickHouse . ? — . , , . , 64.
. min compress block size, max compress block size. , , . ClickHouse — key-value . — .
: , . , ClickHouse - . , - , - , - . MySQL, — MySQL duplicate key, PostgreSQL conflict — . .
, ClickHouse . , .
ClickHouse, ?
— 256 , ClickHouse 60—80 , — 130. , , , ?
, page cache . , cached free — , — , . , . , , .
, , ClickHouse . uncompressed cache. config.xml uncompressed cache size — , page cache.
, . — use uncompressed cache — . , , . — - . , .
storage_configuration ?
ClickHouse , data storage. fast SSD.
, volume hot memory. . select , , , ? prewhere ?
, .
.
. , — . tmpfs , - . , , .
- , , -, . , . , . , . ClickHouse , , , ZooKeeper . , , . .
, page cache . . , ClickHouse fsync insert.
, . select , , , . prewhere , , .
Low Cardinality?
Low Cardinality . , . -, , -, . — -, — , .
: — , — - Low Cardinality . fallback, , . , string, , , .
?
. — , ClickHouse — . , Elasticsearch Sphinx. , , , Elasticsearch ClickHouse.
? , Elasticsearch , , . , , ClickHouse, , . , - , . , - .
ClickHouse , . . , , - like. like ClickHouse — like, . — .
like — full scan. full scan CPU, . , - , . , , SSH .
. — , . ClickHouse -. Arenadata , , .
, , : - . , - , , . , .
ClickHouse . , -, , , , UTF-8 ASCII. , .
. X like or X like . , .
— . - , .
ClickHouse ?
, . , max concurrent queries, ?
, , . , , , . . , .
, . , .
, . «.» select count from hits, , . , , — , . .
, , . — force index by date. , . , . — where event date between . , and or — or URL match. , URL .
, ClickHouse . , . priority. priority ≠ 0, - , , , , , , .
, , . , , , .
OS thread priority. nice Linux. , - . nice — , — -19, CPU , .
— , . — . , , , ClickHouse , .
, : - — . , . . . min execution speed — , timeout before checking min execution speed — . , , , — .
. ClickHouse , . , , CPU, , — , . , , .
? ClickHouse . . , , . , . .
?
, . , , - , , . , , , ?
, . page cache , , , , , .
- , , - . pull request, , in join — .
, . — . , , limit 10. , limit 10,10. . , ? , .
, ClickHouse — ClickHouse Proxy.
: ClickHouse Proxy . , . Proxy , , , . , Proxy , ClickHouse .
Nginx , . Nginx , , , , . ClickHouse Proxy . ClickHouse, , . .
?
, - — , . - , . - , . ?
— . - « », ?
, . , , , .
. , , . “Ok” insert, , .
. “Ok”, . ClickHouse, , . , , . — . , , . .
, . , .
. , . , , . , , , . — insert. .
. . , , , , . , . , .
: . , , , — . , , , . , — . .
? , — , . - , . , , , . - , , .
API — ClickHouse . API : , , , . , , . , ClickHouse.
API - — , — , . , . - . , .
ClickHouse . , , ?
ClickHouse , . - , . , . , , , - .
ClickHouse, , , ? , ClickHouse — . , . .
, . - 60 ClickHouse, , , , - . «.». , . .
«» Grafana, . . , . , Graphite-web. . , Grafana, , .
. : CPU, , , . — , , , MergeTree, , , , . , , .
: , . Grafana. Grafana datasource, ClickHouse. Grafana ClickHouse. ClickHouse , . Grafana , . .
. — , Grafana , «» ?
: datasource, ClickHouse, Altinity. , . , «» - ClickHouse, . Altinity — , ClickHouse. , . , Grafana, — .
: ClickHouse . . , , . , , . - , .
, , — , . -, , . . , , : «, - Grafana?», : « Grafana, “”, , . , , ».
, OOM?
, , ReplacingMergeTree. . - .
, , OOM. , , , OOM. . .
, , . , . - . , , , — - ? , , , .
, «», , , . , . , , , , . ? , - , - , - , , . OOM . , .
, OOM, . .
: . , , , , , , , . 100 . 150 , 100 , 50 , OOM .
, OOM, 100 ? , ?
: , . , , - , , . — , , . , , , , .
, , « » OOM. , , - , , — . .
Golang- ClickHouse?
Golang-, , ClickHouse. ClickHouse, .
. — Vertica. python-, Vertica. , , - . . , , «» — issue, .
. Golang- — Golang ClickHouse. - http , . ? - breaking changes ? issue?
: — . , .
issue, . , . , - . - ClickHouse. , , ClickHouse . , .
ClickHouse, - . — , . , .
Go, , Go. — . - , , - . CloudFlare , - , . ClickHouse , .
- , ClickHouse . issues . , - . pull request - , .
. , , ClickHouse . , , . , 2 - .
, . . - , , . «» .
: . — , Go. - , .
. — , , -, - .
lazy_load. ?
lazy_load, . , . . - ClickHouse , , ?
ClickHouse, . ?
-, system reload dictionaries. -, — , , . , .
. , MySQL. - select, select . . — lazy_load. — , , , system reload dictionary , . . lazy_load, ClickHouse .
— , .
, system reload dictionaries , ?
system reload dictionaries. — , . System reload dictionaries , c system reload dictionary. ClickHouse?
. . , ClickHouse, . system reload dictionaries, , , .
ClickHouse, ?
, , . ClickHouse , .
ODBC. - ClickHouse, ?
— credentials odbc.ini, ClickHouse ODBC Data Source Name. — MySQL, . ODBC — , .
:
. , .
