Size: a a a

ClickHouse не тормозит

2020 September 29

MM

Mikhail Mikhail in ClickHouse не тормозит
Александр
Всем добрый день. Есть один теоретический вопрос. Есть определенный класс задач, где нужно одновременно поменять множество значений по какой-то логике. Самым лучшим примером такой задачи можно назвать услуги пользователя в биллинговой системе. Тоесть задача в общем виде звучит так, есть 500 тыс записей в базе, образно говоря uid и sid, айди пользователя и тарифа, при наступлении нового месяца надо обработать "одномоментно" всех этих пользователей - кому надо переключить тариф, у кого надо отключить тариф вообще, или же просто оставить такой же тариф. Вопрос про баланс, логирование и прочие вещи неинтересен. Тоесть задача тупо загрузить одну/две колонки в память, пробежать по ним и быстро все поменять как надо, по какой-то логике.
В целом есть варианты. Можно Использовать версионный движок или collapsing и таким образом эмулировать update
https://clickhouse.tech/docs/en/engines/table-engines/mergetree-family/collapsingmergetree
Или совсем по дерзкому можно скопировать записи в промежуточную таблицу и  удалить старые и вставить правильные
источник

SC

Smoked Cheese in ClickHouse не тормозит
krn p
всем привет.
как я понял, кликхаус регекс не поддерживает negative lookahead.
посему вопрос к уважаемому коммьюнити: есть ли возможность без негатив лукахеда написать дичь вроде
(?!an=)(\d+)
для
ivan=01 так, чтобы брались только цифры?
просто \d+?
источник

MM

Mikhail Mikhail in ClickHouse не тормозит
Dmitry Titov
на отстающей ноде SYSTEM RESTART REPLICA db.table_name
Примного благодарен.
источник

DT

Dmitry Titov in ClickHouse не тормозит
krn p
всем привет.
как я понял, кликхаус регекс не поддерживает negative lookahead.
посему вопрос к уважаемому коммьюнити: есть ли возможность без негатив лукахеда написать дичь вроде
(?!an=)(\d+)
для
ivan=01 так, чтобы брались только цифры?
extractAllGroups смотрел?
источник

kp

krn p in ClickHouse не тормозит
Smoked Cheese
просто \d+?
не, эт не сработает, ибо там в строке еще куча цифр может быть, а мне нужно взять именно определенный параметр из урл квери
источник

kp

krn p in ClickHouse не тормозит
Dmitry Titov
extractAllGroups смотрел?
момент, может прощелкал
источник

DT

Dmitry Titov in ClickHouse не тормозит
krn p
не, эт не сработает, ибо там в строке еще куча цифр может быть, а мне нужно взять именно определенный параметр из урл квери
extractURLParameters
источник

SC

Smoked Cheese in ClickHouse не тормозит
krn p
не, эт не сработает, ибо там в строке еще куча цифр может быть, а мне нужно взять именно определенный параметр из урл квери
parametr=(\d+)
источник

DT

Dmitry Titov in ClickHouse не тормозит
даже такое есть
источник

SC

Smoked Cheese in ClickHouse не тормозит
или я чёт не понел
источник

kp

krn p in ClickHouse не тормозит
Smoked Cheese
parametr=(\d+)
ну оно и возьмет parametr=123, а нужно 123)
источник

SC

Smoked Cheese in ClickHouse не тормозит
extract возьмёт только 123
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Maksimus Ulibikus
Так тоже ругается
SELECT
   1,
   server_name + request_uri,
   count(*) AS Reqs
FROM $table
WHERE $timeFilter
GROUP BY server_name + request_uri
ORDER BY Reqs desc
LIMIT 10;
Либо server_name || request_uri
либо concat (server_name, request_uri)
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Александр Стегниенко
Все привет!

Подскажите, как можно перегонять большие объёмы данных внутри ClickHouse между таблицами.

Есть таблица с одним видом партиционирования, уже заполненная данными, хочу попробовать иное партиционирование, посмотреть перфоманс.

Но если создать новую таблицу и попытаться перегнать туда данные (200 млн строк), то сталкиваюсь с ошибкой вида:

Code: 241, e.displayText() = DB::Exception: Memory limit (for query) exceeded: would use 9.32 GiB (attempt to allocate chunk of 4194704 bytes), maximum: 9.31 GiB: While executing MergeSortingTransform (version 20.8.2.3 (official build))


Есть ли какие-то best-practices для таких нужд?
max_threads=1
источник

kp

krn p in ClickHouse не тормозит
Smoked Cheese
extract возьмёт только 123
ну нет же,
extract(url, 'parametr=\\d+') и возьмет parametr=123
источник

SC

Smoked Cheese in ClickHouse не тормозит
ты скобочки специально забыл?
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Wolf Kreuzerkrieg
коллеги, такой вопрос, верно ли утверждение что в реплицируемой таблице, после того как парты реплицированны, и эти же парты смерджены локально, новый полученый парт никак уже в репликации не участвует?
мерж тоже реплицируется, если реплика почему-то не сможет смержить парт, она его скачает
источник

kp

krn p in ClickHouse не тормозит
Smoked Cheese
ты скобочки специально забыл?
я видимо вас не понял )
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Konstantin Malanchev
Коллеги, подскажите, гарантирует ли CH, что в GROUP BY запросе с несколькими groupArray(x), groupArray(y) вставки в массивы x, y будут происходить в одном порядке?
Да, будут
источник

WK

Wolf Kreuzerkrieg in ClickHouse не тормозит
Denny Crane [not a Yandex bot]
мерж тоже реплицируется, если реплика почему-то не сможет смержить парт, она его скачает
о... вот это интересная особенность, не знал об этом. Спасибо!
источник