에코프로.AI

[Cloud] 빅데이터 Pipeline 아키텍쳐 본문

AI Foundation

[Cloud] 빅데이터 Pipeline 아키텍쳐

AI_HitchHiker 2025. 2. 20. 12:20

[출처] https://media2.dev.to/dynamic/image/width=1600,height=900,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftr15aup9pz7k6n3tlm0q.png

 

실제 세계에서 빅데이터 분석, 데이터 과학 및 머신 러닝(ML) 애플리케이션을 배포하기 위해 분석 튜닝 및 모델 학습은 작업의 약 25%에 불과합니다. 약 50%의 노력은 분석 및 ML을 위해 데이터를 준비하는 데 사용됩니다. 나머지 25%의 노력은 통찰력과 모델 추론을 대규모로 쉽게 사용할 수 있도록 만드는 데 사용됩니다. 빅데이터 파이프라인은 이 모든 것을 하나로 모읍니다.  장기적인 성공은 데이터 파이프라인을 올바르게 만드는 데 달려 있습니다.

 

데이터 파이프라인의 바람직한 엔지니어링 특성은 다음과 같습니다.

  • 접근성: 가설 평가 및 모델 실험을 위해 데이터 과학자가 데이터에 쉽게 접근할 수 있어야 하며, 이는 바람직하게는 쿼리 언어를 통해 가능합니다.
  • 확장성: 수집된 데이터 양이 늘어나도 그에 맞춰 확장할 수 있는 능력이며, 동시에 비용은 낮게 유지합니다.
  • 효율성: 비즈니스 목표를 충족시키기 위해 지정된 지연 시간 내에 데이터와 머신 러닝 결과가 준비됩니다.
  • 모니터링: 잠재적인 비즈니스 위험에 대한 사전 대응에 필요한 데이터와 파이프라인의 상태에 대한 자동 알림입니다.

데이터 처리 파이프라인의 단계

빅데이터 파이프라인은 5단계로 구성됩니다.

  • 내부 및 외부 소스에서 데이터를 수집합니다
    . 데이터 소스(모바일 앱, 웹사이트, 웹 앱, 마이크로서비스, IoT 기기 등)는 관련 데이터를 수집하도록 계측됩니다.
  • 일괄 작업 또는 스트림을 통해 데이터를 수집합니다 .
    계측된 소스는 데이터를 다양한 인렛 포인트(HTTP, MQTT, 메시지 큐 등)로 펌핑합니다. Google Analytics와 같은 서비스에서 데이터를 가져오는 작업도 있을 수 있습니다. 데이터는 일괄 블롭과 스트림의 두 가지 형태가 될 수 있습니다.
  • 데이터 레이크 또는 데이터 웨어하우스에 저장합니다
    . 원시 데이터/이벤트는 종종 데이터 레이크에 저장되고, 정리되고, 중복 및 이상은 제거되고, 스키마에 맞게 변환됩니다. 마지막으로, 이 소비 준비가 된 데이터는 데이터 웨어하우스에 저장됩니다.
  • 분석 집계 및 ML 기능을 계산합니다
    . 여기서 분석, 데이터 과학 및 머신 러닝이 발생합니다. 계산은 일괄 처리와 스트림 처리의 조합일 수 있습니다. 모델과 통찰력(구조화된 데이터와 스트림 모두)은 데이터 웨어하우스에 다시 저장됩니다.
  • 대시보드, 데이터 과학 및 ML에서 사용하세요
    . 통찰력은 대시보드, 이메일, SMS, 푸시 알림 및 마이크로서비스를 통해 제공됩니다. ML 모델 추론은 마이크로서비스로 노출됩니다.

데이터 레이크 대 데이터 웨어하우스

데이터 레이크는 일반적으로 블롭이나 파일로 수신된 자연/원시 형태의 모든 데이터를 포함합니다. 

데이터 웨어하우스 는 카탈로그 및 스키마와 함께 정리되고 변환된 데이터를 저장합니다.

데이터레이크와 데이터웨어하우스의 데이터는 구조화된(관계형), 반구조화된, 바이너리 및 실시간 이벤트 스트림 등 다양한 유형이 될 수 있습니다.

