-
[Embulk] Embulk란? Embulk설치하고 기본 실행해보기데이터 엔지니어링/Embulk 2022. 8. 18. 22:26반응형
Embulk란?
- 데이터 소스간 대용량 데이터 전송 오픈소스 솔루션이다. Sqoop과 같은 역할을 한다.
- 데이터 소스, 스토리지 , 파일 포맷 클라우드 서비스 등 플러그인을 지원한다.
- JDBC를 이용하여 뭉뜬그려서 DB에 접속하고 데이터 이동이 가능하지만,
- 플러그인 형으로 진행한다. 플러그인 없으면 조금 힘들다. Embulk github에 많은 플러그인들이 배포되어있으며 현재도 개발중에 있다.
Embulk 특징
- 데이터의 병렬 로딩을 수행할 수 있다.
- Embulk 스크립트로 부터 쿼리를 읽어 Transaction단위로 작업을 생성한다.
- Transaction을 지정한 Thread 수만큼 task를 나누어 독립적으로 수행한다.
- Thread로 task를 진행하기 때문에 resource의 관리에 신경을 써야한다.
- 설치가 굉장히 간단하며 플러그인 형태로 되어있어 운영도 쉬운 편이다.
- Yaml 파일을 작성하여 Input, output으로 쉽게 로직을 구현할 수 있다. Bash명령어로 쉽게 Yaml파일을 동작하여 진행한다.
Embulk 설치하기 및 기본 사용해 보기
MacOS, linux는 설치 방법이 동일하고 windows만 좀 다르다. 그리고 example 실행하는 방법또한 나와있다.
Embulk는 java로 되어져 있는 오픈 소스 툴이기 때문에 java가 깔려 있어야 한다 홈페이지에 stable버전 v0.9.24는 java 8에서 사용하고 9부터는 아직 지원하지 않는단다
Centos7으로 진행
# upgrade 먼저 진행 sudo yum -y upgrade
Java 설치 리스트 확인
yum list java*jdk-devel
Java 8 설치
sudo yum install java-1.8.0-openjdk-devel.x86_64
Java 설치 확인
java -version
Embulk 설치
curl --create-dirs -o ~/.embulk/bin/embulk -L "<https://dl.embulk.org/embulk-latest.jar>" chmod +x ~/.embulk/bin/embulk echo 'export PATH="$HOME/.embulk/bin:$PATH"' >> ~/.bashrc source ~/.bashrc
Embulk 버전 확인
embulk -version
Embulk example 파일 만들기
embulk example ./try1
위에 보면 try1폴더가 생기고 그안에 seed와 sample csv파일이 생긴 것을 볼 수 있다. seed.yml을 확인해 보면 아래와 같이 path_prefix 속성을 이용하여 /root/./try1/csv/sample_ 로 되어있는 것은 다 바라 본다는 의미이다. out은 stdout으로 로그로 보여 준다.
Embulk 실행 전 guess로 기본 포맷 자동 채우기
embulk guess ./try1/seed.yml -o config.yml
seed.yml을 돌리기에는 정보가 부족하기 짝이 없기 때문에 guess명령어로 잘 실행 될 수 있도록 형태를 변경한다. 그럼 config.yml파일이 생성이 되면아 아래와 같은 내용이 입력되어있는 것을 볼 수 있다.
Embulk preview config.yml
어떻게 나올지 preview로 먼저 볼 수 있다.
embulk preview config.yml
Embulk run
실행 시켜보면 콘솔에 데이터가 잘 나오는 것을 알 수 있다.
embulk run config.yml
Embulk 플러그인 설치
input과 output 소스를 맞춰 주어야 하는데 embulk는 플러그인으로 사용한다고 했다. 그래서 플러그인을 다운 받아야 하는데 embulk 명령어가 존재 한다.
# 필요한 플러그인은 [plug-in] 부분에 넣어서 설치를 합니다 embulk gem install [plug-in] # 설치할 수 있는 플러그-인 리스트를 확인합니다 embulk gem list
mysql이나 postgre등은 다음 기회에....
반응형'데이터 엔지니어링 > Embulk' 카테고리의 다른 글
[Embulk] yml 파일 작성 형식 알아보기 Liquid template 이용하여 yml 파일안에서 변수 사용하기 (0) 2022.08.30 [Embulk] Embulk plugin 사용법 및 MySQL to PostgreSQL 패턴 만들기 (0) 2022.08.21