현재 업무에서 spark를 많이 쓰고 있습니다. spark을 쓰면서 data skew로 꽤나 어려움을 겪고 있었는데 이번에 skew job을 튜닝하면서 배운 점들을 정리해보았습니다. spark 뿐만 아니라 업무에서 data skew를 겪고 계신 분들 모두에게 조금이나마 도움이 되길 바랍니다!
[AWS] MSK Consumer 띄우기
다른 계정에 떠있는 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
)만큼 생성되는 것을 보았습니다.