Le moyen le plus rapide d'importer des millions de documents JSON dans MongoDB

J'ai plus de 10 millions de documents JSON de la forme :

["key": "val2", "key1" : "val", "{\"key\":\"val", \"key2\":\"val2"}"]

dans un seul fichier.

De l'importation à l'aide de JAVA API de Pilote a pris environ 3 heures, alors que l'aide de la fonction suivante (de l'importation d'un BFILS à un moment):

public static void importJSONFileToDBUsingJavaDriver(String pathToFile, DB db, String collectionName) {
    //open file
    FileInputStream fstream = null;
    try {
        fstream = new FileInputStream(pathToFile);
    } catch (FileNotFoundException e) {
        e.printStackTrace();
        System.out.println("file not exist, exiting");
        return;
    }
    BufferedReader br = new BufferedReader(new InputStreamReader(fstream));

    //read it line by line
    String strLine;
    DBCollection newColl =   db.getCollection(collectionName);
    try {
        while ((strLine = br.readLine()) != null) {
            //convert line by line to BSON
            DBObject bson = (DBObject) JSON.parse(JSONstr);
            //insert BSONs to database
            try {
                newColl.insert(bson);
            }
            catch (MongoException e) {
              //duplicate key
              e.printStackTrace();
            }


        }
        br.close();
    } catch (IOException e) {
        e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
    }


}

Est-il un moyen plus rapide? Peut-être, MongoDB paramètres peuvent influencer la vitesse d'insertion? (par exemple l'ajout de la clé : "_id" qui servira d'index, de sorte que MongoDB n'aurait pas à créer artificiellement des clés et donc de l'indice pour chaque document) ou de désactiver la création de l'index à l'insertion.
Merci.

source d'informationauteur user1264304 | 2013-10-28