데이터 엔지니어링 3

[Airflow] Pool

Pool Airflow가 동시에 실행하는 Task가 너무 많을 경우, 시스템에 부하를 줄 수 있습니다. Pool은 이러한 문제가 발생하는 것을 방지하기 위해, 해당 Pool을 사용하는 DAG들에서 병렬로 실행되는 Task의 개수를 제한하기 위해 도입되었습니다. Pool을 사용하면, Task Set에 대한 병렬 처리를 제한하여 각 Task가 실행되는 시기를 세밀하게 제어할 수 있습니다. 이 내용에 대해서는 마지막에 usecase를 보면서 설명드리겠습니다. 특히, 특정 Task를 수행하는 병렬 Task의 수를 제한하기 위해 자주 사용합니다. 예를 들어, 동일한 API Endpoint나 DB를 찌르는 작업일 때, 또는 Kubernetes 클러스터의 GPU 노드에서 GPU 할당을 제어하기 위해 사용합니다. 기본..

IT/Airflow 2022.07.09

[Airflow] Dynamic Task Mapping (동적 태스크 매핑)

Introduction 최근 사내에서 사용하는 몇몇 Airflow 클러스터 관리를 담당하게 되면서 Airflow 2.3.0으로의 버전업을 진행하게 되었습니다. 사실 이전에 다뤘던 두 포스트도 그 일환으로 작성했던 내용이네요 ㅎㅎ Airflow 2.3.0 업그레이드에는 나름 큰(?) 변경 사항과 추가 사항이 있습니다. 그동안 사용해왔던 TreeView를 대체하는 GridView의 도입, LocalKubernetesExecutor의 도입, 메타데이터 DB에 쌓여만 가던 오래된 데이터를 지워주는 airflow db clean 명령어 등, 각각 하나의 글로 작성해도 충분할만큼 중요한 신규 기능, 변경점들입니다. 그중에서도 가장 주목 받았던 신규 기능이라고 한다면, Dynamic Task Mapping 을 꼽을 ..

IT/Airflow 2022.06.06

[wookiist] 프로그래머스 Data Engineering 스터디 후기

시작에 앞서, 본 스터디는 모두 제 사비로 구매하여 수강한 것임을 먼저 밝힙니다! 데이터 엔지니어..?! 이번에 데이터 엔지니어로 합류하게 된 후, 여러 고민을 많이 했습니다. 특히, 지금까지 해오던 분야와 전혀 다른 Data라는 분야에 어떻게 적응하고 익혀가야할까 하는 고민이 정말 컸던 것 같아요. 더구나 저는 SQL도 정식으로 강의를 들어본 적이 없다보니, 무엇부터 해야하는지조차도 여러 소스에 의존할 수밖에 없었습니다. 그래서 여러 인터넷 강의(패X트캠퍼스, 인X런)를 구매하고, 하나하나 들어가기 시작했어요. 헌데, 문제는 강사님들의 강의 스타일도 저와 잘 맞지 않았고, 강의 내용이 기대했던 것보다 훨씬 낮은 수준인 경우가 종종 있었습니다. 강사님 음성보다 배경 음악이 더 큰 경우도 있었고, 전달력이..

욱이야기/욱이 2022.01.01