[DE] DataEngineering Health Pipeline


How to Design and Maintain a High-Performing Data Pipeline(feat. agoda tech)

  • 데이터 파이프라인은 다양한 원천으로부터 목표시스템까지 data flow를 관리하는데 필수적인 요소이다. Agoda BI-Infra-Ops 팀은 데이터 파이프라인의 설계, 모니터링 및 품질 보장을 위한 모범 사례에 대한 포괄적인 가이드를 제시했습니다.

What is DataPipeline

  • ETL(Extract,Transform,Load)원천으로 데이터를 추출하고, 적절한 format으로 변환 하고 target으로 적재하는 프로세스

Designing a Health Data Pipeline

  • 건강한 파이프라인은 전략적 의사결정 및 운영 효율성을 위해 데이터를 효과적으로 사용할 수 있도록 보장하는데 매우 중요
  • 건강하지 않으면, 데이터를 제 시간에 전달할 수 없거나 downstream사용자에게 데이터 문제를 일으 킬 수 있음
  • 올바르게 설계 시
    • data loss나 system downtime을 최소화하고 신뢰성을 높일 수 있음
    • 오류 처리, 데이터 복구 및 모니터링 메커니므즘을 갖추고 문제를 신속하게 감지하고 해결해야함.
    • 데이터를 훨씬 빠르고 비용 효율적으로 처리하여 데이터를 준비하는 시간을 크게 단축 가능
  • 요즘은 data requirement가 빨라지고 있어, 우리의 data pipeline 또한 이러한 변화 요구사항에 flexible 그리고 adaptable해야함. 새로운 소스, 새로운 포켓, 새로운 데이터 스키마를 effort를 덜 들이고 적용가능해야함
  • 잘 설계된 data pipeline은 증가하는 data volume 그리고 원천에대해서 중요한 퍼포먼스 감소없이 처리 가능
  • scalability은 조직이 성장하고 더 많은 데이터를 생성함에따라 중요하다.

  • 결론적으로, 여러 factor들은 health data pipeline을 형성하는데 고려되어야함

1. Data

  • 어디에 저장되는가? 데이터 동작은 무엇인가?

    2. Resource used

  • data pipeline에 할당되는 리소스의 양은 얼마인가?

    3. Partioning

  • (Hadoop에서) 테이블을 어떻게 파티셔닝해야하는가?

    4. Job Scheduling

  • data pipeline을 얼마나 자주 실행해야한느가?

    5. Data Dependency

  • pipeline이 다른 테이블의 데이터에 의존성이 있는가?
    Resources must be allocated appropriately to ensure that the pipeline runs efficiently. Partitioning can improve write performance and decrease run time. Job scheduling must take into account the data usage, SLA, job duration, and freshness of the data source. Data dependency must be considered when one job needs another job to finish first before starting.
    

참고

  • medium