본문 바로가기

전체 글102

[Book / 개발도서] 개발자의 글쓰기 독후감 책을 보게 된 배경? 블로그를 운영한지 어인 (햇수로)2년이다. 초반에는 그냥 별다른 검수없이 공부한걸 무턱대고 올리는 식으로 했었는데 이게 학습장인지 블로그인지 분간을 할 수 없는 지경에 이르렀다고 생각했다. 더이상 이러한 운영을 괄시할 수 없다고 생각한 시점... 이 책이 눈에 띄어서 그냥 읽기 시작했다. 사실 개발블로그 운영에 팁같은걸 얻으려고 본건데 클린코드 및 진또배기 개발자라면 응당해야하는 문서화를 어떻게 해야하는지에 소개도 잘 나와있었다. 가령, 기획서나 제안서 그리고 명세서 잘쓰는 법에 대해서도 나와있었는데 나중에 기회가 되면 포스팅해야겠다. 그 중에서도 블로그에서 글 쓰는 방법에 대한 이야기에 흥미가 느껴져서 끄적인다. 글을 쓸 때에는 주인장 시점? 사용자 시점? 블로그 운영중 가장 고민.. 2024. 2. 25.
[Apache Airflow 기반의 데이터 파이프라인] 컨테이너에서 태스크 실행하기 왜 Airflow Dag를 실행하는데 컨테이너와 k8s가 필요한가? 컨테이너는 무엇인가? Docker 컨테이너 실행하기 컨테이너와 Airflow Docker에서 Airflow 태스크 실행하기 K8s에서 태스크 실행 KubernetesPodOperator 사용하기 번외. Airflow와 K8s 왜 Airflow Dag를 실행하는데 컨테이너와 k8s가 필요한가? 동일한 환경에서 배포하고 싶을 때! 종속성을 요구하는 경우! 잠재적인 충돌을 방지하고 싶을 때! 단일 환경에서 여러 개의 DAG를 실행한다고 했을 때, 다른 버전의 library를 사용한다면 충돌이 발생할 수 있다. 물론 해당 서버에서 관리하는 DAG들의 개수가 작거나 simple한 경우라면 이런 고민을 할 필요가 없음. 컨테이너는 무엇인가? 컨테이.. 2024. 2. 23.
[Apache Airflow 기반의 데이터 파이프라인] 테스트하기 1. 테스트 시작하기 2. 개발을 위해 테스트 사용하기 테스트 시작하기 Airflow에서 테스트는 작성한 작업이 예상대로 동작하는지 확인하기 위한 중요한 부분이다. 테스트는 다양한 단계에서 적용할 수 있다. Airflow 테스트의 두 가지 유형 : 단위 테스트(Unit Test), 통합 테스트(Integration Test) 개별 작업 단위로 테스트를 수행 → 단위 테스트 여러 작업이 함께 동작할 때 예상대로 동작하는지, 즉 전체 워크플로우 흐름 테스트를 수행 → 통합 테스트 파이썬 테스팅 프레임워크인 unittest와 pytest pip install pytest pytest 명령어는 이름이 test_로 시작하는 모든 파일을 로드하고, test_로 시작되는 모든 기능을 실행한다. 모든 DAG에 대한 무.. 2024. 2. 22.
[Apache Airflow 기반의 데이터 파이프라인] 커스텀 컴포넌트 빌드 커스텀 컴포넌트 빌드 커스텀 훅 빌드하기 커스텀 오퍼레이터 빌드하기 커스텀 센서 빌드하기 컴포넌트 패키징하기 커스텀 컴포넌트 빌드 Airflow의 강점 중 하나는 여러 유형의 시스템들 간의 작업을 조율할 때 쉽게 확장할 수 있다. (SageMaker 기반 머신러닝 모델 학습, ECSOpserator 사용해서 ECS기반 작업가능) 그러나, Airflow가 지원하지 않는 시스템에서 태스크 실행해야 할 수 있다. 또한 태스크 중 PythonOperator를 사용하여 구현할 수 있지만 수많은 단순 반복적인 코드가 필요하여, 여러 DAG에서 사용하기 힘든경우가 발생한다. 이 때문에 Airflow 에서 특정 시스템에서 작업이 실행되어야 할 때, 이를 위한 오퍼레이터를 개발하여 빌드해 왔었다. Airflow에서 커스.. 2024. 2. 21.
[Apache Airflow 기반의 데이터 파이프라인] 워크플로 트리거 센서를 사용한 폴링조건 다른 DAG를 트리거하기 센서를 사용한 폴링조건 v2.7.1 버전 기준 9개의 센서 가 존재하고, 버전별로 센서가 정리되고 있다. 센서패키지에서 통합관리 되던게, provider로 흩어진걸로 보여짐 ex) airflow.sensor.sqlsensor (v2.4.0) → airflow.providers.common.sql.sensors ex) airflow.sensor.hdfs_sensor → airflow.providers.apache.hdfs.sensors v.2.0.0 → 24개 ( Docs ) v 2.7.1 → 9개 (Docs) 사용자 지정 조건 폴링 pythonSensor를 사용하여 다양한 방법으로 센싱처리가 가능함 (python 로직이 추가되어 개발해서 센싱한다는 느낌) .. 2024. 2. 20.
[Apache Airflow 기반의 데이터 파이프라인] 태스크간 의존성 정의하기 기본 의존성 유형 브랜치하기 조건부 태스크 XCom(cross-communication)을 사용하여 데이터를 공유하기 XCom 사용시 고려사항 기본 의존성 유형 선형체인(linear chain) : 연속적으로 실행되는 작업 팬아웃/팬인 (fan-out/fan-in) : 하나의 태스크가 여러 다운스트림 태스크에 연결되거나 그 반대의 동작을 수행하는 유형 선형 의존성 유형 download_launches >> get_pictures # 작업 의존성을 각각 설정하기 get_pictures >> notify download_launches >> get_pictures >> notify # 또는 여러 개의 의존성을 설정할수 있다. 태스크 의존성을 통해 Airflow 업스트림 의존성이 성공적으로 실행된 뒤 다음 태.. 2024. 2. 19.
반응형