다른 계정에 떠있는 MSK의 consumer를 붙여 실시간성으로 log를 수집해야 할 니즈가 생겨, consumer를 선정, 적용, 아직까지 해결하지 못한 앞으로의 잠재적인 이슈를 어떻게 할 것인지의 내용을 기록합니다.
[Airflow] Airflow의 하루(Airflow DAG 시간 지정하기)
Airflow를 처음 사용할 때 가장 헷갈리는 것 중 하나는 날짜의 개념일거라 생각합니다. 꼭 Airflow를 사용하지 않더라도, 배치 스케줄링의 멱등성과 정확성을 위해서라도 Airflow의 시간 개념을 알아두면 나쁘지 않을 것 같아 내용을 정리합니다. execution date와 data_interva_start / end 등이 헷갈리는 분들께 도움이 되길 바랍니다.
[Airflow] 큰 DAG 분리하기 1. 코드 분리
sql 튜닝, airflow 마이그레이션, 기타 등등을 진행하던 와중에 문제가 생겼습니다.
[sql] Like 연산자 알아보기
저는 사내 재고 분류를 위한 데이터 마트 구성을 담당하고 있습니다. 시기별로 이 상품이 어떤 재고인지(양성 / 악성 / …) 분류되는 기준을 걸러내는데, 이 때 많이 사용하는 연산자가 Like입니다.
[Airflow] Airflow on Kubernetes - 1. Minikube
앞선 포스팅에서 언급했듯, 현업에서 managed airflow의 2가지 문제점에서 한계를 느꼈습니다.
[Airflow] MWAA Stuck in queue
현업에서 온프레미스 Airflow를 거쳐 현재는 AWS Managed Airflow인 MWAA에서 Airflow를 운영하고 있습니다. 다소 가격이 비싸지만 데이터 엔지니어링에 많은 여력을 쏟을 수 없는 경우에는 좋은 대안이 될 수 있습니다.
[Airflow] Executor Deep Dive 2-2. CeleryExecutor 2
1장에서는 sorted_queue가 어디서부터 생겨나는가?를 보았습니다.
[Airflow] Executor Deep Dive 2. CeleryExecutor
Executor Deep Dive 2번째 파트 CeleryExecutor입니다. 사실 LocalExecutor는 production 환경에서 사용을 권장하지 않습니다. 그러나 CeleryExecutor부터는 production 환경 사용도 권장하고 있습니다.
[Airflow] Airflow 컨트리뷰터가 되었습니다!
이전 포스팅 [Airflow] Executor Deep Dive 1-2. LocalExecutor.LimitedParallelism에서, LimitedParallelism 클래스가 시작되면 worker가 parallelism 옵션에서 지정한 숫자(self.executor.parallelism
)만큼 생성되는 것을 보았습니다.
[Airflow] Executor Deep Dive 1-2. LocalExecutor.LimitedParallelism
생각보다 UnlimitedParallelism이 길어졌습니다. 지난번 포스팅에서 LocalWorker 클래스가 초기화되면 LocalWorkerBase 클래스의 execute_work가 실행된다는 것까지 살펴봤습니다.