inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

토스 개발자와 함께하는 Data Workflow Management 기반의 대용량 데이터 처리 설계 패턴

동적 DAG 생성 패턴 [ Dynamic DAG ]

데이터베이스 설정 가져오기 시 캐싱 관련 질문 있습니다

2

sgjeong1108

작성한 질문수 3

0

안녕하세요, 좋은 강의 감사드립니다.

강의 내용 중 DAG Top-Level에서 캐싱을 사용해 DB 설정 조회 시 스케줄러 DAG 파싱 리소스를 절약할 수 있다는 부분에 대해 질문이 생겨 글을 남깁니다.

제가 알기로는 Airflow 스케줄러(DagFileProcessorManager)가 주기적으로 DAG를 파싱할 때, 각 DAG 파일마다 새로운 자식 프로세스(PID)를 포크(Fork)하여 처리를 위임하고 파싱이 끝나면 해당 프로세스를 종료하는 것으로 알고 있습니다.

그렇다면 파이썬 메모리에 상주하는 @lru_cache 의 경우, 프로세스가 종료되면 캐시도 함께 사라지게 되어 다음 파싱 주기 때는 캐시 히트가 발생하지 않고 매번 DB에 새로 쿼리를 날리게 되지 않나 생각이 듭니다.

  1. 제가 Airflow 스케줄러의 파싱 프로세스 메커니즘을 잘못 이해하고 있는 부분이 있는지 궁금합니다.

  2. 만약 제 생각이 맞다면, 현업에서 이처럼 외부 DB 설정을 기반으로 DAG나 Task를 동적으로 생성할 때 스케줄러 부하를 줄이기 위해 주로 어떤 방식 캐싱 또는 시스템을 활용하시는지 조언을 구하고 싶습니다.

감사합니다!


# lru-cache
# 데이터베이스에서 설정 가져오기 (간단히 표현) 

def get_configs_from_db():
    return [
{"name": "customer_sync", "schedule": "0 1 * * *"}, {"name": "sales_sync", "schedule": "0 2 * * *"}
]

 

airflow

답변 0

astro dev start - python 라이브러리 설치 fail

0

41

1

astro project 실무 적용 질문

0

56

1

pykrx 회원제 전환으로 인한 실습 불가

0

114

2

48강 csv

1

70

2

강사님의 로그포맷과 저의 로그포맷이 차이가 있는것 같습니다.

0

81

3

7 강에서 astro dev start를 하는데, localhosst8080화면이 안뜹니다

0

70

2

astro dev start에서 building 시간이 깁니다.

0

68

2

수료증 발급

0

84

3

에러 발생 관련 질문드립니다.

0

83

2

vscode 작업화면에 오류가 발생하지 않습니다.

0

69

2

plugins 폴더 생성

0

76

2

WSL에서 git push 가 안되요 ㅠ

0

115

2

chatGPT&Airflow로 블로그 자동 포스팅하기 는 Deprecated 가 필요합니다.

0

67

2

github에 회원가입이 안되는데 원인이 뭔지 모르겠어요 ㅠ

0

739

2

자료 다운로드 하면 링크가 모두 클릭이 안됨

0

106

2

apache airflow 설치하기 질문

0

86

2

강의에서사용하신 root.py 파일이 안보여서 실습하면서 만든 텍스트 공유 드려요

0

127

7

48강 강의 여전히 49강과 같은 강의가 나옵니다

0

103

3

설치중인데 venv를 꼭 써야할까요?

0

126

2

설치 버전 관련 질문입니다.

0

68

1

우분투 버전 다운받아야하는데 어떤걸로 설치해야할까요?

0

62

1

forloop으로 task 정의시 task_id 정해지는 로직

0

98

3

DAG 만들기 중 airflow 패키지 로드 에러

0

106

2

실습환경에 대해 질문이 있습니다!

0

72

2