data-engineering

A collection of 9 posts
[airflow] 6. Multi cluster에서 airflow 실행하기
dev

[airflow] 6. Multi cluster에서 airflow 실행하기

Table of Contents * 요약 * airflow configuration * 두개의 인스턴스에서 각각 worker 실행하기 * task가 실행될 worker를 명시적으로 지정하기 * 1번 인스턴스에서 * 2번 인스턴스에서 * 참조 요약 * 다루는 내용 * 분산 인스턴스에서 각각 airflow worker를 실행하고 task를 분산해서 실행하는법 * task가 실행될 worker를 명시적으로 지정하는법 * 테스트 환경 * 두 개의 Amazon EC2 Instance 사용 * 1번 Instance에 아래와 같이
4 min read
[airflow] 4. CeleryExecutor 사용하기
dev

[airflow] 4. CeleryExecutor 사용하기

Airflow CeleryExecutor 사용하기 Table of Contents * Rabbitmq, Celery 설치 * Rabbitmq 설정 * airflow.cfg 수정 * localhost?? * meta db 설정 * 실행 * 참조 Airflow는 기본값으로 sqlite를 사용한다. sqlite에서는 SequentialExecutor만 설정가능하기에 DAG내에서 task의 병렬실행이 불가능하다. 병렬실행을 가능하게 하려면 LocalExecutor나 CeleryExecutor를 사용해야하는데 그러기위해선 Database를 Sqlite가 아닌 다른 Database를 사용해야 한다. Database설치&설정은 이전 글을
3 min read
[airflow] 3. LocalExecutor 사용하기
dev

[airflow] 3. LocalExecutor 사용하기

Airflow LocalExecutor 사용하기 Table of Contents * Postgres 설치 * Database 설정 * airflow.cfg 수정 * meta db 설정 * airflow initdb * 참조 Airflow는 기본값으로 sqlite를 사용한다. sqlite에서는 SequentialExecutor만 설정가능하기에 DAG내에서 task의 병렬실행이 불가능하다. 병렬실행을 가능하게 하려면 LocalExecutor나 CeleryExecutor를 사용해야하는데 그러기위해선 Database를 Sqlite가 아닌 다른 Database를 사용해야 한다. 이 글에선 postgres를 예로 들어 설명하겠다.
2 min read
appsflyer pull api를 이용해 daily report 적재하기
dev

appsflyer pull api를 이용해 daily report 적재하기

* 참조: appsflyer pull api 가이드 * push api가 아닌 pull api를 사용하는 이유. * 앱스플라이어 이벤트를 많이 정의할수록 push api가 빈번하게 호출된다. * 이는 서비스 품질 저하로 이어질 수 있음. (완벽한 분석용 DB가 따로 구축되어 있다면 상관 없다.) * 그러므로 실시간 데이터 적재보다는 하루에 한번, 전일자 데이터를 적재하기로 결정했고 이런 용도에는 pull api가 적합하다.
7 min read