본문 바로가기

전체 글

(90)
Airflow 운영하기: 멱등성, 의존성, 리소스 * Airflow 버전 2.10.3 기준으로 작성Airflow 운영을 위해 고려해야 할 것은 크게 세 가지라고 생각한다.- 멱등성 보장과 재처리 가능성- 적절한 Task 분리와 의존성 관리- 리소스 관리멱등성 보장과 재처리 가능성멱등성 보장같은 Task를 여러 번 실행해도 동일한 결과 보장을 원함- 파티션 경로로 저장 (재실행 시 덮어쓰기)@taskdef collect_and_save(**context): base_dt = context["params"]["base_dt"] # ... 데이터 수집 및 변환 로직 ... # 파티션 경로로 저장 (재실행 시 자동 덮어쓰기) s3_final_key = f"{S3_KEY_PREFIX}/base_dt={base_dt}/data... 2025. 10. 29. 00:45
S3에 업로드 한 Parquet 파일 읽기 데이터 수집 후 parquet로 저장하는데 이 친구는 csv처럼 파일 편집기로 읽을 수가 없다.하지만 수집 데이터 검증은 해야 하기 때문에 점점 쉬운 방법을 찾으면서 세 가지 방법을 찾았다.1. 주피터 + pandas 조합import pandas as pdimport boto3import iodef read_s3_parquet(bucket: str, key: str) -> pd.DataFrame: try: s3_client = boto3.client( 's3', aws_access_key_id='xxxxxxxxxxx', aws_secret_access_key='xxxxxxxxxxxx', region_name=.. 2025. 10. 23. 21:55
[도서] 데이터 품질의 비밀 https://product.kyobobook.co.kr/detail/S000201435653 데이터 품질의 비밀 | 바 모세스 - 교보문고데이터 품질의 비밀 | 데이터를 다루는 일을 하는 사람들이라면 누구나 읽어보고, 알아보고 싶었던 ‘데이터 품질’ 데이터가 곧 가치인 시대, 성패는 데이터 품질에 달려있다!이 책은 신뢰할product.kyobobook.co.kr데이터 품질의 비밀 책을 읽으면서 기억하고 싶은 키워드/나중에 다시 검색해볼 것/활용해보고 싶은 내용들 나열(정리 X, 나열~)챕터1. 지금, 데이터 품질에 주목해야 하는 이유“측정하지 않으면 관리할 수 없고, 관리할 수 없으면 개선할 수도 없다.”“저품질 데이터를 쓰느니 데이터가 없는 편이 더 낫다.”데이터 메시https://databased... 2025. 10. 8. 16:21
[Airflow] 공공데이터 포털 API 정상화 모니터링 공공데이터 API로 데이터 수집을 해야 되는데 국가정보자원관리원(국정자원) 화재로 서비스가 중단됐다.복구 즉시 데이터 수집을 재개하기 위해 정상화 얼럿봇을 만들까 하다가 Airflow PythonSensor와 EmailOperator를 사용해봤다.import osimport loggingfrom datetime import datetime, timedeltaimport requestsfrom airflow.decorators import dag, taskfrom airflow.sensors.python import PythonSensorfrom airflow.operators.email import EmailOperatorfrom airflow.models.param import Param# --- 설정.. 2025. 9. 30. 14:13
[Airflow] AWS MWAA에 맞춘 Docker Airflow 띄우기 AWS MWAA mw1.large랑 동일한 스펙으로 로컬 테스트를 하기 위해 Docker를 띄웠다.폴더 구조├── Dockerfile├── dags│ ├── dag 파일들,,,├── docker-compose.yaml├── plugins│ ├── db_helper.py│ └── s3_helper.py└── requirements.txtDAG 작성 시 plugins import 방법MWAA는 S3 버킷에 있는 plugins 폴더를 Airflow 스케줄러와 워커가 접근할 수 있는 경로에 자동으로 추가해준다.그래서 plugins 폴더 안에 있는 코드들은 폴더 경로 없이 바로 from s3_helper import upload_to_s3 요런 식으로 import 해야한다.# ❌from plugins... 2025. 8. 25. 23:59
Spark 성능 최적화 https://medium.com/@maitreemanna8002/pyspark-optimization-technique-for-better-performance-47a7bcd6a72e Pyspark Optimization Technique For Better PerformanceOptimize Serializationmedium.comkryo serialization을 검색하다가 spark 성능 최적화 가이드 글을 발견하여 번역, 정리해보려고 한다.위 글에서는 PySpark 성능 최적화 관련하여 10가지나 적혀있다.1. Serialization(직렬화) 최적화직렬화는 데이터를 전송하거나 저장하기 쉬운 형식으로 변환하는 과정입니다. 적절한 직렬화 형식 선택은 Spark 작업의 성능에 영향을 미칩니다.Da.. 2025. 8. 18. 15:26
Hive 아키텍처 * Hive Table을 생성하는 Spark 프로젝트를 진행하며 학습한 내용을 기록Apache Hive의 정의Apache Hive는 분산 환경에서 대용량 데이터를 SQL로 분석할 수 있게 해주는 데이터 웨어하우스 소프트웨어Hive는 단순히 데이터를 저장하는 것이 아니라, 메타데이터를 통해 분산된 파일들을 논리적 테이블로 관리하는 것이 핵심SQL 친화적: 기존 SQL 지식을 그대로 활용 가능스키마 온 리드: 데이터를 읽을 때 스키마를 적용하는 유연한 구조확장성: 페타바이트급 데이터 처리 가능다양한 저장소 지원: HDFS, S3, Azure Data Lake 등Hive 아키텍처Hive 아키텍처는 크게 세 개로 분류된다.Hive ClientsHive ServicesHive Storage and Computin.. 2025. 7. 28. 23:52
[Spark] Catalyst Optimizer Hive의 Compiler 동작 흐름을 보다가 문득 Spark Catalyst Optimizer와 동작 흐름이 비슷한 것 같아서 글을 작성해보려고 한다.Catalyst Optimizer란?규칙 기반 최적화를 통해 개발자가 성능 대신 애플리케이션의 의미론적 측면에 집중할 수 있도록 하여 개발자의 생산성과 쿼리 성능을 향상시킨다.위치: Driver Program 내부에서 동작시점: 실제 Job이 실행되기 전 최적화 수행대상: SQL 쿼리, DataFrame/Dataset API (RDD API는 해당 엔진의 혜택을 받을 수 없음!!!)최적화 과정 (4단계)1단계: 논리적 계획 분석 (Analysis)사용자가 작성한 코드를 트리 구조로 변환한다.# 개발자가 작성한 코드df.filter(col("age") > .. 2025. 7. 25. 02:13