MarkLogic - Инкрементная загрузка с использованием MLCP - PullRequest
0 голосов
/ 02 февраля 2019

MarkLogic версия: 9.0-6.2

Мы пытаемся использовать mlcp для загрузки ежедневных изменений данных клиента в data-hub-STAGING, а затем использовать поток согласования для внесения изменений в data-hub-FINAL.

Как я понимаю, «collector.sjs» используется для возврата Uris, который должен быть согласован.После полной загрузки в 1-й день, есть ли способ, которым коллектор может идентифицировать изменения предыдущего дня и согласовать только эти строки?

У меня есть пара конструкций

  1. Сохраняйте время выполнения пакета при каждом запуске и имейте логику в сборщике для возврата Uris с более высоким временем выполнения пакета (каждый документ сохраняется со временем выполнения пакета)

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

  3. Сохраните каждый документ в две коллекции (customer и customer_batchDateTime), а затем создайте маркер (что-то вроде строки вколлекция PROCESS с PROCESS_IND в качестве 'N').Затем сборщик просматривает коллекцию PROCESS и ищет документы с PROCESS_IND в виде 'N' и возвращает документы из коллекции customer_batchDateTime.Наконец, writer.sjs будет превращать PROCESS_IND в «Y»

Перед тем, как перейти к любому из перечисленных выше параметров, я просто хочу проверить, есть ли какие-либо встроенные возможности в ingest илигармонизировать процесс, чтобы легко идентифицировать дельта / записи изменений, чтобы я не переусердствовал с процессом.

Ответы [ 2 ]

0 голосов
/ 06 февраля 2019

В качестве альтернативы вы можете рассмотреть возможность касания документов в Staging, например, добавив коллекцию с именем processed.Вы можете сделать это из основного скрипта в скрипте гармонизации после запуска писателя.Сборщик может просто подавить обработанные документы и работать только с необработанными документами.Возможно, даже проще и надежнее, чем работа с более конкретными именами коллекций.

HTH!

0 голосов
/ 03 февраля 2019

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

Для вашего случая использования кажется, что лучший / самый простой подход - вставлять все документы каждый день в коллекцию с именем, например "input- (current date) ", а затем подайте это как опцию в модуль коллектора, чтобы он мог применить запрос к коллекции.

...