JavaScript fwdays conf: Node.js, Performance, Tests, Nuxt.js, DevTools, GraphQL | March 14
×Закрыть

Clickhouse4j — легка та швидка альтернатива офіційному драйверу

Всім привіт.

Ми щойно релізнули форк офіційного драйвера клікхауса.
Гляну можна тут — github.com/blynkkk/clickhouse4j.
Основні переваги — jar файл драйвера менше в 7 разів, трохи заоптимайзили батч процесінг +40%.

Більше інфи підготую в статті на ДОУ.
Буду вдячний за будь-які відгуки.

LinkedIn
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Щойно релізнули нову версію 1.1.1 з CopyManager. Тепер можна швидко копіювати з/в файл:

try (CopyManager copyManager = CopyManagerFactory.create(dataSource)) {
    copyManager.copyFromDb(query, outputFile);
}
try (CopyManager copyManager = CopyManagerFactory.create(dataSource)) {
    copyManager.copyToDb(query, inputFile);
}

Приклад тут — github.com/...​house4j#copymanager-usage

написали бы в заголовке, что это альтернатива родному JDBC драйверу
а то, пока по ссылке не зашёл, спросонья вкуривал — что за драйвер такой в CH...

написали бы в заголовке, что это альтернатива родному JDBC драйверу

Так написано ж — "

альтернатива офіційному драйверу

"

2019 на на улице а люди пишут синхронные I/O либы, а потом сиди и мучайся превращая их в неблокирующие. Когда уже люди начнут использовать тредпулы для этих целей? Или всё настолько плохо что те, кто пишут эти либы используют по-дефолту блокирующий код?

те, кто пишут эти либы используют по-дефолту блокирующий код?

Ответ напрашивается сам собой. Да, всё ещё очень сильно бОльшая часть кода синхронная с блокирующим I/O, выполняемая в пачке незавимых потоков/процессов.

Обернути навпаки дуже просто, а ось коли треба дочекатись операції, а під капотом асинхронність і обертати знову вже overhead

flatMap для кого изобрели?

1 — асинхронність не всім потрібна
2 — більшість працює з jdbc через тред пули і ця задача вже лягає на їх плечі (або через спрінги і там це вже все має бути)
3 — завернути синхронний код в асинхронний на 5 хвилин роботи

jdbc
спрінги

Чего-то тошнючий ком к горлу подкатывает.

завернути синхронний код в асинхронний на 5 хвилин роботи

неа, попробуй свою поделку заставить хорошо работать с typelevel.org/...​-effect/datatypes/io.html, мучения гарантированы.

неа, попробуй свою поделку заставить хорошо работать

Сорі, є інші справи. Я працюю з асинхронним кодом вже 4 роки (нетті). І за чей час в мене не виникло жодної проблеми з синхронним апі. Закидую все тред пули, передаю контекст в середину. Все чікі-пуки. Проблеми немає.

(нетті)
Закидую все тред пули, передаю контекст в середину.

снова тошнючий ком к горлу подкатывает. С нетти в принципе никакого

чікі-пуки.

быть не может.

Потому, что код на нетти/эввента/колбеках/листнерах/rxах слишком быстро превращается в двунаправленный граф с большой связностью и количеством узлов, что всегда не есть хорошо. Чтобы дебажить такой код нужно у себя в голове выполнять трассировку en.wikipedia.org/wiki/Timed_automaton вот этого, что есть очень наблагодарное и времяотъедающее занятие.

Код на IO не правращается.

Якщо чесно — не розумію про що ви. У мене проблем не виникало, в усякому разі я не можу згадати жодного кейсу коли б мені знадобилось «дебажить такой код нужно у себя в голове выполнять трассировку». При тому, що я більше десятка багофіксів заслав в нетті.

На Go такаж ситуація, сам ClickHouse влаштовує, а ось офіційний клієнт github.com/mailru/go-clickhouse повільніший ніж github.com/kshvakov/clickhouse

Фішка в тому, що на оптимізацію я витратив 1 годину і отримав +40%. Якщо виділити неділю чи дві і системно підійти — там ще можна вижати 2-3х, якщо не більше.

Дуже сенксно. Вері корисна сінга.

И вместо товарища майора пан майор? ))

А нашо вам ClickHouse ви ж ніби все в файли писали?

Новий проект, нові рекви. Файли продовжують успішно вже 5-й рік кртуитись в продакшені :).

Мне пока не нужен (стек другой), но star на гитхабе поставил )

Подписаться на комментарии