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

Добрый вечер. олапщики хотят живую или почти живую репликацию из

постгри в КХ. Есть какие-нибудь проверенные варианты? Пока что всё что нашёл, совсем недоделанное

22 ответов

24 просмотра

Скорее нет, чем да Ну и смотря на объемы конечно же. Просто так скопировать таблицы с ПГ в КХ врядли что-то даст, а скорее будет хуже

Некоторые люди делают через debezium + Kafka А у вас какой объем данных в постгре

Egor Zagorskiy
да смешной объём. 8 гиг

А вы как их использовать будете?

Egor-Zagorskiy Автор вопроса
Dmitry [Altinity] Titov
А вы как их использовать будете?

Egor, [15 февр. 2022 г., 22:00:52]: в таблице клиентов 2млн записей. это копейки Руслан, [15 февр. 2022 г., 22:02:00]: из этой таблицы я делаю таблицу на несколько сотен миллионов записей чтобы после построить график активных клиентов на определенный период времени и тут у меня по памяти все падает)

Egor Zagorskiy
Egor, [15 февр. 2022 г., 22:00:52]: в таблице клие...

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

Egor Zagorskiy
Egor, [15 февр. 2022 г., 22:00:52]: в таблице клие...

Выглядит так как будто у вас подписочный сервис и записи о подписка хранятся в виде полей start, end. А аналитик эти интервалы в памяти разворачивает в столбцы суточной гранулярности

Konstantin Sevastianov
Выглядит так как будто у вас подписочный сервис и ...

Добрый вечер, таблицы заведены через движок таблиц PostgreSQL, по расходу памяти точно не могу сказать, но при запросах вsдает ошибки Clickhouse: DB::Exception: Memory limit (for query) exceeded ClickHouse exception, code: 210, host: xxx.xxx.x.xx, port: xxxx; Connect to xxx.xxx.x.xx:xxxx failed: Connection refused (Connection refused) Сами данные нужны для формирования графиков, отчетов, дашбордов (через BI систему)

Кожемякин Руслан
Добрый вечер, таблицы заведены через движок таблиц...

Легче не стало) приведите пример данных источника и что хотите получить на выходе. Ну и какие лимиты стоят на сервере

Кожемякин Руслан
Добрый вечер, таблицы заведены через движок таблиц...

не советую данные из Engine=PostgreSQL напрямую использовать в отчетах это Proxy движок запрос просто переписывается пробрасывается в Postgres с WHERE но без ORDER BY и GROUP BY которые потом делаются на clickhouse и требуют памяти лучше всего через dbt какой нибудь или просто через INSERT INTO ... SELECT ... сделать ENgine=MergeTree() Таблицы тогда от ClickHouse Будет толк

Konstantin Sevastianov
Легче не стало) приведите пример данных источника ...

Ну конкретно сейчас есть таблица с пользователями: № Пользователя Дата начала Дата окончания 123456 2022-02-01 2022-02-03 Нужно получить: № Дата 123456 2022-02-01 123456 2022-02-02 123456 2022-02-03 В таблице 2 миллиона пользователей, период действия может быть от 1 года и более, в итоге получается таблица на несколько сотен миллионов строк. Памяти выделено 8 гб на сервере и на запрос стоит значение по умолчанию - 10 гб Если действовать через движок постри то выпадают ошибки по нехватки памяти, по истечению времени на выполнение запроса либо просто отваливается подключение к серверу. Я перенес данные в таблицу КХ с движком MergeTree(), и все заработало без ошибок, вывод формируется за считанные секунды. Подобные запросы периодически нужно делать для разных задач. Вопрос есть ли способы импортировать данные из постгри в КХ, чтоб данные хранились в КХ и так же чтоб в таблицах добавлялись новые записи?

Кожемякин Руслан
Ну конкретно сейчас есть таблица с пользователями:...

Если у Вас в таблице записи не обновляется, а только добавляются, то что мешает их добавлять в КХ?

Кожемякин Руслан
Ну конкретно сейчас есть таблица с пользователями:...

И еще один вопрос возник. А зачем размножать так строки? Я так понимаю, Вы же потом их все равно агрегируете? Если же нужно собрать данные без пропусков, то вряд ли это нужно за очень длительное время. В этом случае выборка будет уже содержать не так уж и много, наверное.

Кожемякин Руслан
Ну конкретно сейчас есть таблица с пользователями:...

на 2млн записей самый простой вариант фул апдейт, просто перезаливать периодически, должно за несколько секунд проходить потом уже можно смотреть на вариант debezium + kafka или движок MaterializedPostgreSQL

Кожемякин Руслан
Обновляться они тоже должны, забыл указать

Тогда просто перезаливать, действительно.

In Fis
И еще один вопрос возник. А зачем размножать так с...

Даже если брать за прошедший год, записей все равно много. В этом случае данные могут понадобится и за конкретный день

Кожемякин Руслан
Даже если брать за прошедший год, записей все равн...

Тогда есть смысл оптимизировать запрос, ограничивая выборку по периоду и уже потом размножать строки

Кожемякин Руслан
Ну конкретно сейчас есть таблица с пользователями:...

явно где то есть какое то условие о котором вы забыли упомянуть. Вот я иду в постгре: SELECT user_id, toDate(start) AS s, toDate(end) AS e, arrayJoin(arrayMap(x -> (s + x), range(assumeNotNull(toUInt16(e - s))))) AS days FROM postgresql(...) Из квери лога: query_duration_ms: 55 196 result_rows: 348 846 727 memory_usage: 427 745 710 Откуда потребление в 8Гб?

Konstantin Sevastianov
явно где то есть какое то условие о котором вы заб...

Я дико извиняюсь, за своевременный ответ, не могли бы вы подсказать, как вы сгенерировали таблицу? Хочу сравнить данные у меня получается по такому же запросу из моей таблицы query_duration_ms: 14 732 result_rows: 17 627 581 memory_usage: 4 304 970 671 при том что результат на запрос select count(*) from ( select policy_id, toDate(start_date) AS s, toDate(end_date) AS e, arrayJoin(arrayMap(x -> (s + x), range(assumeNotNull(toUInt16(e - s))))) AS days from policies_test p ) выдает - 2 595 716 571

Кожемякин Руслан
Я дико извиняюсь, за своевременный ответ, не могли...

про генерацию не уловил, я просто взял таблицу из постгре в которой 20млн записей ну и скрипт выше

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
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
Карта сайта