Size: a a a

ClickHouse не тормозит

2021 February 09

D

Dj in ClickHouse не тормозит
Максим Чагин
Всем привет!

Имеется конфигурация:
<storage_configuration>
 <disks>
   <hdd>
     <path>/mnt/hdd/clickhouse/</path>
   </hdd>
 </disks>
 <policies>
   <hdd_policy>
     <volumes>
       <hdd_volume>
         <disk>hdd</disk>
       </hdd_volume>
     </volumes>
   </hdd_policy>
 </policies>
</storage_configuration>

При создании такой таблицы:
CREATE TABLE test.t1
(
   EventDate Date,
   Value Int32
)
ENGINE = MergeTree
PARTITION BY toYYYYMM(EventDate)
ORDER BY EventDate
TTL EventDate + INTERVAL 1 MONTH TO DISK 'hdd'
SETTINGS storage_policy='hdd_policy'

Данные пишутся на hdd, как настроить конфиг, что бы новые данные писались на ssd, а спустя месяц по TTL переносились на hdd?

Конфигурация должна быть такая или нет?
<storage_configuration>
 <disks>
   <ssd>
     <path>/mnt/ssd/clickhouse/</path>
   </ssd>
   <hdd>
     <path>/mnt/hdd/clickhouse/</path>
   </hdd>
 </disks>
 <policies>
   <hdd_policy>
     <volumes>
       <ssd_volume>
         <disk>ssd</disk>
       </ssd_volume>
       <hdd_volume>
         <disk>hdd</disk>
       </hdd_volume>
     </volumes>
   </hdd_policy>
 </policies>
</storage_configuration>
с виду ок
источник

MM

Michael M in ClickHouse не тормозит
его ранее @kshvakov разрабатывал?
источник

Α

Αλεξ in ClickHouse не тормозит
Michael M
его ранее @kshvakov разрабатывал?
Да
источник

D

Dj in ClickHouse не тормозит
Dmitry Lukovkin
вроде идентично
а это?
SELECT * FROM system.zookeeper WHERE path =
'/clickhouse/tables/1/log/replicas/1' AND name IN ('metadata_version');
...
SELECT * FROM system.zookeeper WHERE path =
'/clickhouse/tables/1/log/replicas/2' AND name IN ('metadata_version');
источник

DL

Dmitry Lukovkin in ClickHouse не тормозит
Dj
а это?
SELECT * FROM system.zookeeper WHERE path =
'/clickhouse/tables/1/log/replicas/1' AND name IN ('metadata_version');
...
SELECT * FROM system.zookeeper WHERE path =
'/clickhouse/tables/1/log/replicas/2' AND name IN ('metadata_version');
тоже одинаково.
czxid mzxid ctime mtime
совпадают
источник

DL

Dmitry Lukovkin in ClickHouse не тормозит
похоже сейчас с репликой все нормально
источник

YT

Yury Trostin in ClickHouse не тормозит
всем привет, нужна помощь
есть столбец string, в каждой string - произвольное количество json, минимум 1
я хочу строку распарсить, разбить в массив и работать с каждым элементом массива как с ValidJSON
план такой, что хочу заменить в каждой строке ", " на скажем "|" при условии, что до ", " идёт "}", а после идёт "{", и затем splitByChar
соответственно пытаюсь написать регулярное выражение, чтобы это сматчить, но ничего не работает
replaceRegexpAll(some_string, '(?<=\\}), (?>=\\{)', '|')

что я делаю не так и как сделать правильно ?
источник
2021 February 10

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Yury Trostin
всем привет, нужна помощь
есть столбец string, в каждой string - произвольное количество json, минимум 1
я хочу строку распарсить, разбить в массив и работать с каждым элементом массива как с ValidJSON
план такой, что хочу заменить в каждой строке ", " на скажем "|" при условии, что до ", " идёт "}", а после идёт "{", и затем splitByChar
соответственно пытаюсь написать регулярное выражение, чтобы это сматчить, но ничего не работает
replaceRegexpAll(some_string, '(?<=\\}), (?>=\\{)', '|')

что я делаю не так и как сделать правильно ?
есть такая штука JSONAsString оно json-ы в разные строки раскладывает
источник

YT

Yury Trostin in ClickHouse не тормозит
Denny Crane [not a Yandex bot]
есть такая штука JSONAsString оно json-ы в разные строки раскладывает
Круто, спасибо, попробую
источник

b

blkmrkt in ClickHouse не тормозит
Ребят, а КХ подходит для хранения и кверинга sorted sets во времени? Лучше всего наверное подходит аналогия с отслеживанием хитов веб-реквестов с примерно миллиардом уникальных посетителей, но мне требуется делать запросы вроде topN пользователей по количеству реквестов за последний месяц, а так же всего уникальных пользоватеоей в месяц.

Насколько жирная машина потребуется для КХ, если всего пользователей 1млрд, а хитов около 500млн в месяц?
источник

VR

Vladimir Rudev in ClickHouse не тормозит
blkmrkt
Ребят, а КХ подходит для хранения и кверинга sorted sets во времени? Лучше всего наверное подходит аналогия с отслеживанием хитов веб-реквестов с примерно миллиардом уникальных посетителей, но мне требуется делать запросы вроде topN пользователей по количеству реквестов за последний месяц, а так же всего уникальных пользоватеоей в месяц.

