부제: Working with Pipeline with StreamSets.
- Pipeline 에 대해
“파이프 라인(Pipeline) 이
뭐죠?”
데이터 관련 프로젝트를 진행 하다 보면 간혹 위와 같은 질문을 받곤 합니다.
분명 알고 있긴 한데……어떻게 설명하는 게
좋을까?
어떤 식으로 이야길 해야 쉽게 이해가 될까..
항상 많은 고민을 하게 됩니다.
그럴 때 마다 도달하게 되는 결론은 가능한 쉽게 이야기하는 것이 서로간에 좋다는 겁니다.
우선 아래 그림을 한번 볼까요?
현실 세계의 Pipeline 들은 위 그림처럼 주로 핵심 원료의 주 이동수단으로 많이들 쓰입니다.
데이터 세상에서 Pipeline 은 집 에서 흔히 사용하는 수돗물 인프라 와 비슷한 시스템이라고 보시면 될 것 같습니다.
우리가 집에서 수돗물을 사용하기 위해서는
아래처럼,
1. 물이 있는 수원지(Origin)가 존재해야 하고,
2. 수원지에서 물을 끌어온 후 정수(Process)
과정을 거쳐,
3. 최종 사용자인 집(Destination) 에서 사용 하듯이,
데이터도 마찬가지로
1. 원 데이터가 있는 소스(Origin) 가 있으며,
2. 데이터 가공(Process) 과정을 거쳐,
3. 최종 사용자인 도메인 저장소(Destination) 에 적재 됩니다.
위의 것들을 관리하는 Tool 을 통틀어 Data Pipeline 이라고도 합니다.
위 그림의 예처럼 간단하게 만들어진
1차원적인 Pipeline 이 있는 반면,
위처럼 복잡한 Pipeline 도 있을 수 있습니다.
Pipeline 소프트웨어는 현재 전세계에 있는 많은
데이터 과학자(Scientists) 들과 아키텍트(Architects),
그리고 엔지니어(Data Engineer) 들에게 있어 선택이 아닌 필수가 되어 가고 있죠.
그 중 상용 솔루션도 쓸만한 게 있긴
하지만(…정말?) 대부분 고가 이고, 특정 기능과
도메인에 최적화 되어있어서 범용적으로 사용하기엔 무리가 있는 게 사실입니다.
특히 빅데이터 시장에서는 오픈소스인 Hadoop 이
전세계 Data 시장을 바꿔놓은 것처럼 상용 S/W 회사들이 하루가
다르게 쏟아져 나오는 오픈 소스의 Volume 과 트렌드를 따라잡기 쉽지 않은 것이 현실입니다.
Pipeline 은
또한, 수많은 데이터의 정제/가공
과정을 거쳐 유의미한 데이터를 추출해 내고, (Extract)
그것을 분석 하고 변환하여 각자의 도메인에 맞게 출력 하거나(Transform),
또 다른 데이터의 입력으로 사용(Load)
하는데도 많이 쓰입니다.
이런 복잡한 데이터 작업을 지속적으로 하다 보면 전문적인
관리 Tool 이 필요하게 마련입니다.
바로 Pipeline 이
필요한 이유죠.
ü
Open
Sources
아시는 분은 잘 아시겠지만, 현재 오픈 소스로
되어있는 Pipeline S/W 중 가장 많이 사용하는 것은 아래처럼,
l Apache
NiFi
l StreamSets
2개의 S/W 가 전세계 오픈 소스 시장을 양분하고 있습니다. (2018년 8월, 사용자 기준)
각각의 솔루션들은 저마다의 장/단점이 있으며, 둘 다 Java 로 만들어졌고, Apache
license 를 통해 무료로 사용 가능합니다.
제가 여러분들에게 소개하고자 하는 것은
StreamSets 입니다.
NiFi 보다
늦게 세상에 나왔지만, 강력한 Pipeline 관리 기능과 편리한 GUI, 손쉬운 트러블 슈팅 등으로 전세계 Data 관련 종사자들에게 사랑을
듬뿍 받고 있는 솔루션이죠.
자. 서론이 길었으니, 본론으로 들어가도록 해봅시다.
StreamSets 을
이용하여 데이터엔지니어스랩에서 분산처리 하여 적재하고 있는 수많은 크롤링 데이터를 Pipelining 하여
Hive Streaming 과 연동 시켜보겠습니다.
전체보기
“파이프 라인(Pipeline) 이
뭐죠?”
데이터 관련 프로젝트를 진행 하다 보면 간혹 위와 같은 질문을 받곤 합니다.
분명 알고 있긴 한데……어떻게 설명하는 게
좋을까?
어떤 식으로 이야길 해야 쉽게 이해가 될까..
항상 많은 고민을 하게 됩니다.
그럴 때 마다 도달하게 되는 결론은 가능한 쉽게 이야기하는 것이 서로간에 좋다는 겁니다.
우선 아래 그림을 한번 볼까요?
현실 세계의 Pipeline 들은 위 그림처럼 주로 핵심 원료의 주 이동수단으로 많이들 쓰입니다.
데이터 세상에서 Pipeline 은 집 에서 흔히 사용하는 수돗물 인프라 와 비슷한 시스템이라고 보시면 될 것 같습니다.
우리가 집에서 수돗물을 사용하기 위해서는
아래처럼,
ü Open Sources
전체보기
1. 물이 있는 수원지(Origin)가 존재해야 하고,
2. 수원지에서 물을 끌어온 후 정수(Process)
과정을 거쳐,
3. 최종 사용자인 집(Destination) 에서 사용 하듯이,
데이터도 마찬가지로
1. 원 데이터가 있는 소스(Origin) 가 있으며,
2. 데이터 가공(Process) 과정을 거쳐,
3. 최종 사용자인 도메인 저장소(Destination) 에 적재 됩니다.
위의 것들을 관리하는 Tool 을 통틀어 Data Pipeline 이라고도 합니다.
위 그림의 예처럼 간단하게 만들어진
1차원적인 Pipeline 이 있는 반면,
위처럼 복잡한 Pipeline 도 있을 수 있습니다.
Pipeline 소프트웨어는 현재 전세계에 있는 많은
데이터 과학자(Scientists) 들과 아키텍트(Architects),
그리고 엔지니어(Data Engineer) 들에게 있어 선택이 아닌 필수가 되어 가고 있죠.
그 중 상용 솔루션도 쓸만한 게 있긴
하지만(…정말?) 대부분 고가 이고, 특정 기능과
도메인에 최적화 되어있어서 범용적으로 사용하기엔 무리가 있는 게 사실입니다.
특히 빅데이터 시장에서는 오픈소스인 Hadoop 이
전세계 Data 시장을 바꿔놓은 것처럼 상용 S/W 회사들이 하루가
다르게 쏟아져 나오는 오픈 소스의 Volume 과 트렌드를 따라잡기 쉽지 않은 것이 현실입니다.
Pipeline 은
또한, 수많은 데이터의 정제/가공
과정을 거쳐 유의미한 데이터를 추출해 내고, (Extract)
그것을 분석 하고 변환하여 각자의 도메인에 맞게 출력 하거나(Transform),
또 다른 데이터의 입력으로 사용(Load)
하는데도 많이 쓰입니다.
이런 복잡한 데이터 작업을 지속적으로 하다 보면 전문적인
관리 Tool 이 필요하게 마련입니다.
바로 Pipeline 이
필요한 이유죠.
ü Open Sources
아시는 분은 잘 아시겠지만, 현재 오픈 소스로
되어있는 Pipeline S/W 중 가장 많이 사용하는 것은 아래처럼,
l Apache
NiFi
l StreamSets
2개의 S/W 가 전세계 오픈 소스 시장을 양분하고 있습니다. (2018년 8월, 사용자 기준)
각각의 솔루션들은 저마다의 장/단점이 있으며, 둘 다 Java 로 만들어졌고, Apache
license 를 통해 무료로 사용 가능합니다.
제가 여러분들에게 소개하고자 하는 것은
StreamSets 입니다.
NiFi 보다
늦게 세상에 나왔지만, 강력한 Pipeline 관리 기능과 편리한 GUI, 손쉬운 트러블 슈팅 등으로 전세계 Data 관련 종사자들에게 사랑을
듬뿍 받고 있는 솔루션이죠.
자. 서론이 길었으니, 본론으로 들어가도록 해봅시다.
StreamSets 을
이용하여 데이터엔지니어스랩에서 분산처리 하여 적재하고 있는 수많은 크롤링 데이터를 Pipelining 하여
Hive Streaming 과 연동 시켜보겠습니다.