이것은 오버플로 스택에 대한 첫 번째 질문이지만 지난 2 년 동안 SO를 사용해 왔으며 풍부한 정보를 제공했습니다.Node.js를 사용하여 대량 데이터로드
저는 최근에 NodeJS를 선택했고 딜레마에 빠졌습니다. NodeJS를 사용하여 약 2000 행의 데이터를로드/삽입하는 가장 좋은 방법을 찾고, 가능한 경우 기본 비동기 방법론을 사용합니다. API에서 데이터를 가져 와서 JSON 데이터를 가져 와서 나중에 데이터를 사용할 수 있도록 데이터를 3 개의 테이블로로드해야합니다. 이 파일에는 17 개의 Country 개체가 있고 77 개의 State 개체와 약 2,000 개의 Count 개체가 있습니다. 내가 구문 분석하고
JSON 파일 형식은 다음과 같습니다 내 PHP의 backround에 너무
[{Country:{
Name: ...
CountryId: ...
States: {
Name: ...
StateId: ...
Counties: {
Name: ...
CountyId:...
}
}
},{Country+n:{
Name: ...
CountryId: ...
States: {
Name: ...
StateId: ...
Counties: {
Name: ...
CountyId:...
}
}
}];
, 나는 즉시 자바 스크립트에 다음과 같은 세 가지 기능을 만들 것입니다 :
function Country(data){
for(var z in data){
var country = data[z];
InsertInCountryDB(country.CountryId, country.Name);
State(Country.State);
}
}
function State(data){
for(var z in data){
var state = data[z];
InsertInStateDB(state.StateId, state.Name);
State(Country.State);
}
}
function County(data){
for(var z in data){
var county = data[z];
InsertInCountyDB(county.CountyId, county.Name);
}
}
나의 첫번째 시도
이왔다 각 개체에 대한 이벤트를 만든 다음 이벤트를 사용하여 자체 개체를 드릴 다운 한 다음 데이터를 삽입합니다. 국가 및 주 세부 정보를 DB에 삽입하는 것이 효과적이지만 카운티 데이터를 사용하면 오류가 발생합니다.내 문제에 대한 답변을 찾는 것이 아니라 오히려 3 가지 동기 함수에서 벗어나 비동기 기능을 사용하는 데 유용한 코딩 팁을 제공합니다.
감사합니다.
어느 DB입니까? 너 뭐 해봤 니? EventEmitters? 콜백? – TheHippo
2000 행은 매우 빨라야합니다. 내가 hav는 비동기 문제없이 mongo에 여러 파일에서 7 밀리 기록을 삽입하는 스크립트를 썼습니다. 그래서 어떤 데이터베이스를 사용하고 있습니까? – wayne
postgres DB를 사용하고 있습니다. EventEmitters를 사용했지만, 오늘 아침 Listener와 이벤트를 처음 사용하는 방식을 놓쳤을지도 모른다는 생각을했습니다. 동기식 방법을 사용하여 모든 데이터를 시스템으로 가져올 수있었습니다.그러나 NodeJS의 요점은 비동기 프로그래밍이므로 더 나은 방법을 사용하도록 코드를 다시 작성할 수 있는지 알고 싶습니다. – LorneCurrie