У меня есть каталог из примерно 45 000 файлов json. В настоящее время общий размер составляет около 12,8 ГБ. Это данные веб-сайта от kissmetrics, а его структура - detailed here.Обработка ошибок на mongoimport
Данные: Каждый файл несколько документов JSON, разделенных символом новой строки Он будет обновляться каждые 12 часов с новыми дополнительными файлами
Я хочу, чтобы импортировать эти данные в MongoDB используя mongoimport. Я попробовал этот скрипт, чтобы сделать процесс проще:
for filename in revisions/*;
do
echo $filename
mongoimport --host <HOSTNAME>:<PORT> --db <DBNAME> --collection <COLLECTIONNAME> \
--ssl --sslCAFile ~/mongodb.pem --username <USERNAME> --password <PASSWORD> \
--authenticationDatabase admin $filename
done
Это будет иметь ошибки
2016-06-18T00:31:10.781+0000 using 1 decoding workers
2016-06-18T00:31:10.781+0000 using 1 insert workers
2016-06-18T00:31:10.781+0000 filesize: 113 bytes
2016-06-18T00:31:10.781+0000 using fields:
2016-06-18T00:31:10.822+0000 connected to: <HOSTNAME>:<PORT>
2016-06-18T00:31:10.822+0000 ns: <DBNAME>.<COLLECTION>
2016-06-18T00:31:10.822+0000 connected to node type: standalone
2016-06-18T00:31:10.822+0000 standalone server: setting write concern w to 1
2016-06-18T00:31:10.822+0000 using write concern: w='1', j=false, fsync=false, wtimeout=0
2016-06-18T00:31:10.822+0000 standalone server: setting write concern w to 1
2016-06-18T00:31:10.822+0000 using write concern: w='1', j=false, fsync=false, wtimeout=0
2016-06-18T00:31:10.824+0000 Failed: error processing document #1: invalid character 'l' looking for beginning of value
2016-06-18T00:31:10.824+0000 imported 0 documents
я потенциально буду работать в эту ошибку, и из моей инспекции не из-за некорректные данные.
Ошибка может произойти в течение часа.
Могу ли я разобрать ошибку в mongoimport, чтобы повторить один и тот же документ? Я не знаю, будет ли ошибка иметь эту же форму, поэтому я не уверен, могу ли я попытаться обработать ее в bash. Могу ли я отслеживать прогресс в bash и перезапускать, если он завершен раньше? Любые предложения по импорту больших данных этого размера или обработке ошибки в оболочке?