데이터 파이프라인의 개념

ggydo59·2023년 3월 20일
0

빅데이터지식

목록 보기
1/1

데이터 파이프라인의 정의

다양한 데이터 소스에서 Raw data를 수집한 다음 분석을 위해서 데이터 레이크 or 데이터레이크하우스와 같은 저장소로 이전하는 방법.
일반적으로는 데이터 전처리과정을 거쳐서 저장하며, 적절한 데이터 통합과 표준화를 보장하는 필터링, 마스킹, 집계와 같은 데이터 변환이 요구됩니다.
Data set이 RDB일 경우 이 과정이 더욱 중요하며, 이 유형의 데이터 저장소에는 기존 데이터를 새 데이터로 업데이트하기 위해 정렬이 필요한 정의된 스키마가 있습니다.

데이터 파이프라인은 데이터사이언스 프로젝트 or 비즈니스 인텔리전스 대시보드에 대한 파이프 역할을 수행하며 데이터는 API, SQL, NoSQL, 파일 등의 다양한 위치에서 가져올 수있지만, 이러한 데이터들은 바로 사용할 수 없습니다.

일반적으로 데이터 준비작업은 비즈니스의 요구사항에 맞추어 데이터 사이언티스트나 엔지니어가 책임지며, 데이터 파이프라인에 필요한 데이터 처리 유형은 보통 탐색형 데이터 분석과 정의된 비즈니스 문제에 의해 결정됩니다.

💡 체계적인 파이프라인은 데이터 프로젝트의 기반이 되며 EDA, 머신러닝, 데이터 시각화가 포함될 수 있습니다.

  • ETL 파이프라인 예

데이터 파이프라인의 유형

  1. 일괄처리 (batch processing)
  2. 스트리밍데이터 (streaming data)

📌 일괄처리

일괄 처리의 개발은 안정적이고 확장 가능한 인프라를 구축하는데 중요한 단계였습니다.
2004년 일괄 처리 알고리즘인 MapReduce는 특허 등록 후 Hadoop, CouchDB, MongoDB와 같은 오픈 소스 시스템에 통합되었습니다.

💡 MapReduce는 한 컴퓨터에서 수행할 작업을 여러 컴퓨터에 분산시켜 작업을 수행하는 프로그래밍 모델을 의미합니다.
map() 함수는 분할한 데이터를 가공하고,
reduce() 함수는 가공한 데이터를 병합하는 역할을 수행합니다.

이름에서 알 수 있듯이 일괄 처리는 미리 설정된 시간 간격 동안 저장소에 데이터의 “묶음(batch)”을 로드하며, 일반적으로 사용량이 적은 업무 시간에 예약이 됩니다.
이렇게 하면 대용량 데이터에 대한 작업으로 전체 시스템을 부담을 줄 수 있는 일괄 처리 작업이 다른 워크로드에 미치는 영향을 최소화할 수 있습니다.
일괄처리는 보통 특정 데이터 세트를 즉시 분석할 필요가 없을 때 최적의 데이터 파이프라인이며, “추출, 변환, 로드”를 의미하는 ETL 데이터 통합 프로세스와 더 관련이 있습니다.

일괄 처리 작업은 한 명령이 출력이 다른 명령의 입력이 되는, 즉 순차적으로 설계한 파이프라인을 따라 명령이 수행되는 시퀀싱된 워크 플로우를 형성합니다.
예를 들어 데이터를 수집을 시작하는 명령의 결과물, 출력은 특정 열을 트리거하게 되고, 그 다음 명령을 이어서 집계를 처리하거나 다양한 명령을 처리할 수 있게됩니다.
이 순차적인 명령 처리는 데이터저장소에 데이터가 저장될 때 까지 진행하게 됩니다.

📌 스트리밍 데이터

일괄 처리와 다르게, 스트리밍 데이터는 데이터를 지속적으로 업데이트해야 할 때 활용됩니다.
예를 들면 앱이나 POS(Point of Sale) 시스템은 제품의 재고와 판매 내역을 업데이트 하려면 실시간 데이터가 요구되는데, 그래야 판매자가 고객들에게 재고현황을 공유할 수 있기 때문입니다.
이렇게 제품판매와 같은 단일 작업은 “Event”로 여겨지고, 결제수단 추가와 같은 이벤트는 일반적으로 “Topic”or “Streaming”으로 그룹화가 됩니다.
그런 다음에 이러한 이벤트는 오픈 소스 오퍼링인 Apache Kafka와 같은 메시징 시스템 or 메세지 브로커를 통해 전송됩니다.

