MarkLogic: DHF Гармонизировать поток для записи нескольких документов в FINAL db для каждого документа в STAGING DB - PullRequest
1 голос
/ 17 марта 2019

MarkLogic версия: 9.0-6.2

Я использую MLCP для загрузки документов в STAGING DB.Для каждого документа в STAGING DB мне нужно обновить несколько документов в FINAL DB.

Например, документ промежуточной базы данных имеет электронную почту с индикатором возврата.Мне нужно обновить индикатор возврата во все документы в коллекции FINAL с тем же идентификатором электронной почты.

Могу ли я использовать поток Harmonize для этого?Как я могу кодировать в content.sjs, чтобы вызывать writer.sjs несколько раз?

Я попытался использовать цикл в writer.sjs для возврата каждого документа в FINAL и применить documentInsert (в основном, цикл FOR в writer.sjs), но поведение не согласовано.Кроме того, я не уверен, является ли это правильным использованием потока Harmonize.

Я попытался написать собственный код и вызвать его через вызов REST API.Это работает, как и ожидалось.

Пожалуйста, предложите лучший способ справиться с моим требованием (Harmonize Vs Custom REST).

1 Ответ

1 голос
/ 18 марта 2019

Есть один довольно элегантный способ сделать это, но он не будет работать с QuickStart UI. Вы можете запустить согласование потоков с помощью Final в качестве исходной базы данных и использовать cts: values ​​в качестве источника сборщика.

Вы выполняете ввод и гармонизируете потоки без побочных эффектов, а после этого вы запускаете отдельный согласованный поток, который будет искать все уникальные адреса электронной почты в итоговой базе данных. Вы передаете каждый уникальный адрес электронной почты как идентификатор (который обычно содержит документ uri, но любая другая строка тоже работает). Вы собираете все, что вам нужно, на разных этапах, а затем в модуле записи вы запрашиваете и перебираете все соответствующие документы, чтобы установить индикатор по мере необходимости.

Задача gradle для запуска потока имеет свойство sourceDB, но вы, вероятно, можете сделать то же самое с REST-api Data Hub: https://marklogic.github.io/marklogic-data-hub/refs/gradle-tasks/#marklogic-data-hub-flow-management-tasks

НТН!

...