NoSQL/MongoDB

MongoDB 여러 컬렉션 한번에 샤드 적용

ghyeong 2024. 10. 8. 14:43
반응형

샤드키 _id기준

 

hash로 샤드 인덱스 생성

 

db.컬렉션명.createIndex({"_id": "hashed"})

sh.shardCollection("db명.컬렉션명", {"_id": "hashed"})

 

 

여러개 컬렉션 적용 (몽고 쉘에서 실행)

 

 

//적용할 컬렉션

var collections = ['gmktLogisItemRegIf', 'wmsAcntrLogisItemHist', 'payEvtHist', 'gnrlItemMapping', 'logisItemHist','logisGnrlItemMpngHist','itemGthrReqInfoIf','itemExceptionLog','lnkgLogisItemHist','urcyWhoutStopIf','lnkgItemHist'];

 

for (var i = 0; i < collections.length; i++) {
  var collectionName = collections[i];
  if (collectionName !== 'system.indexes' && !collectionName.startsWith('.') && !collectionName.endsWith('.')) {    
       var indexName = "_id_hashed";
        db[collectionName].createIndex({ "_id": "hashed" }, { name: indexName });
        sh.shardCollection("sfcdb." + collectionName , {"_id": "hashed"});
  }
}

 

반응형

 

 

추가) 몽고 Compass에서 몽고 쉘 실행법 (MongoDB Compass Version 1.44.4 (1.44.4) 기준)

해당 쉘에서 스크립트 실행

반응형