Size: a a a

ClickHouse не тормозит

2020 August 24

DT

Dmitry Titov in ClickHouse не тормозит
Alex
Коллеги, доброго времени суток, такой вопрос, имеется таблица ReplacingMergeTree, примерно на 1k строк +-30 строк вставляется с таким же ключом сортировки, как сильно отразится производительность от модификатора FINAL на больших объемах?
Таким образом, что лучше его не использовать.
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Artem
Дело в том, что запросов много и часто и некоторые диапазоны получаются большие (как раз ложно-положительные). Вот кумулятивно, получается нехватка памяти. Сообщение об ошибке стандартное при попытке вставить данные. Хотя без этих мелких запросов все работало стабильно 10 дней (по 10 млн. записей в сутки).
какая ошибка при инсерте? Не надо пересказывать своими словами, там 3 разных ошибки и вам они кажутся одной и той же но это не (тут мат) так. И какая версия КХ.
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Denis Dorozhkin
Есть неуникальные данные которые размазаны по шардам рандомно.
Задача - сагрегировать данные каждом шарде и уникализировать эти агрегаты во всем кластере.

Раньше была старая версия clickhouse 1.1*

И на нем проблема решалась примерно так. На каждом шарде делалась агрегация такого вида.

select * from (
select *, hostName() as hostname from distributed_table
limit 1 by unique_key
) where hostname = hostName()


После обновления на версию 19.16.14.65 этот подход перестал работать, из-за того, что появилась вероятность того, что вложенный и наружний запросы стали выполняться на разных репликах одного шарда. Соответственно стала возвращаться пустота т к hostName() никогда не совпадут (тут я очень сильно удивился, т к prefer_localhost_replica=1 не помог, может есть способ строго зафиксировать реплику?)


Появилось желание переделать c hostName() на shard_num из system.clusters, для этого делаю join этой таблицы.

виртуального _shard_num нет еще в нашей версии.
>появилась вероятность того, что вложенный и наружний
>запросы стали выполняться на разных репликах одного шарда

конечно нет. Вообще все не так и в 1.1* и в 19.16.
Внешний запрос всегда выполняется и всегда выполнялся на инициаторе и там был hostName() инициатора.



>Есть неуникальные данные которые размазаны по шардам рандомно.
ну у всех так, это типовая ситуация

>Задача - сагрегировать данные каждом шарде и
>уникализировать эти агрегаты во всем кластере.
Что???????

почему просто

select * from distributed_table limit 1 by unique_key

не подходит?
источник

A

Alexander in ClickHouse не тормозит
Привет.
Есть задача, файлы *.csv.gz лежат в AWS S3.
Можно ли их без предварительной декомпрессии инсертить в КХ?
источник

IP

Ivan V. Protchenko in ClickHouse не тормозит
Переслано от Ivan V. Protchenko
здраствуйте, поскажите как почистить историю консольного клиента?
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Temur Uzbekov

