'ETL'에 해당되는 글 1건

  1. 2015.03.23 Hadoop의 ETL처리에 대해
ETL2015. 3. 23. 18:20

Hadoop의 ETL처리에 대해 생각을 해보자.


Hadoop을 접하기 전부터 BI개발을 해온 입장에서 Hadoop에서는 기존 BI의 ETL툴 (Informatica, ssis, data integration, data manager등) 같은게 없을까 고민해 왔다. 

Hadoop에도 Pig, Hive을 이용해 ETL 처리를 할 수는 있지만 생산성이나 유지 보수성이 떨어진다.

간단한 집계정도야 상관이 없지만, 조금만 복잡한 집계를 할 경우에는 쉽게 해결 되지 않는다.


솔직히 로그 데이터가 아닌 이상 (로그 데이터 이외는 RDBMS 데이터가 대부분) ETL 툴로 처리 하는 것이 Hadoop으로 하는 것보다 훨씬 빠르다. 로그 데이터도 몇천만건 이상일 경우에 해당된다.

하둡은 정말 대용량 데이터 처리에 맞는다고 할 수 있다. 어느 정도 부터를 대용량이라고 볼 것인가..빅데이터라고 할 수 있는것인가? 이 대용량 라는 말의 정의가 정확하지 않다는 점이 함정이긴 하지만...

군대에서 삽질좀 했던 경험을 바탕으로 표현을 하자면...

기존의 ETL툴은 삽이고 하둡은 포크레인이라고 말하고 싶다. 삽질 죽어라 해도 끝나지 않는 양은 포크레인으로 하는것이고

삽질 몇번으로 끝날걸 굳이 포크레인으로 하면 더 느릴 뿐이다. (오버헤드가 더 걸릴 뿐 )


그럼 보통 군대에서 삽질로 감당이 안되는 작업을 어떻게 했던가?

먼저 큼지막한 작업은 포크레인으로 하고 어느정도 진행되면 나머지 자잘한 작업이나 나라시작업은 삽으로 마무리 짓는다.


하둡에서도 이와 비슷한식으로 작업을 하면 되지 않을까?

대량의 데이터를 Pig나 Hive를 이용하여 1차 집계를 한다. 그렇게 하면 어느정도 데이터가 확 줄어든다.

그럼 그 데이터를 RDB로 옮긴 후에 복잡한 집계 처리는 ETL툴로 하면 효율적이다.

물론 1차 집계에서 데이터가 줄어들지 않는 경우도 있고, 일부 용량이 큰 마스터 테이블을 참조해서 집계를 해야할 경우는

예외가 된다.

하지만 웬만한 집계를 이렇게 하는 것이 훨씬 더 효율적이라고 할 수 있겠다.


요것은 Hadoop의 ETL처리에 관한 Intel의 기사

https://software.intel.com/sites/default/files/article/402274/etl-big-data-with-hadoop.pdf

ETL의 중요성에 대해 언급한 국내 기사

http://www.comworld.co.kr/news/articleView.html?idxno=47694


[추가]
Hadoop의 ETL툴로써 syncsort(http://www.syncsort.com)라는 것이 있다.
Hadoop의 데이터 노드 마다 설치를 하여 분산 ETL 처리가 가능하다고 한다.

상용툴이며 노드당 라이센스 비용이 발생하므로 오픈소스만으로 구성된 Hadoop Ecosystem에 도입하기에는 

진입장벽이 높을 거 같다.


Posted by 유나아빠