ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [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등은 다음 기회에.... 

    반응형

    댓글

Designed by Tistory.