Версия MarkLogic: 9.0-6.2
Мы пытаемся использовать mlcp для загрузки ежедневных изменений данных клиентов в Data-Hub-STAGING, а затем использовать согласованный поток для внесения изменений в Data-Hub-FINAL.
Насколько я понимаю, "collector.sjs" используется для возврата uris, который необходимо согласовать. Может ли сборщик после полной загрузки в день 1 определить изменения по сравнению с предыдущим днем и согласовать только эти строки?
У меня есть пара дизайнов
Сохраняйте время выполнения пакета при каждом запуске и используйте логику в сборщике для возврата uris с более высоким временем выполнения пакета (каждый документ сохраняется с временем выполнения пакета)
Сохраните каждый документ в двух коллекциях (customer и customer_currentDate), а затем попросите сборщик вернуть документы из коллекции customer_currentDate. Однако это может вызвать проблемы, если проглатывание и согласование выполняются в разные дни.
Сохраните каждый документ в двух коллекциях (customer и customer_batchDateTime), а затем создайте маркер (что-то вроде строки в коллекции PROCESS с PROCESS_IND как «N»). Затем сборщик просматривает коллекцию PROCESS и ищет документы с PROCESS_IND как «N» и возвращает документы из коллекции customer_batchDateTime. Наконец, writer.sjs превратит PROCESS_IND в 'Y'
Прежде чем приступить к любому из вышеперечисленных вариантов, я просто хочу проверить, есть ли какие-либо встроенные возможности в процессе приема или согласования, чтобы легко идентифицировать записи дельты / изменений, чтобы я не переоценивал процесс.