CHECK_DATA
Запрос позволяет проверить идентичность данных логической таблицы, загруженных в различные СУБД хранилища в указанный период.
Проверка выполняется по всем операциям записи, начиная с дельты, указанной в запросе, и заканчивая последней закрытой дельтой. Граничные дельты включаются в проверку.
Алгоритм проверки зависит от параметров запроса:
- если в запросе указаны столбцы к проверке, по каждой операции записи вычисляется хэш значений этих столбцов и полученные значения сравниваются в целевых СУБД хранилища;
- если столбцы не указаны, сравнивается количество записей, загруженных в рамках каждой операции записи, в каждую из целевых СУБД хранилища.
Примечание: в проверке участвуют целевые СУБД хранилища — те СУБД, в которых размещены данные проверяемой логической таблицы. Если такая СУБД одна, проверка все равно выполняется и считается успешной (см. рисунок ниже).
В ответе возвращается:
- объект ResultSet с одной записью, содержащей результаты проверки, при успешном выполнении запроса;
- исключение при неуспешном выполнении запроса.
Возвращаемая информация включает сообщение об успешной проверке или найденных расхождениях, а также список проверенных СУБД хранилища.
На рисунке ниже показан пример ответа в случае расхождения: хэш в ADB отличается от хэша в ADG и ADQM. Различия вызваны тем, что запись была удалена напрямую из ADB (за рамками системы), а записи в ADG и ADQM остались без изменений.

Ответ CHECK_DATA с найденными расхождениями
На рисунке ниже показан пример ответа в случае успешной проверки логической таблицы, данные которой размещены только в ADB.
Ответ CHECK_DATA с проверкой только в ADB
Синтаксис
CHECK_DATA([db_name.]table_name, delta_number[, square-bracketed_column_list])
Параметры
db_name— имя логической базы данных, в которой находится проверяемая логическая таблица. Указывается опционально, если выбрана логическая БД, используемая по умолчанию;table_name— имя проверяемой логической таблицы;delta_number— номер дельты, с которой начинается проверка. Должен быть меньше или равен номеру последней закрытой дельты. Номер последней закрытой дельты можно узнать с помощью запроса GET_DELTA_OK;square_bracketed_column_list— список проверяемых столбцов таблицы. Элементы списка должны быть указаны в квадратных скобках через запятую, например[identification_number, transaction_date]. Если столбцы не указаны, проверка выполняется по количеству записей, загруженных в рамках каждой операции записи в каждую целевую СУБД хранилища.
Ограничения
Нет строгой гарантии отсутствия ложноположительных результатов.
Примеры
Проверка целостности данных логической таблицы sales в диапазоне [дельта 4, последняя закрытая дельта]:
CHECK_DATA(sales.sales, 4)
Проверка целостности данных столбцов identification_number и transaction_date логической таблицы sales:
CHECK_DATA(sales.sales, 4, [identification_number, transaction_date])
CHECK_DATA(sales.sales, 4)