데이터레이크와 데이터웨어하우스가 물리적으로 다른 매장에 보관되는지, 아니면 데이터웨어하우스가 데이터레이크를 통한 어떤 종류의 인터페이스(예: 하이브 쿼리)를 통해 구체화되는지는 선택의 문제입니다. 선택은 속도 요구 사항과 비용 제약에 따라 결정됩니다.

어떤 접근 방식을 따르든 감사, 테스트 및 디버깅 목적으로 원시 데이터를 보관하는 것이 중요합니다.

 


탐색적 데이터 분석

탐색적 데이터 분석(EDA)의 역할은 데이터 세트를 분석 및 시각화하고 가설을 수립하는 것입니다. 수집된 데이터의 격차를 드러내고, 새로운 데이터 수집과 실험으로 이어지며, 가설을 검증할 수 있습니다. 전체 데이터 세트에서 비교하고 조정하는 유망한 모델 몇 가지에 집중하는 소규모 ML 실험이라고 생각하면 됩니다. 카탈로그, 스키마, 쿼리 언어를 통한 접근성을 갖춘 잘 관리된 데이터 웨어하우스가 있으면(프로그램을 작성할 필요 없이) 신속한 EDA가 용이해집니다.


빅데이터 파이프라인 아키텍처

다양한 성능과 비용 트레이드오프를 제공하는 여러 가지 아키텍처 선택이 있습니다(첨부된 이미지의 옵션과 동일). 기술적으로 가장 좋은 옵션이 반드시 프로덕션에서 가장 적합한 솔루션은 아니라는 것을 알게 되었습니다. 요구 사항을 신중하게 검토해야 합니다.

  • 실시간 인사이트 또는 모델 업데이트가 필요한가요?
  • 귀하의 애플리케이션의 오래됨 허용 범위는 얼마입니까?
  • 비용적 제약은 무엇입니까?

이러한 질문에 대한 답변을 바탕으로 처리량과 지연에 대한 요구 사항에 맞게 Lambda 아키텍처 에서 배치와 스트림 처리를 균형 있게 조정해야 합니다 . Lambda 아키텍처는 세 개의 계층으로 구성됩니다.

  • 배치 계층: 높은 처리량, 포괄적이고 경제적인 맵리듀스 배치 처리를 제공하지만 대기 시간이 더 길다.
  • 속도 계층: 저지연 실시간 스트림 처리를 제공하지만 비용이 많이 들고 데이터 볼륨이 많을 때 메모리 제한을 초과할 수 있습니다.
  • 제공 계층: 고처리량 일괄 처리의 출력은 준비가 되면 스트림 처리의 출력과 병합되어 미리 계산된 뷰나 임시 쿼리의 형태로 포괄적인 결과를 제공합니다.

람다 아키텍처의 기본 가정은 소스 데이터 모델이 추가 전용 이라는 것입니다 . 즉, 수집된 이벤트는 타임스탬프가 찍히고 기존 이벤트에 추가되며, 절대 덮어쓰지 않습니다.

빅데이터 파이프라인 아키텍처: 배치 계층은 갈색, 속도 계층은 주황색이며, 두 계층은 마지막 단계의 제공 계층에서 결합됩니다. [출처] https://www.ml4devs.com/images/illustrations/big-data-pipeline-architecture.webp

 

이 외에도 파이프라인 전체에 다음과 같은 측면이 있습니다.

  • 오케스트레이션(Orchestration) : 데이터 파이프라인은 복잡하며 방향성 비순환 그래프(DAG)를 형성하는 여러 부분이 있습니다. 파이프라인 오케스트레이션은 이러한 부분이 올바른 순서로 실행되도록 하는 것입니다. 부분에 필요한 모든 입력은 분리 실행되기 전에 이미 계산되어야 합니다.
  • 데이터 품질 (Data Quality): 데이터 파이프라인의 각 부분에서 필요한 통계적 분포, 이상치, 이상치 또는 기타 테스트를 확인합니다.
  • 카탈로그 (Catalog) : 데이터 카탈로그는 다양한 데이터 자산(예: 데이터 웨어하우스의 테이블, 데이터 레이크의 이벤트, 메시지 큐의 토픽)에 대한 컨텍스트를 제공합니다. 데이터 엔지니어와 데이터 과학자가 더 잘 이해할 수 있도록 데이터 자산의 메타데이터와 스키마를 생성하고 관리합니다.
  • 데이터 거버넌스 (Governance) : 데이터의 보안, 익명성, 정확성, 가용성을 보장하기 위해 데이터 수명 주기 전반에 걸쳐 따라야 하는 정책 및 프로세스입니다.

