Гость
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Repeatoble read без транзакции. / 4 сообщений из 4, страница 1 из 1
30.03.2021, 12:56
    #40058175
DoubleDouchebag
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Repeatoble read без транзакции.
Добрый день!
Есть переливка в виде скрипта на питоне которая на начальном этапе работает так:

В источник на транзакцию, читающую данные из PostgreSQL ставится уровень изоляции repeatable read чтобы читаемые данные были "зафиксированы" на момент начала читающей транзакции.
Это нужно т.к. прочитать за раз нужно данные из нескольких таблиц, а данные в них часто меняются и связаны друг с другом по всякому. Если читать в разных транзакциях то пока один объект прочитаешь в других уже данные новее будут и связи другие и т.д.

Эту переливку нужно реализовать на ETL инструменте который читать данные из нескольких объектов в одной транзакции не умеет.

Вопросы:
1) Можно ли создать условия в PostgreSQL такие как в repeatoble read для нескольких таблиц одновременно. Только без явного открытия транзакции?
Типа команды lock (но она опять же в явно открытой транзакции только работает).
2) Может у кого то был опыт чтения версий данных таблиц на какой то момент времени фиксированный. Направьте где глубже узнать про это.
3) Принципиально другой подход?

Решение в виде базы реплики и остановки репликации на время понятно, но интересно есть ли что полегче.
...
Рейтинг: 0 / 0
30.03.2021, 13:17
    #40058184
yob
yob
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Repeatoble read без транзакции.
DoubleDouchebag
Добрый день!
Есть переливка в виде скрипта на питоне которая на начальном этапе работает так:

В источник на транзакцию, читающую данные из PostgreSQL ставится уровень изоляции repeatable read чтобы читаемые данные были "зафиксированы" на момент начала читающей транзакции.
Это нужно т.к. прочитать за раз нужно данные из нескольких таблиц, а данные в них часто меняются и связаны друг с другом по всякому. Если читать в разных транзакциях то пока один объект прочитаешь в других уже данные новее будут и связи другие и т.д.

Эту переливку нужно реализовать на ETL инструменте который читать данные из нескольких объектов в одной транзакции не умеет.

Вопросы:
1) Можно ли создать условия в PostgreSQL такие как в repeatoble read для нескольких таблиц одновременно. Только без явного открытия транзакции?
Типа команды lock (но она опять же в явно открытой транзакции только работает).
2) Может у кого то был опыт чтения версий данных таблиц на какой то момент времени фиксированный. Направьте где глубже узнать про это.
3) Принципиально другой подход?

Решение в виде базы реплики и остановки репликации на время понятно, но интересно есть ли что полегче.

1) Уровень изоляции выставляется на уровне всего сервера. Транзакция все равно откроется, исходя из вводных.
2) вариаций может масса - запомнили последнюю бизнес дату на таргете, считали ее, программно ввели нужную дату отсечку, смотря на которую работаем со всеми тремя источниками в виде параметра/процедурно/функционально. Либо считываем parent source / major источник - так же запоминаем и идем в остальные.
Хорошенечко изучите ваше ETL средство
3) непонятно что вы делаете до конца, чтобы подход советовать
...
Рейтинг: 0 / 0
30.03.2021, 13:33
    #40058196
DoubleDouchebag
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Repeatoble read без транзакции.
yob,

>>3) непонятно что вы делаете до конца, чтобы подход советовать
Нужно просто переделать логику загрузки скриптом на ETL информатики.
...
Рейтинг: 0 / 0
31.03.2021, 10:40
    #40058427
yob
yob
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Repeatoble read без транзакции.
DoubleDouchebag
yob,

>>3) непонятно что вы делаете до конца, чтобы подход советовать
Нужно просто переделать логику загрузки скриптом на ETL информатики.

ответ выше
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Repeatoble read без транзакции. / 4 сообщений из 4, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]