Контрольная сумма (КС)

Это значение, рассчитанное по блоку данных путём применения определенного алгоритма.

Совпадение КС на стороне Quiz с КС на стороне клиента гарантирует согласованность блока данных между системами.

Расчет КС

  1. На стороне Quiz

    Отправить запрос вида: <API_URL>/checksum?object=<ИМЯ_ОБЪЕКТА>, который вернет КС по всем блокам объекта.

  2. На стороне внешней системы клиента

    Рассчитать КС отдельно для каждого блока данных.

    1. Сформировать блок данных объекта с помощью SQL-запроса с группировкой:

      1. Если в объекте есть дата факта, то группируем данные по полю.

      2. Если в объекте нет даты, то не группируем данные.

    2. Вычислить хэш (алгоритм SHA-256) от конкатенации суммы по полю RowVersion и кол-ва всех записей, содержащихся в блоке. Пример расчета для MS SQL Server:

      hashbytes('SHA2_256', cast(concat(sum(cast(RowVersion as bigint)), count(RowVersion)) as varchar(255))) as HashValue