오픈소스 스택을 사용한 데이터 파이프라인 구축

다음 그림은 빅데이터 파이프라인의 모든 단계를 구체화하기 위해 오픈소스 기술을 사용하는 아키텍처를 보여줍니다. 준비 및 계산 단계는 종종 병합되어 계산 비용을 최적화합니다.

오픈 소스 기술을 사용하여 데이터 처리 파이프라인 구축 [출처] https://www.ml4devs.com/images/illustrations/big-data-pipeline-architecture-on-cloud.webp

 

 

빅데이터 아키텍처의 핵심 구성 요소와 기술 선택은 다음과 같습니다. 

  • 데이터를 수집하고 결과를 제공하기 위한 HTTP/MQTT 엔드포인트. 
    이를 위한 몇 가지 프레임워크와 기술이 있습니다. 
  • 대용량 스트리밍 데이터 수집을 위한 Pub/Sub 메시지 큐. 현재 사실상의 표준은 Kafka입니다. 
    높은 이벤트 수집 속도에 맞게 확장할 수 있는 성능이 입증되었습니다. 
  • 데이터 레이크(및 데이터 웨어하우스)를 위한 저비용 대용량 데이터 저장소로
    Hadoop HDFS 또는 AWS S3와 같은 클라우드 가 있습니다.
  • 블롭 스토리지 쿼리 및 카탈로그 인프라 데이터 레이크를 데이터 웨어하우스로 
    변환하기 위한 쿼리 언어 선택으로 Apache Hive가 널리 사용되고 있습니다.
  • 처리량이 많은 처리를 위한 Map-Reduce 배치 컴퓨팅 엔진(예: Hadoop Map-Reduce, Apache Spark)
  • 지연 시간에 민감한 처리를 위한 스트림 컴퓨팅(예: Apache Storm, Apache Flink). 
    데이터 흐름 계산을 작성하기 위한 선택으로 Apache Beam이 떠오르고 있습니다. 
    Spark 배치 러너 또는 Flink 스트림 러너에 배포할 수 있습니다. 
  • 데이터 과학 및 ML을 위한 머신 러닝 프레임워크로 Scikit-Learn, TensorFlow, PyTorch가 
    머신 러닝을 구현하는 데 널리 사용됩니다. 
  • 결과 저장을 위한 지연 시간이 짧은 데이터 저장소는
    데이터 유형과 사용 사례에 따라 잘 정립된 SQL과 NoSQL 데이터 저장소가 많이 있습니다. 
  • 배포 오케스트레이션 옵션은 Hadoop YARN, Kubernetes / Kubeflow입니다. 
    규모와 효율성은 다음 레버로 제어됩니다: 
  • 처리량은 수집의 확장성에 따라 달라집니다(즉.예: REST/MQTT 엔드포인트 및 메시지 큐), 
    데이터 레이크 저장 용량, 맵 리듀스 배치 처리. 
  • 지연 시간은 계산 결과를 저장하는 데 사용되는 메시지 큐, 스트림 컴퓨팅 및 데이터베이스의 효율성에 따라 달라집니다.

AWS, Azure 및 Google Cloud의 클라우드 데이터 파이프라인

서버리스 컴퓨팅 의 등장으로 DevOps를 피하면서 빠르게 시작할 수 있습니다. 아키텍처의 다양한 구성 요소를 선택한 클라우드 서비스 공급자의 서버리스 대응 제품으로 대체할 수 있습니다.

Amazon Web Services , Microsoft Azure , Google Cloud Platform(GCP) 의 일반적인 클라우드 데이터 파이프라인이 아래에 나와 있습니다. 각각은 이전 섹션에서 설명한 일반적인 빅데이터 파이프라인 아키텍처와 긴밀하게 매핑됩니다. 이를 참조하여 필요에 맞는 기술을 선별할 수 있습니다.

Amazon Web Services(AWS), Microsoft Azure, Google Cloud Platform(GCP)의 클라우드 데이터 파이프라인 [출처] https://www.ml4devs.com/images/illustrations/big-data-pipeline-v2022.webp

 

 

[참고사이트 - 1] https://www.ml4devs.com/en/articles/scalable-efficient-big-data-analytics-machine-learning-pipeline-architecture-on-cloud/