Гость
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Инкркмкнтальная выгрузка MySQL MS SQL / 8 сообщений из 8, страница 1 из 1
16.01.2019, 15:42
    #39760344
a_voronin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Инкркмкнтальная выгрузка MySQL MS SQL
Господа,
есть задача забирать инкрементально данные из MySQL в MSSQL. Вопрос в том, как оптимально зацеплять инкремнт (порцию вставленных или обновленных данных).

Триггером генерить сторичский лог не очень интересное решение. В источник данные вбрасываются порциями.

Перекачка по SSIS, но как цеплять целостный инкремент. SQLECT … FOR UPDATE или другие вариенты есть?

На MSSQL->MSSQL используют ROW_VERSION и MIN_ACTIVE_ROWVESION() . Что-то есть аналогичное в MySQL?
...
Рейтинг: 0 / 0
16.01.2019, 16:13
    #39760378
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Инкркмкнтальная выгрузка MySQL MS SQL
Аналогичного нет, насколько я в курсе.
Можно сделать служебное поле во всех интересующих таблицах с меткой времени последнего апдейта. И удаление записей сделать апдейтом соответствующего поля-флага, или вовсе запретить.

Объем базы настолько велик, что нужен именно инкремент?
...
Рейтинг: 0 / 0
16.01.2019, 16:19
    #39760384
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Инкркмкнтальная выгрузка MySQL MS SQL
Automatic Initialization and Updating for TIMESTAMP and DATETIME .

Ну и соответствующий WHERE. Само собой придётся где-то хранить штамп времени предыдущей выгрузки, а также заменять удаление на обновление поля валидности.
...
Рейтинг: 0 / 0
16.01.2019, 17:05
    #39760433
a_voronin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Инкркмкнтальная выгрузка MySQL MS SQL
Akina Automatic Initialization and Updating for TIMESTAMP and DATETIME .

Ну и соответствующий WHERE. Само собой придётся где-то хранить штамп времени предыдущей выгрузки, а также заменять удаление на обновление поля валидности.

Только возникает вопрос: если я выгружу все до конкретного timestamp, то не появяться ли на следующей загрузке ещё записи с этим же timestamp. Если запись идет быстро, не поймаются ли одинаковые timestamp на двух вставках. Либо я схвачу половину транзакции.
...
Рейтинг: 0 / 0
16.01.2019, 17:13
    #39760440
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Инкркмкнтальная выгрузка MySQL MS SQL
a_voronin,

1) можно использовать дробные секунды, вплоть до микросекунд
2) при выгрузке инкремента использовать нестрогое неравенство с временем предыдущей выгрузки.
...
Рейтинг: 0 / 0
16.01.2019, 17:35
    #39760449
a_voronin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Инкркмкнтальная выгрузка MySQL MS SQL
miksofta_voronin,

1) можно использовать дробные секунды, вплоть до микросекунд
2) при выгрузке инкремента использовать нестрогое неравенство с временем предыдущей выгрузки.

Вбросили в 1 момент времени 10 записей, во второй 1000000 записей. Читать эти 1000000 второй раз?
...
Рейтинг: 0 / 0
16.01.2019, 17:36
    #39760451
a_voronin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Инкркмкнтальная выгрузка MySQL MS SQL
miksoftАналогичного нет, насколько я в курсе.
Можно сделать служебное поле во всех интересующих таблицах с меткой времени последнего апдейта. И удаление записей сделать апдейтом соответствующего поля-флага, или вовсе запретить.

Объем базы настолько велик, что нужен именно инкремент?

Вопрос не в объеме базы. Хотят большую скорость перекачки. 1-2 секунды. Максисмум 10 при больших вбросах.
...
Рейтинг: 0 / 0
16.01.2019, 23:26
    #39760566
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Инкркмкнтальная выгрузка MySQL MS SQL
a_voroninХотят большую скорость перекачки. 1-2 секунды. Максисмум 10 при больших вбросах.Тогда вбрасывайте сразу в MS SQL. MySQL тут лишнее звено. Ну или в обе БД, если очень надо.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Инкркмкнтальная выгрузка MySQL MS SQL / 8 сообщений из 8, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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