💡 Apache kafka는 Linkedin에서 개발된 분산 메세징 시스템으로, 2011년에 오픈 소스로 공개하였습니다.
대용량의 실시간 로그처리에 특화된 구조 설계를 통해서 기존 메세징 시스템보다 우수한 성능을 보여주었습니다.

데이터 이벤트는 발생한 직후에 처리 되기 때문에 처리 시스템의 지연 시간이 배치 시스템보다 짧지만, 메세지가 의도치 않게 삭제되거나 대기열에서 오래 대기할 수 있는 가능성이 있어서 배치 시스템보다 불안정한 편에 속합니다.
메세지 브로커, 메시징 시스템은 수신 확인을 통해 이 문제를 해결하도록 도움을 주는데 이용자는 브로커에게 확인시켜 대기열에서 메세지의 처리를 결정합니다.


데이터 파이프라인의 구조

기본 데이터 파이프라인

💡 데이터파이프 라인의 구조는 세 가지의 핵심 단계로 구성됩니다.
1. 데이터 수집 : Extraction
2. 데이터 변환 : Transform
3. 데이터 저장 : Load

📌 데이터 수집

데이터는 다양한 소스에서 수집되며 이러한 스트리밍 Raw data 소스는 일반적으로 생성자, 발행자, 발신자로 알려져 있습니다. 기업은 데이터 처리 준비가 된 경우에만 추출하도록 선택할 수도 있지만, 이러한 가공되지 않은 데이터를 먼저 저장소내에 배치하는 것이 좋습니다.
왜냐하면, 이러한 방식을 선택하면 데이터 처리 방식을 바꿀경우, 과거 데이터를 모두 반영하여 새롭게 업데이트 할 수 있기 때문입니다.

📌 데이터 변환

데이터를 처리하고 변환하는 단계입니다. 이러한 작업에는 비즈니스 보고와 같은 반복적인 작업 흐름에 대한 자동화와 거버넌스가 포험되어 있어서 데이터를 일관되게 정리하고 변환을 해줍니다.
예를 들면 Json 형식이 있으며, 데이터 변환 단계의 목표는 분석을 위한 핵심 필드(정보)를 추출하기 위해서 해당 Json 데이터를 unroll하는 과정을 의미합니다.

📌 데이터 저장

Json에서 unroll된 데이터는 다양한 이해 관계자들에게 보여지는 데이터 저장소에 저장되고 스트리밍 데이터에서 이 변환된 데이터는 일반적으로 이용자, 구독자 or 수신자가 포함되어 있습니다.


데이터 파이프라인, ETL 파이프라인의 개념비교

데이터 파이프라인은 ETL 파이프라인과 대화에서 같은 개념으로 사용되기도 하지만, 엄밀히는 ETL 파이프라인은 데이터 파이프라인의 하위 개념입니다.

  1. ETL파이프라인은 특정 순서를 따릅니다.

    Extract, Transform, Load의 순서를 따르게 되며, 모든 데이터 파이프라인이 이 순서를 지킬 필요는 없습니다. 실제로는 ETL파이프라인은 클라우드 네이티브 도구의 출현으로 더욱 대중화 되었으며, 이 유형의 파이프 라인에서는 여전히 데이터 수집이 먼저 발생하지만, 변환은 데이터가 저장된 후에 적용되기도 합니다. 다시말해 ELT의 순서로도 진행됩니다.

  2. ETL 파이프라인은 일괄처리의 사용을 의미하는 경향이 있지만, 데이터 파이프라인의 범위는 더 넓습니다. 따라서 스트림 처리도 포함이 됩니다.

  3. 정리하면 데이터 파이프라인은 데이터 분석가나 필요한 조직에 적시에 제공하기 위해 빅데이터의 수집 및 가공 구축의 데이터 처리 프로세스 모두를 의미하며, ETL의 상위 개념으로써 데이터의 이동 및 서비스 활용에 초점을 두고 있습니다.
    ETL은 데이터에 변환에 초점을 둔 프로세스입니다.

  • ETL 예시
  • 데이터 파이프라인과 ETL의 비교 Table
    구분데이터 파이프라인ETL
    장점• 표준화된 일련의 프로세스로 다양한 서비스에 복제/재사용 편리, 실시간/대량의 빅데이터 환경에 유리• 다양하고 복잡한 변환 수행, 데이터 통제 유리, 시각화 편리
    단점• 고급 ETL 실행 어려움, 기본 변환 및 편집 수준• 실시간 처리 부적합, 불필요한 대기시간 발생
    활용• 빅데이터, 실시간, 배치• 배치
    사례• 실시간분석, 예측분석• 새로운 서비스, 확장• DW구축, 데이터 집중화, 표준화, Data Silo간 이동

참고

profile
데이터엔지니어입니다.

0개의 댓글