gpt4 book ai didi

json - mongoimport 错误处理

转载 作者:可可西里 更新时间:2023-11-01 10:52:26 26 4
gpt4 key购买 nike

我有一个包含大约 45,000 个 json 文件的目录。目前总大小约为 12.8 GB。这是来自kissmetrics的网站数据,它的结构是detailed here。 .

数据:每个文件都是多个用换行符分隔的json文档它将每 12 小时更新一次新的附加文件

我想使用 mongoimport 将此数据导入 mongoDB。我试过这个 shell 脚本来简化这个过程:

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 的进度并重新启动吗?关于导入这种大小的大数据或处理 shell 中的错误有什么建议吗?

最佳答案

通常,给定的命令在失败时会返回错误代码(希望在该命令的 man 页面上记录)。

所以如果你想做一些 hacky 并且只重试一次,

cmd="mongoimport --foo --bar..."
$cmd
ret=$?
if [ $ret -ne 0 ]; then
echo "retrying..."
$cmd
if [ $? -ne 0 ]; then
"failed again. Sadness."
exit
fi
fi

或者如果你真的需要 mongoimport 输出,像这样捕获它

results=`mongoimport --foo --bar...`

现在变量 $results 将包含在 stdout 上返回的内容。可能还必须重定向 stderr

关于json - mongoimport 错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37898723/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com