저자는 파이썬 기반 기술인 Flask, Apache Airflow, DuckDB와 같은 기술을 사용해 데이터 엔지니어링 분야에서 경험과 생각을 공유하는 것을 기대하고 있습니다. 데이터 엔지니어링은 데이터를 수집, 저장, 처리하기 위한 아키텍처, 파이프라인, 시스템을 구축하고 유지하는 데 중점을 둔 중요한 분야입니다. 데이터 엔지니어는 데이터가 수집, 정리, 구조화 및 적절한 시간에 사용할 수 있도록 하는 것을 책임지고 있으며, 데이터베이스, 분산 시스템, 스크립팅 및 워크플로우 오케스트레이션 도구에 대한 깊은 이해가 필요합니다. ETL(Extract, Transform, Load) 및 ELT(Extract, Load, Transform) 파이프라인은 데이터 엔지니어링의 핵심 작업이며, ELT는 클라우드 네이티브 데이터 웨어하우스의 등장으로 인해 인기를 얻고 있습니다. 데이터 레이크는 IBM Cloud Object Storage와 같은 중앙 집중식 저장소로, 모든 구조화된, 반구조화된 및 비구조화된 데이터를 대규모로 저장하며, 스키마-온-리드(scheme-on-read)를 지원하고 탐색 및 모델링에 대한 더 많은 유연성을 제공합니다. 저자는 Pandas, SQL, Parquet, DuckDB 및 PyArrow와 같은 도구가 데이터 엔지니어링에서 중요한 역할을 하며, 로컬 및 확장 가능한 데이터 처리를 위한 강력한 스위트를 형성합니다. DuckDB는 Modin 또는 Vaex보다 대규모 데이터 처리에 더 적합하며, 특히 Parquet 형식에서 디스크에 직접 쿼리를 처리하는 효율성으로 인해 전체 데이터 세트를 메모리에 로드하지 않고도 처리할 수 있습니다. 저자는 DuckDB를 사용하여 NYC Yellow Taxi Trip Data 데이터 세트에서 여행 기간, 거리 버킷당 평균 요금, 벤더별 수익을 계산하는 예를 제공합니다. Apache Airflow는 파이프라인을 오케스트레이션하는 데 사용되며, 엔지니어가 Python을 사용하여 DAG(Directed Acyclic Graphs)로 워크플로우를 정의할 수 있도록 지원하며, 작업 종속성, 스케줄링, 재시도, 로깅 및 알림을 기본적으로 지원합니다. 데이터 엔지니어링은 현대적인 분석 및 AI 시스템의 기초이자 강화자로, 소프트웨어 엔지니어링, 데이터 모델링 및 시스템 디자인 기술의 혼합이 필요합니다.
dev.to
A Lightweight Big Data Stack for Python Engineers
Create attached notes ...
