184 похожих чатов

Скрипт процессит огромный файл и генерирует записи которые нужно

вставить в клик.

Всегда делал вот так

/opt/script --in=big.file | clickhouse-client -h 127.0.0.1 --query="INSERT INTO xxxx FORMAT JSONEachRow"

А сейчас скрипт работает, никаких ошибок в терминале, но и в базе клика по нулям

если сделать

/opt/script --in=big.file > file.out
clickhouse-client -h 127.0.0.1 --query="INSERT INTO xxx FORMAT JSONEachRow" < file.out

то данные начинают появляться

Как повысить уровень отладки в клике чтобы посмотреть что происходит? Клик вставляет батчами по 1М вроде, а как это понизить? может быть каждом батче есть проблемное поле и весь батч молча валится?

7 ответов

7 просмотров

--send_logs_level=debug --max_insert_block_size=1000

Nekto- Автор вопроса
Denny [Altinity]
--send_logs_level=debug --max_insert_block_size=10...

tnx, запустил скрипт, чуть позже отпишусь о результатах

Nekto- Автор вопроса
Nekto
tnx, запустил скрипт, чуть позже отпишусь о резуль...

) поставил --max_insert_block_size=1000 , пока скрипт работает в базе по нулям. Если прерываю скрипт по Ctrl+C - то записи появляются. Если ставлю --max_insert_block_size=10000 и прерываю, то записей в базе нету (видно не успело накопиться до тех пор пока прервал) Если при батче размеров 100000 понятно почему так происходит, то почему при батче в 1000 не появляются записи (когда они появляются их там около 20к штук) не понятно. Транзакций ведь в клике нету, что за чудеса блин UPD: оказалось, что нужно использовать опцию min_insert_block_size_rows, именно она отвечает за размер батча и мистерия с "транзакциями" ушла

Nekto
) поставил --max_insert_block_size=1000 , пока скр...

транзакций нету, но парты атомарны, либо парт создан целиком либо нет. Инсерт не атомарен, а кусок инсерта атомарен. непонятно все равно что происходит, у вас приложение в конце возращает ненулевой код возврата видимо

Nekto- Автор вопроса
Denny [Altinity]
транзакций нету, но парты атомарны, либо парт созд...

дописал в исходное, но видно вы уже отвечали. UPD: оказалось, что нужно использовать опцию min_insert_block_size_rows=1000, именно она отвечает за размер батча и мистерия с "транзакциями" ушла Теперь вставки идут блоками по 1000, Пока гипотеза, что клик ждал блока в 1М, но где-то происходил фейл. Скрипт долго будет работать, завтра днем отпишусь что дал дебаг

Nekto
дописал в исходное, но видно вы уже отвечали. UPD...

я видел это, просто все несколько не так, но это надо полчаса печатать, нетелефонный разговор.

Nekto- Автор вопроса
Denny [Altinity]
я видел это, просто все несколько не так, но это н...

ок, все равно спасибо, дальше сам в документации и в приложении пороюсь, может что и найду

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта