일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 우분투
- 리눅스
- AI
- R
- dropout
- Graph
- 크롤링
- 데이터분석
- 빅데이터
- pandas
- 텍스트분석
- bayesian
- 파이썬
- 강화학습
- 불확실성
- 알고리즘
- 텍스트마이닝
- 코딩테스트
- Crawling
- 백준
- selenium
- 논문리뷰
- VAE
- uncertainty
- pytorch
- YarinGal
- 베이지안
- PYTHON
- GNN
- DATA
- Today
- Total
끄적거림
[R쓸신잡]DB연결 in R 패키지(RJDBC, RODBC, ROracle) benchmark 본문
이전 시간들에서 RJDBC, RODBC, ROracle 세 개의 패키지를 다뤄보았다. 그렇다면 왜 굳이 DB를 연결하는 방법이 이렇게나 많은 것일까?
내 경험상 pc마다의 환경이 다르므로 각 환경에 최적화된 커넥션 패키지를 만들었다고 생각이 들고, 세 가지의 패키지를 설치해보고 설치가 잘 되는 것을 사용하면 좋을 듯하다.
그럼 단적으로 어느 것이 가장 빠르고 좋다고 볼 수 있을까?
결론은 알 수 없다.
일반적으로 Oracle 환경에서는 ROracle이 가장 빠르다고 알려져 있다. 아래의 URL을 확인해보면 알 수 있듯이 CRUD(Create, Read, Update, Delete) 모든 부분에서 ROracle이 가장 빠르고 파워풀하다고 할 수 있다.
하지만, 내가 실제로 세가지 모두를 benchmark해본 결과는 RJDBC가 가장 빠른 것으로 확인되었다.
결론적으로, 각 PC 사양에 따라, 그리고 원하는 작업에 따라 각 패키지들의 퍼포먼스는 달라질 수 있으므로 먼저 한 번 실험해보고 사용하는 것을 권장한다.
또 하나의 팁을 주자면, 각 커넥터가 읽어오는 data type도 다르다는 것이다. DB의 스키마대로 VARCHAR면 VARCHAR, INT면 INT 읽어오는 것은 사실이지만, 그것이 R에서 불러와 R의 데이터 객체로써 존재할 때 변환되는 것으로 생각이 된다.
가령, 특정 사용자 ID나 코드 같은 경우 자릿수를 맞추기 위해 0을 앞에 붙이는 경우가 많다.("000232" 과 같은 코드를 의미) 이것은 DB에서는 문자형으로 스키마가 지정되어 있을테고 해당 DB 툴에서도 where code = '000232'와 같이 적어줘야 올바르게 인식하고 원하는 결과를 가져올 것이다. 하지만 이를 R에서 불러온다면 경험상 RODBC의 경우 숫자로 인식하고 데이터를 숫자형으로 저장한다.
그러므로 여러 패키지에서 원하는 패키지를 고를 때 데이터 정합성과 퍼포먼스 둘 다 고려를 해야한다.
'R쓸신잡' 카테고리의 다른 글
[R쓸신잡] directory, path 설정 (0) | 2020.06.20 |
---|---|
[R쓸신잡] multi package install, import(library), update in R (0) | 2020.06.19 |
[R쓸신잡]DB연결 in R with ROracle package (0) | 2020.06.17 |
[R쓸신잡]DB연결 in R with RODBC package (0) | 2020.06.16 |
[R쓸신잡]DB연결 in R with RJDBC package (1) | 2020.06.15 |