맵리듀스는 HDFS 외부 스토리지 저장소에 접근하려면 외부 API를 이용해야 한다. 그래서 하둡 생태계에는 외부 저장소의 데이터를 HDFS로 가져올 수 있도록 도와주는 에코시스템이 존재한다. 바로 아파치 스쿱이다.
스쿱은 RDBMS와 하둡 사이의 데이터를 이동시켜주는 에코 시스템이다.
스쿱은 MySQL, Oracle 등 RDBMS에 저장된 데이터를 추출해서 하둡으로 보내 처리할 수 있도록 도와준다. 또한, HDFS, Hive, HBase로 옮길 수 있다. 반대로 데이터 파이프라인을 통해 만들어진 최종 산출물을 다시 데이터 저장소로 보낼 수 있다.
스쿱은 다양한 관계형 데이터 베이스에서 작동하는 커넥터를 제공한다. 스쿱 커넥터를 이용해 대용량 데이터를 효율적으로 전송할 수 있다.
1) import
- 데이터베이스 시스템 → HDFS로의 데이터 이동
테이블에서 행을 추출하는 맵리듀스 잡을 실행 하여 데이터베이스에서 테이블을 임포트하고 HDFS에 레코드를 기록한다.
실행 순서
1. JDBC로 임포트 대상 테이블을 검사
2. 모든 컬럼의 목록과 SQL 데이터 타입 추출
3. SQL 데이터 타입 (VARCHAR, INTEGER)을 자바 자료형 (String, Integer) 등으로 맵핑
4. 레코드 컨테이너 클래스 생성
5. 맵리듀스 잡 실행
2) export
- HDFS → 데이터베이스 시스템으로 데이터 이동
실행 순서
1. 데이터를 받을 수 있는 타깃 테이블 준비
2. SQL 데이터 자료형에 적합한 자바 타입 결정
3. export 명령 실행
4. 데이터베이스에서 테이블 확인
스쿱은 RDBMS와 하둡 사이의 연결고리이다.
스쿱으로 인해 대규모 데이터들의 빠른 전송이 가능해졌다. 또한, 기존 RDBMS에 존재하던 데이터를 HDFS로 옮겨 처리할 수 있게 되었다. 그렇기 때문에 스쿱은 기존 데이터 베이스와 하둡 사이의 연결고리라고 표현할 수 있다.
스쿱의 역할은 딱 저 위의 한 문장으로 기억해두면 된다.
글을 읽는 모든 분들의 라이킷과 댓글을 환영합니다. ;-)
제가 공부하면서 정리한 내용을 바탕으로 작성했기 때문에 내용에 부족함이 있을 수 있습니다.
보완해야 할 점이나 부정확한 내용이 있다면 댓글로 많은 조언 부탁드립니다.
Copyright 2018. April all rights reserved.