и clickhouse_ecto, но они мне показались сыроватыми, по крайней мере из коробки не заработали. конкретно сейчас смотрю на pillar, но при нём нет адаптера к ecto.
ping @santaux, кажется, про твою библиотеку говорят )
Pillar берите, он ок :) на ecto парадигма clickhouse плохо ложится, собственно это и побудило pillar сделать
pillar внутренне очень неплох на первый взгляд. у меня как раз вставал ещё один вопрос: если нет адаптера к ecto, то, видимо, есть на то причины?
да, всё так. по той же причине и к монге нормального адаптера нет. кликхаус только внешне по запросам отчасти похож на sql, внутри-то он вообще иной, с иным форматом работы. на классический sql не ложится никак. ну и потом, юзать кх в том качестве, в котором обычно тот же постгрес используется, на мой взгляд немного некорректно, он про другое
Когда я с коллегами писал либы эти все было ок. Но сейчас вполне возможно это все устарело. Поддержкой и развитием други ребята занимаются, они есть в этом чате. И к ecto адаптер тоже работает на самом деле
скорее всего, так и есть. спасибо за ответ!
У нас clickhousex, но без ecto.
1. Для работы с кликхаусом надо выстроить пайплайн подготовки батча. Мы это делаем сами 2. Дальше надо подготовить вставку. Мы делаем это в raw binary, код могу пошарить. 3. Отправить это по http
На это бы особенно обратил внимание. Дёргать кликхаус на вставку по одной записи – в ноги стрелять.
да. В кликхаус достаточно разумно вставлять раз в секунду. Если за секунду набегает больше миллиона записей, тут уж своей думкой надо думать, а не по чатам вопросы задавать. Если меньше, то нечего париться.
pillar антибезопасный внутри, там запросы строятся через String.replace, так что сами экранируйте инъекции А что не так с clickhousex и clickhouse_ecto, почему они кажутся сыроватыми? clickhousex раньше был кривой но сейчас очень хорошо работает, а clickhouse_ecto в общем случае просто не нужен
там не RowBinary что ли?
из коробки у он у меня вообще не завёлся, не отработал даже пример из README. не заработала также авторизация (там в хедере : не должно быть после Basic). не исключаю, что что-то не так делал, либо взял библиотеку не из правильного места.
RowBinary это формат кодирования данных А сами запросы всё равно текстом отсылаются Так вот в pillar это последовательный String.replace А это значит, что это не только инъекция, а ещё и переполнение памяти может быть
Надо завести issue Какие версии clickhouse и clickhousex? @ar1ka1 @fried_zucchini
Там же экранирование параметров, а не вот это вот все) (Думаю, инъекцию сделать не получится) По поводу String.replace не совсем понимаю, в чем проблема? Тут все пишут проекты без String.replace, а кто пишет - в зоне риска?
Обсуждают сегодня