데이터를 빠르게 처리할 수 있는 DWH(데이터 웨어하우스)와의 통합 및 이를 통해 BI 도구로 데이터를 시각화하는 데이터 분석 기반을 구축할 때 핵심 키워드는 ETL입니다.
데이터 분석을 처음 시도하는 분들은 먼저 ETL에 대한 기초를 다루는 자료를 참고하면 Embulk에 대한 이해를 높이는 데 도움이 됩니다.
ETL을 수행하는 방법은 크게 세 가지로 나눌 수 있습니다:
이번에는 세 번째 방법인 ETL 프레임워크 중 하나인 Embulk를 소개합니다.
데이터 분석 기반 구축을 고려 중인 분들은 꼭 참고해 보세요.
Embulk는 트레저 데이터(Treasure Data) 주식회사가 제공하는 오픈소스 ETL 도구로, 자체적으로 모든 서비스 전송을 기본 지원하는 것이 아니라, 필요에 따라 전송 원본 및 대상에 맞는 플러그인을 추가하여 ETL 작업을 수행합니다.
Embulk는 Windows, macOS, Linux에서 모두 사용 가능하며, 모든 환경에서 커맨드라인(CLI) 도구로 동작합니다.
Embulk는 오픈소스 도구로, GitHub에서 소스 코드를 확인할 수 있습니다. 또한, 입력용(Input) 및 출력용(Output) 플러그인은 다른 사용자들이 개발한 것을 여기서 다운로드하여 활용할 수 있습니다.
Embulk를 설치하고 필요한 플러그인을 인스톨한 후에는, 수행할 ETL 작업을 YAML 형식의 파일에 작성합니다.
YAML에 대한 자세한 설명은 생략하지만, 간단히 말해 HTML이나 XML처럼 구조를 텍스트로 표현하는 기법입니다. Embulk는 복잡한 코딩이나 API를 사용할 필요 없이, YAML 파일로 ETL 설정을 정의하면 이를 기반으로 데이터 전송을 실행합니다.
Embulk는 오픈소스 소프트웨어로, 도입 비용이 무료입니다. 또한, 기존 플러그인을 활용하거나 YAML 형식의 파일만 작성하면 데이터 전송이 가능하다는 점이 특징입니다. 특히, Digdag와 같은 워크플로 엔진과 조합하면, 한 번 구축한 데이터 파이프라인(Raw 데이터가 ETL을 거쳐 활용될 때까지의 데이터 흐름)을 자동으로 운영할 수 있습니다.
그러나 Embulk는 커맨드라인에서 동작하는 도구이기 때문에, 엔지니어링 지식이 없는 사람에게는 초기 도입 단계부터 진입 장벽이 높습니다.
Embulk는 YAML 파일을 작성하는 것만으로 데이터 전송이 가능하지만, 그만큼 모든 설정을 YAML 파일에 작성해야 합니다. 이 때문에 단순한 전체 데이터 전송은 문제가 없더라도, 검색 조건을 활용한 필터링 전송이나 데이터 전송과 동시에 데이터 변환 작업을 수행하는 복잡한 ETL은 엔지니어에게도 상당한 난이도를 요구합니다.
또한, Embulk를 활용한 ETL 환경을 구축하더라도, 전송 원본 및 전송 대상 서비스의 사양 변경으로 인해 전송 에러가 발생할 가능성이 있습니다. 이러한 사양 변경으로 기존 플러그인이 작동하지 않게 되면, 사용자가 직접 해결할 수 없는 문제가 발생할 수 있습니다. 이로 인해 ETL 환경의 운영 및 유지보수에는 상당한 비용이 소요될 수 있습니다.
저희 회사에서는 SaaS 버전의 Embulk라고도 할 수 있는 데이터 분석 기반 구축 서비스 TROCCO®를 제공합니다.
TROCCO®는 내부 엔진으로 Embulk를 채택하고 있으며, 다음과 같은 기능들을 제공합니다:
TROCCO®는 단순히 사용하기 쉽게 개선된 Embulk 서비스에 그치지 않고, ETL을 포함한 데이터 분석 기반의 구축 및 운영을 종합적으로 지원하는 강력한 도구입니다.
지금까지 살펴본 바와 같이, Embulk 도입은 비(非) 엔지니어는 물론, 복잡한 ETL 작업의 경우 엔지니어에게도 약간 어려운 측면이 있는 것이 현실입니다.
ETL 도구를 도입하고 싶지만 Embulk 사용이 어렵다고 판단되는 경우, 이러한 SaaS형 ETL 도구를 활용하는 것도 하나의 방법이 될 수 있습니다.
ETL 도구인 Embulk의 사용법과 난관들에 대해 간단히 설명했습니다.
데이터 분석 및 분석 과정에서 ETL의 중요성은 점점 더 높아지고 있습니다. Embulk와 같은 오픈소스 도구를 활용하면 무료로 ETL 작업을 수행할 수 있으니, 도입을 고려해 보시는 것도 좋습니다.
다만, Embulk 도입이 어렵거나 직접 데이터 분석 기반을 구축하고 싶지만 어려움을 느끼는 경우, 앞서 언급한 SaaS형 ETL 도구를 활용하는 것이 효과적일 수 있습니다.
TROCCO®는 ETL/데이터 전송, 데이터 마트 생성, 작업 관리, 데이터 거버넌스 등 데이터 엔지니어링 영역을 폭넓게 지원하며, 분석 기반의 구축 및 운영을 도와주는 SaaS 도구입니다.
TROCCO®에 대해 더 알고 싶으시다면, 아래에서 자료를 확인해 보세요.