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

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

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

22 ответов

11 просмотров

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

Некоторые люди делают через 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млн записей ну и скрипт выше

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

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

Сообщение* в закодированном виде. То есть, просто сделать sendMessage?text=Привет бла-бла! не получится, надо в HEX переводить, и добавлять процент, типа такого: sendMessage?t...
КТ315
21
А случайно нет ли в паскале штатной возможности передать указатель и количество туда где array of в качестве аргумента?
zamtmn
25
Хм. А телеграм апи работают через HTTP?
The Bird of Hermes
14
Почему Telegram пишет, что объект media не найден, хотя на самом деле я его передаю? Делаю на urllib, без зависимостей, так надо. Вызываю метод sendMediaGroup с таким JSON: ...
Alexey S
1
Anyone here suffers from unexplained aural migraines, who would be up for talking for a bit? Doesn't *have* to be aural, but I am not asking about headaches, I mean actual mi...
Martin Rys
58
Ну раз я пока тут, задам пару глупых вопросов. Зачем писать на ассемблере если компилятор довольно умный, а ассемблер много времени занимает? В каких прикладных задачах сейчас...
Максим Рябцев
20
Я тут за тем, чтобы задать вопрос, так как не знаю ассемблер, учу с/с++. Короче, насколько дорога операция перехода в функцию при ее вызове? Дело в том, что в с++ есть макросы...
Максим Рябцев
12
Привет, нужен совет старших товарищей. Есть глобальная переменная var DefaultDataFolder:string; инициализируем DefaultDataFolder:='a:\_OUT\'; есть примитивная процедур...
Max Otto
14
А какие чаты вообще в ходу? Auto aim? И что еше
do you think you're better off alone? А
13
hello friends. Do you know how can I learn getx? I have a software project that I should deliver it up to 5 weeks later and I need to learn firebase too. I will be thankfull
AmirHossein Razavi
15
Карта сайта