184 похожих чатов

Всем привет! Какая клиентская библиотека для C# более предпочтительна

к использованию?

31 ответов

18 просмотров

https://github.com/DarkWanderer/ClickHouse.Client/ нам ок. но вставку делаем через клиент в основном

rentoc- Автор вопроса
【D】【J】
https://github.com/DarkWanderer/ClickHouse.Client/...

Там же через HTTP, наверное лучше Native ?

rentoc
Там же через HTTP, наверное лучше Native ?

Через бинарный формат, там минимальный оверхед по сравнению с json, хорошая либа. есть ещё порт нативного формата в Clickhouse.Ado, но там есть проблемы с производительностью на винде из-за особенностей работы винды с сетью

rentoc- Автор вопроса
Lars Ulrich
Через бинарный формат, там минимальный оверхед по ...

У меня может быть и винда и linux . Приложение на .Net Core 3.1

rentoc
У меня может быть и винда и linux . Приложение на ...

Надо тогда бенчить. У меня на винде дольше сокет открывался с портом нативного протокола, чем весь запрос отрабатывал. А вот через http лучше было. Плюс в том http клиенте можно для простых запросов даппер заюзать

rentoc- Автор вопроса
Lars Ulrich
Надо тогда бенчить. У меня на винде дольше сокет о...

У меня юзекейс грубо такой: программа на .Net Core собирает данные с приборов (по сети Ethernet) каждую 0,5-1 секунду и должна ложить в БД. А клиенты (разные) должны их оттуда забирать как текущие так и архивные данные. Както так.

rentoc
У меня юзекейс грубо такой: программа на .Net Cor...

не должно быть существенной разницы http или tcp (для одного и того же формата типа Native)

rentoc
У меня юзекейс грубо такой: программа на .Net Cor...

Ну как по мне библиотека от DarkWanderer самое оно, там очень удобный инсерт через DataTable

rentoc- Автор вопроса
rentoc
Там же через HTTP, наверное лучше Native ?

аха "лучше, быстрее, выше, сильнее". смотря для чего. я лично не заметил. Олег для нас допилил ещё поддержку сырых форматов. поэтому оно вообще теперь шикарно...

rentoc
У меня может быть и винда и linux . Приложение на ...

у нас тоже и винда и линукс (на .нет кор).

rentoc- Автор вопроса
rentoc
У меня юзекейс грубо такой: программа на .Net Cor...

А можно ли настроить CH так чтобы он последние поступающие N-записей в определенную таблмцу держал в памяти - для более быстрой отдачи данных клиентам ? Что то наподобие Disk + Memory Cache...

rentoc
А можно ли настроить CH так чтобы он последние пос...

как бы нельзя и не нужно. в принципе они и так в кеше линукса лежат чаще всего. есть еще buffer engine -- он хранит в памяти записи которые еще сброшены в таблицу

rentoc- Автор вопроса
Denny [Altinity]
как бы нельзя и не нужно. в принципе они и так в к...

Buffer Engine уже в самом CH? Его нужно настраивать ?

rentoc
Buffer Engine уже в самом CH? Его нужно настраив...

в самом КХ, в документации читайте, скорее всего вам не поможет, да и вы пытаетесь решать несуществующую проблему

rentoc
У меня юзекейс грубо такой: программа на .Net Cor...

public async Task SaveData<TData>(ClickHouseConnection connection, IEnumerable<TData> data, string tableName, CancellationToken ct = default) { using (var bulkCopy = new ClickHouseBulkCopy(connection)) { bulkCopy.DestinationTableName = tableName; DataTable table = new DataTable(); using (var reader = ObjectReader.Create(data)) { table.Load(reader); } await bulkCopy.WriteToServerAsync(table, ct); } } правда из стороннего еще FastMember заюзан для маппинга. А так - на входе коллекция объектов с такими же полями, как и столбцы таблицы, и вперед

rentoc- Автор вопроса
rentoc
У меня юзекейс грубо такой: программа на .Net Cor...

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

rentoc
Какой движок для таблиц лучше использовать для сбо...

классный способ — класть данные в кафку, а оттуда через kafka table engine сохранять в КХ

rentoc
Есть примеры или юзкейс ?

https://altinity.com/blog/2020/5/21/clickhouse-kafka-engine-tutorial

rentoc- Автор вопроса
Volodymyr Bunchuk
MergeTree но КХ не любит частых вставок.

Насколько частых? Если 500-1000 строк в секунду это плохо ?

rentoc
Насколько частых? Если 500-1000 строк в секунду эт...

Частый это количество вставок на момент времени, а не про объем, 1000 строк в одном запросе в секунду - ок, 1000 строк в 1000 запросах не ок

rentoc
Насколько частых? Если 500-1000 строк в секунду эт...

В целом по гайдам 1 вставка в секунду на таблицу

rentoc
Какой движок для таблиц лучше использовать для сбо...

GraphiteMT умеет то что вы хотите, но он считает среднее от среднего , а не sum/cnt , поэтому для avg у него херня получается, хотя может вы этого и хотите еще можно делать TTL / group by поверх SummingMT

rentoc
Насколько частых? Если 500-1000 строк в секунду эт...

каждый инсерт создает парт (или несколько, если сделать все неправильно), много партов плохо, сколько строк внутри парта, значения не имеет

rentoc
КХ парты не объединяет ?

объединяет конечно. Проблема в том что мелкие парты объединяются за то же время что и немелкие, потому что много накладных расходов, каждый парт -- это множество файлов, каждый файл надо открыть, сделать seek, а жесткий диск не умеет много seek

rentoc
Какой движок для таблиц лучше использовать для сбо...

MergeTree можете ин мемори куски использовать с последней версии и можно вставлять часто

rentoc- Автор вопроса
【D】【J】
MergeTree можете ин мемори куски использовать с по...

Это с какой версии КХ? И как это настраивается?

rentoc
Это с какой версии КХ? И как это настраивается?

https://youtu.be/1LVJ_WcLgF8?list=PLO3lfQbpDVI-hyw4MyqxEk3rDHw95SzxJ&t=10921

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта