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

Добрый день, товарищи. Честно говоря, не знаю куда писать:

сюда или сразу на гитхаб.
Windows 10, WSL2, выделено 25 Гб RAM, SSD, AMD Ryzen 9 5900X.

Короче, я читаю паркет файлы в таблицу (файлы на SSD)

create table s3_engine_table engine = Log as
select *
from file('*.snappy.parquet', 'Parquet',
'FIEDL1 Int8,
FIELD2 String,
.......................
')
Количество записей в таблице = 1_069_802_327

И вот такое вот вижу в конце.
Elapsed: 1332.354 sec. Processed 1.07 billion rows, 358.32 GB (802.94 thousand rows/s., 268.94 MB/s.)

Давно подозревал, что скорость какая-то невысокая. Причем, было подозрение, что несколько версий кликхауса назад - это было быстрее. Но, не смог подтвердить это. Подумал, что 270 МБ/с - это, в принципе, нормально, и я зажрался.
Сегодня потребовалось загрузить снова эти же файлы, но с фильтром, который отбрасывает ООООООЧЕНЬ мало данных ( < 0.1%)

create table s3_engine_table engine = Log as
select *
from file('*.snappy.parquet', 'Parquet',
'FIELD1 Int8,
FIELD2 String,
.......................
')
WHERE FIELD1 > 0
Количество записей в таблице = 1_065_699_351

И, о чудо,
Elapsed: 450.282 sec. Processed 1.07 billion rows, 358.32 GB (2.38 million rows/s., 795.77 MB/s.)
В 3 раза быстрее!!!!

Что? Почему??

При этом, в первом случае, занято всего одно ядро. Во-втором - много. Неужели, надо искусственно добавлять какое-то условие, чтобы включились векторные оптимизации???

3 ответов

10 просмотров

Интересно, но скорей всего логическое объяснение есть какое то, но могу сказать при переносе данных из одного кликхауса через функцию remote получал примерно теже цифры, что и вы в первом примере

получилось выяснить в чем была проблема?

Ilya-Fiks Автор вопроса

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

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

Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
База данных не поможет. Шифрование не поможет. Какие там ещё варианты? Накидывайте.
КТ315
20
А табстоп это сообщение от окна или от элемента управления?
The Bird of Hermes
18
А как лучше конвертировать физический адрес в виртуальный при маппинге? В случае ядра у меня, например, direct mapping, первые 768МБ я как есть мапплю в higher half, а остальн...
Evg Resh
26
Всем привет. Подскажите, пожалуйста, как вы реализовываете следующий функционал. Допустим есть форма, в которой имеется выпадающий список со значениями. Значения хранятся в БД...
Евгений
7
Открыл свой двухкилобайтный экзешник в x32dbg, а тут какая-то хрень. Смущает кнопка "выполнить до пользовательского кода", а что ещё может быть в файле помимо него ?
НѣкъиⰘижєжєиꙁъвьсєсвѣтьноѣсѣтиѥсть•
11
Всем привет, подскажите/посоветуйте пожалуйста. Фаердак компоненты, имею одно место где бизнес хочет видеть при открытии формы список всех клиентов, это порядка 30к. Мои дово...
Sasha Sch
14
Хотел бы спросить у знающих, правильную ли я выбрал книгу для начала изучения ассемблера Юрова В.И ? Или есть более лучшие книги для начала обучения?
Botsman
31
Мне были интересны дишные хаки и я нашёл любопытный способ на форуме через __traits, что-то вроде int delegate(int) fac = (int n) => n == 0 ? 1 : n * __traits(parent, {})(n - ...
Constantin F.
1
$params = [ 'formid' => 'feedbackForm', 'formTpl' => '@CODE: <form class="form-validate" data-id="ajax_form"> <fieldset class="margin-bottom-md"> ...
Pathologic
1
Карта сайта