2014-10-18 2 views
-1

Мы используем инструмент «Захват данных» для переноса исходных данных в целевую базу данных в режиме реального времени. Задача состоит в том, чтобы как можно точнее определить задержку миграции данных, которая существует между источником и целевым объектом . Возможности отчетности по задержкам инструмента не соответствуют нашему удовлетворению, и поэтому мне необходимо разработать процесс, который лучше контролирует эту конкретную метрику.Разработка алгоритма определения доступности данных

Есть две основные причины, почему мы должны знать это:

1: Предоставить нашим пользователям точную матрицу доступности данных для поддержки планирования отчетов. Например, Сколько времени должно пройти после полуночи, прежде чем планировать ежедневный отчет о сверке для предыдущего дня, учитывая, что мы хотим получить эту информацию как можно скорее?

2: Определите ситуации, когда процесс зеркального отображения данных работает медленнее, чем обычно (или даже остановился). Это приведет к отправке электронной почты в нашу службу поддержки для расследования.

Я ищу некоторые общие идеи о том, как лучше идти об этом, казалось бы, простая задача

+1

Этот вопрос не соответствует теме, поскольку речь идет не о конкретной теме, связанной с программированием. Это может лучше подойти к программистам SE. – usr2564301

+1

Хм, кроме тега [java], он кажется совершенно по-теме для меня. – Hein

+0

Какой инструмент вы используете для CDC и в режиме реального времени? – rauts

ответ

1

Мой предпочтительный подход является специализированным сердцебиение или здоровье проверка таблицы. У источника столбец столбца идентификатора (SQLserver) или значение из последовательности (Oracle) в качестве основного идентификатора; фиксированная строка имени задачи; фиксированный сервер строка (если не уже идентифицировано TASKNAME;. и текущее время

Есть скрипт/задание на источнике для вставки записи каждой минуты (или 2 минуты или 10 минут)

В CDC двигатель (если он есть), добавить столбец со временем было обработано событие изменения.

в мишени, добавить последний столбец по умолчанию до текущего времени при вставке.

одна таблица назначения может вместить несколько источников/задач.

Регулярные blibs позволят вам сразу увидеть, происходят ли изменения, влияет ли приложение на изменения или нет.

Простой отчет может отображать текущую задержку, как и латентность с течением времени. Приятно иметь возможность сравнивать «этот понедельник» с «последним понедельником», чтобы увидеть, похоже ли что-то, лучше или хуже.

Cheers, Hein.

+0

Добавление выделенной таблицы в порядке для проверки высокого уровня, но нам нужен более тонкий мониторинг, поскольку существуют различия в задержках между разными таблицами. Один из подходов, с которыми я работал, заключается в том, чтобы получить максимальное обновление в каждой таблице для источника и цели каждый час или около того и вычислить различия. Это хорошо работает для активных таблиц, но не так хорошо для таблиц, которые не меняются часто, так как различия могут оказаться довольно большими. – Constantin

+0

Причина большой разницы в обновлении между источником и целью заключается в том, что цель просто не видит последнюю транзакцию, которая в порядке.Проблема заключается в транзакции, которая произошла до того, как это было давно, следовательно, большой разрыв в разнице – Constantin

+0

«Различия в задержках между разными таблицами существуют» Действительно? Не позволяет ли метод CDC более или менее упорядочить транзакцию? Тогда у вас есть еще большие проблемы, чем тонкая гранулярность для некоторых (активных), грубых для других (малоиспользуемых) таблиц. У вспомогательной таблицы также есть преимущество получения всех данных в одной системе, а не для подключения к источнику, а также к цели. Удачи. – Hein

Смежные вопросы