фулскан с винды через odbc-драйвер таблицы 1 млн строк и 472 столбца, занимает 1 минуту в формате RowBinaryWithNamesAndTypes? При этом пробовали через нативный clickhouse-client, там скорость в таком же формате около 12 сек. Упора в сетку/цп/озу нигде нет, ни на сервере ни на клиенте. Пробовали как с одной ноды дергать, так и с кластера в 2 и 5 нод, используя distributed таблицу, результаты примерно одинаковые +- 1-2сек, что наверное погрешность. Как-то ещё можно ускорить или всё-таки упор уже в драйвер ? В таблице в основном числовые значения
а curl через http с RowBinaryWithNamesAndTypes сколько дает?
16 сек) и с него сетка до 2гбит нагружается. А когда odbc драйвер, то 1 минута и сетка примерно до 500мбит нагружается
odbc драйвер как измеряли? на каком то языке? или time isql ?
У нас есть bi, который умеет через odbc подключаться. Смотрел по логам время которое тратится на сам запрос, без учёта отрисовки данных. А что, через curl производительность должна быть такая же как и через odbc драйвер?
нет, производительность BI может быть не той что вы ожидаете и узким местом может быть не драйвер, а то, как BI его использует time isql ... что говорит?
Это не смотрели. У нас все клиенты виндовые. Я так понимаю isql надо с линуха ?
Год назад были похожие проблемы с производительностью при выборе большого кол-ва строк из ClickHouse при помощи виндового odbc драйвера. Дамп трафика показал что используются очень маленькие пакеты для пересылки данных. В итоге просто написали кастомный коннектор для своего BI, обращающийся к ClickHouse по http. Это позволило значительно ускорить процесс получения данных.
Симптомы были похожие. Ни где затыка вроде нет, а запрос выполняется оочень медленно при большом кол-ве строк в результатах запроса.
А что у вас за bi, если не секрет? Я ещё хочу покопаться и выяснить, может действительно наш bi не очень хорошо работает с драйвером и из за него проблемы
ой точно под винду компилируется вот это https://crates.io/crates/odbc-tools могу собранные .exe положить куда нибудь
https://mega.nz/file/LUw0DZAB#1H7raEbeDno7jZjIMaV6zGQU9Z4-fNNTzzCh1BXXtRE драйвер ставил последнюю версию с github советую поставить какой нибудь cygwin или git-bash и в нем запускать как time odbc-query.exe "DSN=clickhouse_dsn" vertical "SELECT number FROM numbers(1000000)" > /dev/null
драйвер 64bit ставил clickhouse у меня поднят в docker + wsl2 с пробросом портов поэтому localhost
получилось что нибудь замерять?
Да, я сразу на своей таблице пытаюсь проверить, но результат вообще не радует уже пару минут крутится, сетка всего на 30 мбит грузится, без vertical можно ? Как сделать вид «как есть»? Просто у меня куча столбцов и при вертикале он каждый столбик в строку записывает видимо
никак... значит rust еще тупее чем остальное =) извините что не в ту стороне отправил есть еще https://github.com/microsoft/ODBCTest он вроде в комплекте MDAC поставлялся но я что-то не могу найти MDAC на мракософт
Печаль) попробовал ещё json-array, сетку уже получше до 150-170 мбит грузит, но все равно слабовато выходит, нужен формат как есть )
Обсуждают сегодня