17. /usr/bin/clickhouse-server(ThreadFromGlobalPool::ThreadFromGlobalPool<ThreadPoolImpl<ThreadFromGlobalPool>::scheduleImpl<void>(std::function<void ()>, int, std::optional<unsigned long>)::{lambda()#3}>(ThreadPoolImpl<ThreadFromGlobalPool>::scheduleImpl<void>(std::function<void ()>, int, std::optional<unsigned long>)::{lambda()#3}&&)::{lambda()#1}::operator()() const+0x3c) [0x78e8a5c]
18. /usr/bin/clickhouse-server(ThreadPoolImpl<std::thread>::worker(std::_List_iterator<std::thread>)+0x1af) [0x78e6a0f]
19. /usr/bin/clickhouse-server() [0xb79aaef]
20. /lib/x86_64-linux-gnu/libpthread.so.0(+0x74a4) [0x7f1f13e7b4a4]
21. /lib/x86_64-linux-gnu/libc.so.6(clone+0x3f) [0x7f1f134add0f]
(version 19.8.3.8 (official build))
19.8.3.8 был очень неудачным и очень кривым, как вообще так вышло что вы на нем застряли?

берите 19.13.7.57
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Alexander
Привет.
Есть задача, файлы *.csv.gz лежат в AWS S3.
Можно ли их без предварительной декомпрессии инсертить в КХ?
кмк да, делали фичу чтобы КХ по расширению понимал тип архива
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Ivan V. Protchenko
Переслано от Ivan V. Protchenko
здраствуйте, поскажите как почистить историю консольного клиента?
rm ~/.clickhouse-client-history
источник

A

Alexander in ClickHouse не тормозит
спасибо, попробую в лоб тогда
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Maxim Keremet
Пинг, ребята. А что делать если таблица не удалилась на одном хосте по причине:
Table was not dropped because ZooKeeper session has expired..
дропать на хосте
источник

MK

Maxim Keremet in ClickHouse не тормозит
пробывал, тоже самое
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
~
А есть смысл в КХ для IP-адресов использовать соответствующие типы или проще взять универсальный String?

Как понимаю, если хочется хранить IPv4 и IPv6 одновременно, то надо просто оба писать в столбец с типом IPv6?
однозначно IPv6
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Maxim Keremet
пробывал, тоже самое
полный лог с хоста покажите
источник

IP

Ivan V. Protchenko in ClickHouse не тормозит
блин, вроде только понедельник а я уже очевидное не проверяю. Спасибо.
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Alex
Коллеги, доброго времени суток, такой вопрос, имеется таблица ReplacingMergeTree, примерно на 1k строк +-30 строк вставляется с таким же ключом сортировки, как сильно отразится производительность от модификатора FINAL на больших объемах?
ну на миллиарде записей у меня синтетический запрос работал в 100 раз медленее с final
источник

DD

Denis Dorozhkin in ClickHouse не тормозит
Denny Crane (I don't work at Yandex (never did))
>появилась вероятность того, что вложенный и наружний
>запросы стали выполняться на разных репликах одного шарда

конечно нет. Вообще все не так и в 1.1* и в 19.16.
Внешний запрос всегда выполняется и всегда выполнялся на инициаторе и там был hostName() инициатора.



>Есть неуникальные данные которые размазаны по шардам рандомно.
ну у всех так, это типовая ситуация

>Задача - сагрегировать данные каждом шарде и
>уникализировать эти агрегаты во всем кластере.
Что???????

почему просто

select * from distributed_table limit 1 by unique_key

не подходит?
Скорее всего я не до конца знал как оно работало. Внутренний запрос раньше выполнялся на инициаторе, а сейчас может быть отправлен на любую реплику, почему в таком случае prefer_localhost_replica=1 не помогает?

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

А фильтрация по конкретному хосту/шарду нужна чтобы равномерно писать эти агрегаты на имеющиеся шарды (получается одинаковые части сырых данных лежат там же где и те же самые части сагрегированных)

Зачем так сделано я точно сказать не могу.

Основной мой вопрос - как сделать так, чтобы подзапрос к ditributed таблице в итоге передавался на ту же реплику, что и инициатор?
источник

DB

Dmitry Burlakov in ClickHouse не тормозит
Στέφανος Σαμαρδάκης
Друзья, вроде бы все сделал правильно, но не удается прочитать из kafka и положить в clickhouse, в логе clickhouse попытки прочесть выглядят вот так:

2020.03.16 03:34:29.811018 [ 19 ] {} <Debug> StorageKafka (test3_queue): Started streaming to 1 attached views
2020.03.16 03:34:29.811521 [ 19 ] {} <Trace> StorageKafka (test3_queue): Already subscribed to topics: [  ]
2020.03.16 03:34:29.811547 [ 19 ] {} <Trace> StorageKafka (test3_queue): Already assigned to : [  ]
2020.03.16 03:34:44.817577 [ 19 ] {} <Trace> StorageKafka (test3_queue): Can't get assignment
2020.03.16 03:34:44.817726 [ 19 ] {} <Trace> StorageKafka (test3_queue): Nothing to commit.
2020.03.16 03:34:45.818612 [ 19 ] {} <Trace> StorageKafka (test3_queue): Re-joining claimed consumer after failure
2020.03.16 03:34:45.818964 [ 19 ] {} <Error> void DB::StorageKafka::threadFunc(): std::exception. Code: 1001, type: cppkafka::HandleException, e.what() = Local: Timed out, version = 19.16.14.65 (official build)
2020.03.16 03:34:45.819004 [ 19 ] {} <Trace> StorageKafka (test3_queue): Execution took 16008 ms.
Такая же проблема. Причем на сингл кафке все работает нормально, а стали переводить на кластер - начало ругаться.
источник

TU

Temur Uzbekov in ClickHouse не тормозит
Denny Crane (I don't work at Yandex (never did))
19.8.3.8 был очень неудачным и очень кривым, как вообще так вышло что вы на нем застряли?

берите 19.13.7.57
1. а в каком смысле "очень неудачным и очень кривым"?
2. если переходить на 20-ю версию, то какую лучше брать?
источник

DT

Dmitry Titov in ClickHouse не тормозит
Alexander
Привет.
Есть задача, файлы *.csv.gz лежат в AWS S3.
Можно ли их без предварительной декомпрессии инсертить в КХ?
Да
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Temur Uzbekov
1. а в каком смысле "очень неудачным и очень кривым"?
2. если переходить на 20-ю версию, то какую лучше брать?
там случайно был баг что сетевой протокол оказался несовместим с любой другой версией КХ
источник