Насколько жирная машина потребуется для КХ, если всего пользователей 1млрд, а хитов около 500млн в месяц?
У нас сервак на 12 HDD, 32 потока ЦПУ, 64 ОЗУ посчитал uniqExact(uuid-строка) из 260кк записей(уников 230кк) за 50 секунд без кеша. Памяти съело 12ГБ.
По месту на HDD - зависит от payload записей... берете 100кк записей в файл, жмете, считаете. КХ сожмет их лучше)
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
blkmrkt
Ребят, а КХ подходит для хранения и кверинга sorted sets во времени? Лучше всего наверное подходит аналогия с отслеживанием хитов веб-реквестов с примерно миллиардом уникальных посетителей, но мне требуется делать запросы вроде topN пользователей по количеству реквестов за последний месяц, а так же всего уникальных пользоватеоей в месяц.

Насколько жирная машина потребуется для КХ, если всего пользователей 1млрд, а хитов около 500млн в месяц?
точное число до копейки ведь не нужно ? Можно хранить агрегаты по часу / дню, uniqHLL12State и считать за миллисекунды
источник

b

blkmrkt in ClickHouse не тормозит
Denny Crane [not a Yandex bot]
точное число до копейки ведь не нужно ? Можно хранить агрегаты по часу / дню, uniqHLL12State и считать за миллисекунды
Угу, вот спасибо, погуглю что это
источник

R

RR2347987 in ClickHouse не тормозит
Всем привет!
Подскажите пожалуйста, почему в мат вью с движком ReplacingMergeTree могут не записываться данные?
Уже долгое время пытаюсь отловить этот shadow bug.
Когда ручками пересоздаю мат вью, то данные подтягиваются, а если её оставить на недельку, то некоторые строки не долетают.

@den_crane 🙏
источник

DZ

Dmitry Z in ClickHouse не тормозит
Всем привет!
Есть данные статистики netflow в кликхаусе.
┌─evtDate  ─┬─────────time─┬──srcaddr─┬─srcport─┬─dstaddr─┬─dstport─┬evt─┬─proto┐
│ 2019-02-01 │ 2019-02-01 00:00:00 │ 3706411294 │   14918 │ 3285434422 │    6889 │       129 │    17 │
│ 2019-02-01 │ 2019-02-01 00:00:01 │   34643719   │       0       │ 3285434645 │    2048 │        80   │     1  │
Хранится в виде реальных записей netflow.
Хочется свернуть по метке time до 1 минутных интервалов.
То есть при совпадении всех остальных данных нужно в рамках 1ой минуты просуммировать значение evt.
Как это можно сделать?
источник

K

KiLEX 萊赫 in ClickHouse не тормозит
Dmitry Z
Всем привет!
Есть данные статистики netflow в кликхаусе.
┌─evtDate  ─┬─────────time─┬──srcaddr─┬─srcport─┬─dstaddr─┬─dstport─┬evt─┬─proto┐
│ 2019-02-01 │ 2019-02-01 00:00:00 │ 3706411294 │   14918 │ 3285434422 │    6889 │       129 │    17 │
│ 2019-02-01 │ 2019-02-01 00:00:01 │   34643719   │       0       │ 3285434645 │    2048 │        80   │     1  │
Хранится в виде реальных записей netflow.
Хочется свернуть по метке time до 1 минутных интервалов.
То есть при совпадении всех остальных данных нужно в рамках 1ой минуты просуммировать значение evt.
Как это можно сделать?
источник

K

KiLEX 萊赫 in ClickHouse не тормозит
Dmitry Z
Всем привет!
Есть данные статистики netflow в кликхаусе.
┌─evtDate  ─┬─────────time─┬──srcaddr─┬─srcport─┬─dstaddr─┬─dstport─┬evt─┬─proto┐
│ 2019-02-01 │ 2019-02-01 00:00:00 │ 3706411294 │   14918 │ 3285434422 │    6889 │       129 │    17 │
│ 2019-02-01 │ 2019-02-01 00:00:01 │   34643719   │       0       │ 3285434645 │    2048 │        80   │     1  │
Хранится в виде реальных записей netflow.
Хочется свернуть по метке time до 1 минутных интервалов.
То есть при совпадении всех остальных данных нужно в рамках 1ой минуты просуммировать значение evt.
Как это можно сделать?
+ добавить поле с DEFAULT toStartOfMinute и ORDER BY с его учетом
источник

DL

Dmitry Lukovkin in ClickHouse не тормозит
В логах на одной из нод реплики сыпятся ошибки:
<Trace> HTTPCommon: Failed communicating with x.x.x.x with error 'Invalid HTTP status code' will try to reconnect session
На второй ноде с виду все нормально - идет вставка
Куда смотреть?
источник

DL

Dmitry Lukovkin in ClickHouse не тормозит
Если curl-ом запрос пробросить, то вот это выводит:
Poco::Exception. Code: 1000, e.code() = 0, e.displayText() = Not found: compress (version 20.11.3.3 (official build))
источник

R

RR2347987 in ClickHouse не тормозит
RR2347987
Всем привет!
Подскажите пожалуйста, почему в мат вью с движком ReplacingMergeTree могут не записываться данные?
Уже долгое время пытаюсь отловить этот shadow bug.
Когда ручками пересоздаю мат вью, то данные подтягиваются, а если её оставить на недельку, то некоторые строки не долетают.

@den_crane 🙏
Разобрался - спасибо Денису на вот этой минуте - https://youtu.be/1LVJ_WcLgF8?t=7623
Может кому-то будет полезным, объясню в чем был мой мажорный баг:
Не используйте другие мат вью при формировании селекта для основного мат вью. Все дело в стриминге данных и может получиться рассинхрон данных в основном мат вью и тех, что используются в селекте. В таком случае не соблюдается комплиментарность данных.
источник