|
Инкркмкнтальная выгрузка MySQL MS SQL
|
|||
---|---|---|---|
#18+
Господа, есть задача забирать инкрементально данные из MySQL в MSSQL. Вопрос в том, как оптимально зацеплять инкремнт (порцию вставленных или обновленных данных). Триггером генерить сторичский лог не очень интересное решение. В источник данные вбрасываются порциями. Перекачка по SSIS, но как цеплять целостный инкремент. SQLECT … FOR UPDATE или другие вариенты есть? На MSSQL->MSSQL используют ROW_VERSION и MIN_ACTIVE_ROWVESION() . Что-то есть аналогичное в MySQL? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2019, 15:42 |
|
Инкркмкнтальная выгрузка MySQL MS SQL
|
|||
---|---|---|---|
#18+
Аналогичного нет, насколько я в курсе. Можно сделать служебное поле во всех интересующих таблицах с меткой времени последнего апдейта. И удаление записей сделать апдейтом соответствующего поля-флага, или вовсе запретить. Объем базы настолько велик, что нужен именно инкремент? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2019, 16:13 |
|
Инкркмкнтальная выгрузка MySQL MS SQL
|
|||
---|---|---|---|
#18+
Automatic Initialization and Updating for TIMESTAMP and DATETIME . Ну и соответствующий WHERE. Само собой придётся где-то хранить штамп времени предыдущей выгрузки, а также заменять удаление на обновление поля валидности. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2019, 16:19 |
|
Инкркмкнтальная выгрузка MySQL MS SQL
|
|||
---|---|---|---|
#18+
Akina Automatic Initialization and Updating for TIMESTAMP and DATETIME . Ну и соответствующий WHERE. Само собой придётся где-то хранить штамп времени предыдущей выгрузки, а также заменять удаление на обновление поля валидности. Только возникает вопрос: если я выгружу все до конкретного timestamp, то не появяться ли на следующей загрузке ещё записи с этим же timestamp. Если запись идет быстро, не поймаются ли одинаковые timestamp на двух вставках. Либо я схвачу половину транзакции. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2019, 17:05 |
|
Инкркмкнтальная выгрузка MySQL MS SQL
|
|||
---|---|---|---|
#18+
a_voronin, 1) можно использовать дробные секунды, вплоть до микросекунд 2) при выгрузке инкремента использовать нестрогое неравенство с временем предыдущей выгрузки. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2019, 17:13 |
|
Инкркмкнтальная выгрузка MySQL MS SQL
|
|||
---|---|---|---|
#18+
miksofta_voronin, 1) можно использовать дробные секунды, вплоть до микросекунд 2) при выгрузке инкремента использовать нестрогое неравенство с временем предыдущей выгрузки. Вбросили в 1 момент времени 10 записей, во второй 1000000 записей. Читать эти 1000000 второй раз? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2019, 17:35 |
|
Инкркмкнтальная выгрузка MySQL MS SQL
|
|||
---|---|---|---|
#18+
miksoftАналогичного нет, насколько я в курсе. Можно сделать служебное поле во всех интересующих таблицах с меткой времени последнего апдейта. И удаление записей сделать апдейтом соответствующего поля-флага, или вовсе запретить. Объем базы настолько велик, что нужен именно инкремент? Вопрос не в объеме базы. Хотят большую скорость перекачки. 1-2 секунды. Максисмум 10 при больших вбросах. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2019, 17:36 |
|
|
start [/forum/topic.php?fid=47&fpage=41&tid=1829363]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
56ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
2ms |
others: | 301ms |
total: | 450ms |
0 / 0 |