Как записать время работы CDC при использовании AWS DMS для миграции SQL Server на AWS S3? - PullRequest
0 голосов
/ 13 июня 2019

Я хочу перенести локальный CDC SQL Server в файлы S3 с помощью AWS DMS. Все работает хорошо, но время работы CDC в цели. У меня есть:

    [__$start_lsn]
    ,[__$end_lsn]
    ,[__$seqval]
    ,[__$operation]

столбцы данных в цели, но ничего не касается времени. Как я могу иметь время операции в цели?

Я знаю, что если есть способ вернуть результат функции SQL в target, я могу вызвать функцию sys.fn_cdc_map_lsn_to_time(x.__$start_lsn), но не знаю, как это сделать.

Локальная версия SQL Server:

Microsoft SQL Server 2014 (SP1-CU4) - 12.0.4436.0 (X64) Enterprise Edition: лицензирование на основе ядра (64-разрядная версия) в Windows NT 6.1 (сборка 7601: пакет обновления 1) (гипервизор)

1 Ответ

0 голосов
/ 13 июня 2019

Исходя из вашего ответа на мой уточняющий вопрос в комментарии, я думаю, что это сработает:

select sys.fn_cdc_map_lsn_to_time(__$start_lsn)
from «some change instance»;

Вы можете получить значение для «some change instance» из системной хранимой процедуры sys.sp_cdc_help_change_data_capture.

Но! Я предполагаю, однако, что вы хотите использовать это для отслеживания прогресса вашей операции DMS. В таком случае я бы предложил немного изменить запрос. Вот так:

select sys.fn_cdc_map_lsn_to_time(max(__$start_lsn))
from «some change instance»;

То есть отображать время last_lsn, а не все из них. Удачной охоты!

...