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

Всем привет, какие есть лучшие практики для задачи репликации postgres

-> clickhouse? Т.е., работает основная база на pg, а для аналитики сбоку стоит Clickhouse с +- актуальными данными.
Как-то сходу не гуглится/дукдучится. Т.е., нашёл несколько ссылок - https://github.com/mkabilov/pg2ch, https://pypi.org/project/synch/ и ещё что-то. Но как-то не завелись они с полпинка, а сходу лезть в дебаг не хотелось бы.
Кто что использует для такой задачи?

30 ответов

17 просмотров

Движок есть postgresql уже в кх

Я тоже только изучаю. С Oracle данные в Clickhouse перегонял с помощью DATAX А еще есть JDBC Bridge

Дмитрий-Свидерский Автор вопроса
critskiy
Движок есть postgresql уже в кх

Ага, вот им и перетянул данные, но как это делать "на постоянной основе", т.е., чтобы WAL синхронизировался?

Дмитрий-Свидерский Автор вопроса
critskiy
Движок есть postgresql уже в кх

Или имеете в виду - создавать БД на движке postgres и (как-то) реплицировать?

Дмитрий Свидерский
Ага, вот им и перетянул данные, но как это делать ...

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

Дмитрий-Свидерский Автор вопроса
critskiy
Не проще просто сделать реплику для постгре именно...

Ага, спасибо за ответ. Просто слышал в подкасте, что CH хорошо подходит для всякой аналитики, есть там какие-то плюшки, которых нет в PG, вот и решил попробовать в качестве эксперимента.

вот вышеуказанное и придется заводить лезьте в дебаг =) ну или ждите когда зарелизят https://github.com/ClickHouse/ClickHouse/pull/20470

Дмитрий Свидерский
Ага, спасибо за ответ. Просто слышал в подкасте, ч...

Я б понимал бы, если вы будете преобразовывать данные и хранить в КХ для аналитики уже processed data из постгри. :)

Дмитрий Свидерский
Ага, спасибо за ответ. Просто слышал в подкасте, ч...

думаю вам в clickhouse рано =) думаю у вас данных столько нет ...

Дмитрий-Свидерский Автор вопроса
critskiy
Я б понимал бы, если вы будете преобразовывать дан...

Например - в postgres есть ограничение на уникальный ключ/констрейнт для секционированных таблиц, если ключ секционирования задан выражением. А в кликхаусе этого ограничения нет.

Дмитрий-Свидерский Автор вопроса
Slach [altinity]
думаю вам в clickhouse рано =) думаю у вас данных ...

А какой "порог входа" в CH (в строках)? :)

Дмитрий Свидерский
Например - в postgres есть ограничение на уникальн...

Use-case смотрите свой, дело даж не в технической стороне вопроса, а в целесообразности использования подхода :)

Дмитрий-Свидерский Автор вопроса
Slach [altinity]
ну =) зато в clickhouse вообще UNIQUE KEYS нет =)

Да? А что тогда такое PRIMARY KEY в DDL - это не то, что я думаю? =)

Дмитрий Свидерский
А какой "порог входа" в CH (в строках)? :)

он не в строках чтобы все получилось, ситуация должна быть так "мы ХОРОШО (на низком уровне) знаем как работает наша текущая БД и понимаем почему она тормозит на нашем use case и понимаем почему в clickhouse будет работать быстрее" а все остальное "ой я слышал clickhouse модный" либо "ой давайте все аналитические данные сразу в clickhouse будем хранить" обычно не очень хорошо кончается =)

Slach [altinity]
он не в строках чтобы все получилось, ситуация дол...

С постгрей отчасти "импортозамещение" канает %)

Дмитрий Свидерский
Да? А что тогда такое PRIMARY KEY в DDL - это не т...

вот вообще не то =) PRIMARY KEY это вот прямо PRIMARY KEY а не UNIQUE CLUSTERED INDEX как в MySQL и UNIQUE B-Tree INDEX как в Postgre

Дмитрий-Свидерский Автор вопроса
Slach [altinity]
вот вообще не то =) PRIMARY KEY это вот прямо PRIM...

Ага, интересно... Наверное, в кликхаус мне действительно рано (-:

Дмитрий Свидерский
Спасибо за ответ, вполне резонно.

если у вас сейчас postgres и хочется в рамках аналитики поиграться в этой экосистеме посмотрите в сторону CItus Columnar Extension https://www.citusdata.com/

critskiy
ну шо как сразу обрубаити (сорказмь)

никого не слушайте, юзайте кликхайс, но на вашем месте я бы подождал релиза MaterializePostgreSQL, собственно я сам и жду :)

Vladimir Goncharov
никого не слушайте, юзайте кликхайс, но на вашем м...

А почему вы говорите это мне, а не топикстартеру?

Дмитрий Свидерский
Ага, спасибо за ответ. Просто слышал в подкасте, ч...

никого не слушайте, юзайте кликхайс, но на вашем месте я бы подождал релиза MaterializePostgreSQL, собственно я сам и жду :)

Дмитрий-Свидерский Автор вопроса
Vladimir Goncharov
никого не слушайте, юзайте кликхайс, но на вашем м...

Да, MaterializePostgreSQL был бы то, что надо. К счастью, особой спешки у меня нет, так что можно и подождать. А пока делаю очередной подход к https://github.com/long2ice/synch , но что-то он не хочет работать с postgres, то одни ошибки, то другие, то третьи...

Дмитрий Свидерский
Да, MaterializePostgreSQL был бы то, что надо. К с...

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

Дмитрий-Свидерский Автор вопроса

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

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

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Ребят в СИ можно реализовать ООП?
Николай
33
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
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
Карта сайта