Node.js

[NodeJS] bulk 데이터 파일 읽어서 ElasticSearch에 등록하기

SongMinu 2021. 11. 25. 09:51
728x90

https://minu0807.tistory.com/114 여기랑 이어지는 내용이기도 함.

const fs = require('fs');
const es_client = require('./client');

async function asyncForEach (array, callback) {
  for (let index = 0; index < array.length; index++) {
    await callback(array[index], index, array);
  }
};

async function run() {
  try {
    const list = fs.readdirSync('./_bulk/');
    asyncForEach(list, async (name) => {
      console.log(name);
      let data = fs.readFileSync('./_bulk/' + name, 'utf8');
      let bulk = await es_client.bulk({
        body: data
      })
      console.log(bulk);
    })
  } catch (err) {
    console.error(err);
  }
}
run();

_bulk 디렉터리에 벌크 데이터가 저장된 파일들이 있고, 그 파일들을 읽어와서 bulk 처리해줌.

파일이 벌크 형식으로 데이터가 제대로 들어있지 않다거나, 형식은 제대로 되어 있는데 엘라스틱 맵핑 정보가 잘못되어 있는 것이 아니라면 크게 오류 날 일은 없다.

 

 

 

반응형