[mysql 인스턴스 테스트 - 레코드 추출하기]
- 단어, 날짜, 카운트(날짜 AND 단어별 카운트)
- 고민했던 것 : 카운트를 컬럼으로 둘 것인가 OR 하나씩 저장시켜서 쿼리문으로 조합할 것인가
- 카운트는 컬럼으로 두지말고 단어와 날짜를 가지고 그룹핑하고 카운트 시키면 되겠음
- 일단 테스트해보고 바꿔가는 형태로 해봐야겠음 : 크롤링부터 데이터 저장까지
[mysql 세팅 및 테스트]
- 환경 : AWS RDS mysql-community-server 5.7, 3306 port
- 접속 환경 : AWS RHEL 7.2 instance
- 특징
(1) inbound 규칙에서 해당 인스턴스만 접근하도록 해당 인스턴스 시큐리티 그룹만 접근가능하도록 설정해둠
(2) 원래는 aws instance에 mysql 깔고 호스팅하려고 세팅까지 했었는데, 아마존에서 rds 쓰도록 유도함 - 세팅을 콘솔에서 할 수 있음
- 테이블 생성 : 앞서 언급 했던 것처럼 우선 단어와 날짜만 저장할 수 있도록 테이블을 생성한다.
(1) use 데이터베이스명;
(2) create table word (name varchar(10), day date);
(3) describe word;
=> 생성한 테이블 구성 확인하기
(4) insert into word values(~~~);
(5) select name, day, count(*) from word group by day, name;
=> day와 name으로 그룹핑시킴
[nodejs - mysql 모듈]
(1) mysql 모듈 : mysql 서버에 쿼리문을 던지고 레코드를 받기위해서 해당 모듈을 사용
=> npm i mysql (필요에 따라 save 옵션을 주면 됨)
(2) 스크립트 작성
const mysql = require(‘mysql’);
const connection = mysql.createConnect({
host : ,
port : ,
user : ,
password : ,
database :
});
connection.connect();
connection.query(‘select * from word’, function(err, res, fileds){
if(err){
console.error(err.stack);
return ;
}
console.log(res[0]);
}
connection.end();
=> 예외처리하기 : 커넥션이 되지않았을 때
=> db 인스턴스 정보 환경변수 설정 : 리눅스의 쉘스크립트나 프로그램들이 실행 시작할 때 환경에 설정된 값들로 초기화되는 변수
=> 특정 사용자에서만 사용하기 : 특정 사용자 홈디렉토리(~/.profile)에 저장
=> export 환경변수명=값
=> echo ‘export 환경변수명=값’ >> ~/.profile (해당 파일에 환경변수 선언문을 넣음)
=> echo $환경변수명 (값이 출력되면 설정끝!)
=> 결과보기
[더하기]
- 크롤링한 결과를 어떻게 저장하는게 더 효율적인가를 고민해보기
- 레일즈 서버에서 접근할 수 있도록 인바운드 규칙 수정 + 요청 - 응답 되는지 확인하기
- 접근 확인했으니 크롤링 - 형태소 분석 결과 디비에 저장하는 것까지 구현하기
[참고자료]
- aws, MYSQL 데이터베이스 엔진 기반 DB 인스턴스에 연결하기 : https://goo.gl/zFNdoQ
'nodejs' 카테고리의 다른 글
[node.js] 프로젝트에서 실제 동작할 때 쓰일 크롤러 (0) | 2017.07.19 |
---|---|
[node.js] 프로젝트 개발 - 크롤링, 형태소 분석, mysql서버 insert (0) | 2017.07.11 |
[node.js] node + 외부 db - mysql 세팅, db, table 생성, 다루기 (0) | 2017.07.04 |
[node.js] node.js에서 데이터 수집하기 (0) | 2017.07.02 |
[node.js] 외부DB 연동 전 준비하기 #1 - RHEL + mysql (0) | 2017.06.26 |
댓글