Size: a a a

ClickHouse не тормозит

2020 August 04

D

Denis in ClickHouse не тормозит
в первый парсинг файла я загружу 150 млн доменов в базу (хочется чтоб загрузка проходила не более 12 часов), каждый день обновляется примерно 150 тысяч доменов - хочется тоже, чтоб это было не более 12 часов

сейчас pgsql не вывозит такое
источник

pk

papa karlo in ClickHouse не тормозит
150к апдейтов вроде быстро должны работать.
источник

pk

papa karlo in ClickHouse не тормозит
у вас ссд?
источник

D

Denis in ClickHouse не тормозит
да, тестировал на hetzner cloud (VPS): 3 CPU, 4GB RAM, nvme
источник

D

Denis in ClickHouse не тормозит
там вся боль сейчас в том, что вначале я партицию (по букву) выгружаю в redis, чтоб каждый запрос в pgsql не закидывать - и долго именно из pg перекладывается, т.к. я пачками выбираю (делаю where id > last_id limit 1000)
источник

pk

papa karlo in ClickHouse не тормозит
домен это сколько, 32 байта? у вас по идее база <10Гб
источник

D

Denis in ClickHouse не тормозит
сырая выгрузка 20ГБ, в PgSQL папка с данными была что-то вроде 60ГБ
источник

D

Denis in ClickHouse не тормозит
макисмальная длина домена вроде бы 50 символов была из того что я помню, но это не точно, там 255 стоит у меня в структуре таблицы почему-то
источник

D

Dj in ClickHouse не тормозит
Denis
в первый парсинг файла я загружу 150 млн доменов в базу (хочется чтоб загрузка проходила не более 12 часов), каждый день обновляется примерно 150 тысяч доменов - хочется тоже, чтоб это было не более 12 часов

сейчас pgsql не вывозит такое
150mln ни о чем, пг норм
Вам кх не особо нужен.

Но можете в кх хранить весь лог без удалений обновлений строк тоже
источник

D

Denis in ClickHouse не тормозит
да уже хочется КХ потестить, раз с пг у меня не получается, а я уже устал финты пробовать разные ) тем более для себя, не страшно если ошибусь
источник

pk

papa karlo in ClickHouse не тормозит
можно сделать табличку с логом всего, можно сделать mv, который отдедуплицирует события по одному домену, но при чтении вроде все равно надо будет домерживать. tld точно можно инлайнить, ns для начала тоже, какая там средняя длина массива?
источник

D

Denis in ClickHouse не тормозит
в среднем 2-4 неймсервера
источник

D

Denis in ClickHouse не тормозит
источник

pk

papa karlo in ClickHouse не тормозит
еще можно самому всегда агрегировать по domain исходные данные, но 150М ключей - это обычно проблемы с памятью, надо смотреть какая предполагается аналитика и какая исходная событийная модель. что такое домен пропал из регистрации итд. Какие домены были удалены/обновлены вчера с доменной зоной = ru можно и по оригинальным событиям вообще без всякого updated_at посчитать.
источник

D

Denis in ClickHouse не тормозит
я думал вначале в память засунуть всё, но у меня нет таких серверов..))
источник

D

Denis in ClickHouse не тормозит
а вот как у КХ с запросами, когда нужно получить 1 строку из всей таблицы по её ключу? на апдейтах у меня такая логика и подразумевается, что во время последующих парсингов я делаю на каждый домен запрос в базу и проверяю NSы в коде.
Не упрусь в то, что КХ будет вывозить условно 100 запросов в секунду всего таких?
источник

pk

papa karlo in ClickHouse не тормозит
не надо делать апдейты и не надо читать по одной записи. упретесь.
источник

D

Denis in ClickHouse не тормозит
а как тогда быть? я не могу пачкой взять 100 доменов из базы и пачку в 100 доменов спарсить из файла, там если будут пропуски, то я замучаюсь понимать как это разрулить, особенно когда следующую пачку надо будет взять
источник

D

Denis in ClickHouse не тормозит
выгружать примерно по 5 млн доменов в память (по первой букве) - не выйдет опять же из-за того что не влезут(
источник

pk

papa karlo in ClickHouse не тормозит
исходные данные это что, снапшоты раз в какое-то время?
источник