-
[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
Pluggable, Multi-source/destination, Open-sourced Bulk Data Loader to/from databases, storages, file formats, cloud services, ...
www.embulk.org
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