Я выполняю миграцию на базе данных MySQL prem * в AWS S3, используя AWS DMS.
Я пытался создать задачу репликации cd c, которая будет применять изменения из источника (mysql) каждый x промежуток времени или когда буфер становится больше определенного размера. Причина в том, что я хочу иметь большие файлы в S3 для оптимизированных запросов. Несмотря на многочисленные попытки, DMS не производит пакетные изменения и применяет их по мере их поступления.
Ниже приведена одна из настроек задачи, которые я пробовал (я пробовал несколько вариантов):
{
"TargetMetadata": {
"BatchApplyEnabled": true
},
"ChangeProcessingTuning": {
"BatchApplyPreserveTransaction": false,
"BatchApplyTimeoutMin": 3600,
"BatchApplyTimeoutMax": 3600,
"MemoryKeepTime": 600
}
}
У меня есть подозрение, что то, что я пытаюсь сделать, невозможно, если S3 цель. Я основываюсь на том, что нашел в журналах CloudFront для этой задачи:
2020-03-22T07:49:23 [STREAM_COMPONEN ]I: Loading stream component 'sorter' with id '101' (streamcomponent.c:1003)
2020-03-22T07:49:23 [STREAM_COMPONEN ]I: Loading stream component 'S3' with id '55' (streamcomponent.c:1003)
2020-03-22T07:49:23 [STREAM_COMPONEN ]I: Loading stream component 'Mysql' with id '30' (streamcomponent.c:1003)
2020-03-22T07:49:23 [STREAM_COMPONEN ]I: Force switch to transactional apply mode for File target (endpointshell.c:1397)
2020-03-22T07:49:23 [STREAM_COMPONEN ]I: Loading stream component 'Mysql' with id '30' (streamcomponent.c:1003)
Force switch to transactional apply mode for File target
заставляет меня думать, что режим пакетного применения недоступен для цели S3.