티스토리 뷰

반응형

두번째로 JDBC의 ResultSet 결과를 JsonArray로 변환하는 함수를 구현해 보겠습니다.

DataConverter 클래스에 추가됩니다.

효율적인 데이터 처리를 위해서 Oracle에서 데이터를 Fetch하는 Count와 JsonArray에 담길

데이터를 일치 시켰습니다.

그래서 아래 함수의 두번째 인자인 maxSize가 그 값입니다. 저는 보통 1000을 사용합니다.

오라클 11g 는 기본값이 20 입니다. 즉 20 rows 씩 클라이언트로 운반이 됩니다.

그리고 데이터 형은 일단 정수형과 문자열만 사용한다는 가정하에 함수를 만들어 보았습니다.


DataConverter.java

-------------------------------

public static JsonArray sqlToJson(ResultSet rset, int maxSize) throws Exception {

JsonArray  jsonData = new JsonArray();

ResultSetMetaData = rmeta;

JsonObject jo;


int nRows = 0;

while(rset.next()) {

nRows++;

jo = new JsonObject();

for(int i=1; i<= rmeta.getColumnCount(); i++) {

if(rmeta.getColumnTypeName(i).equals("NUMBER") {

jo.addProperty(rmeta.getColumnName(i).toLowerCase(), rset.getInt(i));

} else {

jo.addProperty(rmeta.getColumnName(i).toLowerCase(), rset.getString(i));

}

}

jsonData.add(jo);


if(maxSize == nRows)

     break;

}


return jsonData;

}


이렇게 해서 ETL프로그램에서 가장 중요한 DataConver 클래스에 2개의 함수를 구핸해 보았습니다.

3편에서는  SQL로 오라클에서 데이터를 fetch한 후 몽고디비에 효과적으로 적재하는 부분을 만들어 볼 생각입니다.


반응형