Size: a a a

ClickHouse не тормозит

2020 August 30

l

lnuynxa in ClickHouse не тормозит
Maxim Bogdanov
интересно, спасибо. А почему не наоборот? В смысле не 5млн словарь и 50млн строк. Или так и задумано?
Так и задумано, это просто бенчмарк(на самом деле должно было быть 2 джоина, но кликхаус не может одновременно выполнять последовательные джоины)
источник

A

Artem in ClickHouse не тормозит
Maxim Bogdanov
Не, очень медленная штука. Тестил на 6млн записях, у скорость около 2сек была. Написал свою имплементацию, на 20млн 500мс скорость на одном ядре 🙂
Так может вы нечто подобное в виде PR для кликхауса реализуете?
источник

M

Maxim Bogdanov in ClickHouse не тормозит
Artem
Так может вы нечто подобное в виде PR для кликхауса реализуете?
Так я пишу на Го, делаю то же, что сделала Victoria Metrics — беру всё лучшее от MergeTree, убираю всё ненужное и затачиваю под определённые задачи.
источник

l

lnuynxa in ClickHouse не тормозит
Был вроде аналог кликхауса на го, какой то его версии
источник

M

Maxim Bogdanov in ClickHouse не тормозит
Ой, вряд-ли кто-то так заморочился бы 🙂
источник

M

Maxim Bogdanov in ClickHouse не тормозит
Уж очень большой объём работ
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
в общем есть такой словарь DIRECT и похоже в нем больше смысла чем в ssd словаре

SELECT dictGetString('database_for_dict.ssd_dict', 'c', toUInt64(number)) AS xxx
FROM numbers(100000)
WHERE xxx = ''

Elapsed: 9.422 sec.

SELECT dictGetString('database_for_dict.ssd_dict', 'c', toUInt64(number+200000)) AS xxx
FROM numbers(100000)
WHERE xxx = ''

Elapsed: 37.181 sec.


-----------------

SELECT dictGetString('database_for_dict.direct_dict', 'c', toUInt64(number)) AS xxx
FROM numbers(100000)
WHERE xxx = ''

Elapsed: 0.316 sec.

SELECT dictGetString('database_for_dict.direct_dict', 'c', toUInt64(number+2000000)) AS xxx
FROM numbers(100000)
WHERE xxx = ''

Elapsed: 0.291 sec.

SELECT dictGetString('database_for_dict.direct_dict', 'c', toUInt64(number+100000000)) AS xxx
FROM numbers(100000)
WHERE xxx = ''

Elapsed: 0.304 sec.
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
в общем в DIRECT словарь можно любой объем запихать, это тупой lookup в сам КХ
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
лям лукапов в nvme index_granularity 8192

SELECT dictGetString('database_for_dict.direct_dict', 'c', toUInt64(number)) AS xxx
FROM numbers(1000000)
WHERE xxx = ''

Elapsed: 2.115 sec. Processed 1.05 million rows
источник

D

Dj in ClickHouse не тормозит
Denny Crane [not a Yandex bot]
в общем есть такой словарь DIRECT и похоже в нем больше смысла чем в ssd словаре

SELECT dictGetString('database_for_dict.ssd_dict', 'c', toUInt64(number)) AS xxx
FROM numbers(100000)
WHERE xxx = ''

Elapsed: 9.422 sec.

SELECT dictGetString('database_for_dict.ssd_dict', 'c', toUInt64(number+200000)) AS xxx
FROM numbers(100000)
WHERE xxx = ''

Elapsed: 37.181 sec.


-----------------

SELECT dictGetString('database_for_dict.direct_dict', 'c', toUInt64(number)) AS xxx
FROM numbers(100000)
WHERE xxx = ''

Elapsed: 0.316 sec.

SELECT dictGetString('database_for_dict.direct_dict', 'c', toUInt64(number+2000000)) AS xxx
FROM numbers(100000)
WHERE xxx = ''

Elapsed: 0.291 sec.

SELECT dictGetString('database_for_dict.direct_dict', 'c', toUInt64(number+100000000)) AS xxx
FROM numbers(100000)
WHERE xxx = ''

Elapsed: 0.304 sec.
А может вы нечестно сравниваете лукапя последовательные числа?
источник

M

Maxim Bogdanov in ClickHouse не тормозит
Dj
А может вы нечестно сравниваете лукапя последовательные числа?
А что поменяется, если их лукапить не рэндомно? Это же не HDD
источник

M

Maxim Bogdanov in ClickHouse не тормозит
тем более всё в памяти, там всё равно по бакетам всё раскидано
источник

M

Maxim Bogdanov in ClickHouse не тормозит
По идее.
источник

D

Dj in ClickHouse не тормозит
Maxim Bogdanov
А что поменяется, если их лукапить не рэндомно? Это же не HDD
Ну у директа на диске сортированные гранулы по 8192, есть подозрение что за раз он их всех и возвращает
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Dj
А может вы нечестно сравниваете лукапя последовательные числа?
источник

D

Dj in ClickHouse не тормозит
Я при этом смыслом ssdcache вообще еще не проникся, индекс в памяти, данные на диске кешируемые кусками. Тут реально есть где сильно прлигрывать директу или...
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
SELECT dictGetString('database_for_dict.direct_dict', 'c', toUInt64(number)) AS xxx
FROM numbers(1000000)
WHERE xxx = ''

0 rows in set. Elapsed: 2.444 sec. Processed 1.05 million rows, 8.38 MB (428.85 thousand rows/s., 3.43 MB/s.)

SELECT dictGetString('database_for_dict.direct_dict', 'c', toUInt64(cityHash64(number+100000000))) AS xxx
FROM numbers(1000000)
WHERE xxx = ''
0 rows in set. Elapsed: 2.708 sec. Processed 1.05 million rows, 8.38 MB (386.99 thousand rows/s., 3.10 MB/s.)

SELECT dictGetString('database_for_dict.direct_dict', 'c', toUInt64(cityHash64(number)%5555555)) AS xxx
FROM numbers(1000000)
WHERE xxx = ''
0 rows in set. Elapsed: 3.507 sec. Processed 1.05 million rows, 8.38 MB (298.84 thousand rows/s., 2.39 MB/s.)
источник

l

lnuynxa in ClickHouse не тормозит
А мы тут сравниваем словарь direct на ссд и ssd cache?
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
lnuynxa
А мы тут сравниваем словарь direct на ссд и ssd cache?
я да
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
direct рвет в 100 раз
источник