2016-07-07 9 views
2

При использовании MLCP у меня возникла странная проблема с параметром '-batch_size', указанным в файле параметров (options.txt) при копировании документов из одной базы данных в другую, например, если -batch_size = 10 и количество документов, которые должны быть переданы (на основе параметров фильтрации имеется) и теперь я выполнить команду: mlcp.bat -options_file "options.txt"Передача частичного документа при разделении пакетами MLCP

содержания статистика насос полученные являются:

INFO contentpump.LocalJobRunner:com.marklogic.mapreduce.ContentPumpStats: 
INFO contentpump.LocalJobRunner: INPUT_RECORDS: 106 
INFO contentpump.LocalJobRunner: OUTPUT_RECORDS: 106 
INFO contentpump.LocalJobRunner: OUTPUT_RECORDS_COMMITTED: 100 
INFO contentpump.LocalJobRunner: OUTPUT_RECORDS_FAILED: 0 
INFO contentpump.LocalJobRunner: Total execution time: 37 sec 

Кажется, что остаток документы, оставшиеся после дозирования (размер партии = 10), который 10 * 10 + 6, то 6 документов не передаются в нужной базе данных.

Таким образом, так или иначе, он передает только документы, которые попадают под полные партии, а не левые документы, которые не могут сформировать полную партию.

Может кто-нибудь, пожалуйста, предложите обходной путь для этого и причину такого поведения.

+0

улучшенное форматирование и объяснение – Stallion

+0

Это, как правило, не бывает. Даже без флага '-batch_size' у вас будет несколько партий, так как значением по умолчанию является' 100'. Вы уверены, что это почему-то не вызвано не-уникальным ури? Если вы уверены, что это ошибка, об этом следует сообщать в поддержку MarkLogic. Вы имеете право на поддержку? – grtjn

+1

Также можно проверить фактический счетчик данных базы данных, например, Query Console. «MLCP» может (теоретически) просто печатать неправильный номер .. – grtjn

ответ

1

Вы проверили, были ли отсутствующие документы в базе данных назначения?

Была ошибка на некоторое время (по крайней мере с импортом), в которой статистика иногда была неправильной, хотя поведение было правильным. Эта проблема была зафиксирована в mlcp v8.0-4.

Другое, что я хотел бы проверить, это отсутствие ошибок, зарегистрированных на целевом сервере. OUTPUT_RECORDS < OUTPUT_RECORDS_COMMITTED может указывать на стороне сервера ошибка произошла, который сделал некоторые из фиксаций терпят неудачу, как описано здесь:

http://docs.marklogic.com/guide/mlcp/getting-started#id_33299

Наконец, какие фильтры вы используете? -query_filter может создавать ложные срабатывания, поскольку он использует нефильтрованный поиск. Я сомневаюсь, что это то, с чем вы сталкиваетесь, но подумал, что стоит упомянуть. Он говорил о здесь:

http://docs.marklogic.com/guide/mlcp/export#id_85989

+0

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

+0

В этом случае я рекомендую вам обратиться в службу поддержки, как предположил @grtjn. – kcoleman