Marklogic MLCP: как получить количество вставленных записей?
Я загружаю данные используя mlcp. После завершения этого процесса, как я могу получить количество документов, вставленных в БД?
Изменить: На самом деле я инициализирую этот процесс MLCP из Java, и я хочу, чтобы количество вставленных записей в приложении Java. Как я могу получить количество вставленных записей из Java-приложения
3 ответа
Когда он запускается, журналы mlcp ATTEMPTED_INPUT_RECORD_COUNT
и любые ошибки. Вы могли бы использовать это.
Если вы начнете с известного количества, вы можете посмотреть на статус базы данных в интерфейсе администратора.
Теперь, когда ваши документы находятся в базе данных, вы также можете запросить их и считать их, используя xdmp:estimate
, Например, часто бывает неплохо установить выходную коллекцию со встроенной временной меткой. Или если maintain-last-modified
включен, вы можете использовать это.
Если эти идеи не помогают, может быть, вы можете уточнить вопрос?
Да я с "мблакеле". MLCP поддерживает log4j для записи всех действий. Для настройки log4j перейдите в каталог 'conf' каталога установки MLCP и измените содержимое файла 'log4j.properties' с помощью
#Define the root logger with appender file
log = C:/mlcp-Hadoop2-1.2-3/Log
log4j.rootLogger = INFO, FILE
#Define the file appender
log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.File=${log}/log.out
# Define the layout for file appender
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%d{dd/MM/yyyy HH:mm:ss} %p %c{2}: %m%n
Он создаст файл журнала в папке "Журнал", где вы можете получить количество загруженных записей. Например:
Вы ищете ручной способ получения счетчика или вы ищете программный способ получения счетчика, где у вас может быть какой-то код, который что-то делает с этим счетчиком?
Что касается последнего, я второй ответ mblakele выше - коллекции легко злоупотреблять, но я думаю, что это хороший вариант использования для них, если у вас уже есть некоторые другие документы в вашей базе данных и, следовательно, не может просто сосчитать все документы в база данных. Используйте -output_collections, чтобы указать коллекцию, а затем используйте сервер XDBC, который использует MLCP, и выполните запрос xdmp: эстимейт, чтобы вернуть счет.
И если это последнее, мне интересно, используете ли вы какой-либо инструмент ETL для вызова MLCP - например, Camel, Spring Integration или один из множества графических инструментов. Улучшение интеграции MLCP с этими инструментами - моя область интересов - см. Пример https://github.com/rjrudin/ml-camel-client.