묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨실리콘밸리 엔지니어와 함께하는 Apache Airflow
postgres_loader DAG 에러
해당 강의에서 진행한 postgres_loader DAG를 돌리면 자꾸 sample_table이 존재하지 않는다는 에러가 발생해서 질문 남깁니다.도커에서 설치해서 사용하고 있고 postgres 설치가 잘못된 것 같은데 다른 질문들 보면서 이것저것수정을 해서 더 잘 모르겠습니다 ㅠㅠ +) postgres 설치부터 잘못된 것 같은데.. 해결방법 좀 알려주세요!
-
미해결Airflow 마스터 클래스
3.0에서도 수업노트가 성립하는지 확인 부탁드립니다!
뒷 강의(Bash Operator에서 Jinja template 사용하기)의 수업 노트에 다음의 내용이 나오는데요.이 강의의 수업노트가 잘 이해되지 않았었는데 관련이 있을까요?data_interval_start 값과 data_interval_end 값이 동일하게 나오도록 변경되었습니다.
-
미해결Airflow 마스터 클래스
task_id 사용법이 뭔가 바뀐 것 같습니다.
@task만 쓰거나inner 함수에 return을 하거나multiple_outputs=True 옵션(이건 안해봄)으로 해결되는 것 같습니다. 로그는 다음과 같습니다.Timestamp: 2025-11-01 19:54:50 Traceback (most recent call last): File "<attrs generated methods airflow.sdk.bases.decorator._TaskDecorator>", line 37, in init _setattr('multiple_outputs', __attr_factory_multiple_outputs(self)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/airflow/.local/lib/python3.12/site-packages/airflow/sdk/bases/decorator.py", line 328, in _infer_multiple_outputs if "return" not in self.function.annotations: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AttributeError: 'str' object has no attribute 'annotations'. Did you mean: 'contains'?
-
해결됨실리콘밸리 엔지니어와 함께하는 Apache Airflow
Queue 강의를 듣고 난 후에 대한 질의
Queue에 대한 질문이 몇가지가 있습니다. 큐를 지정할 때는 무조건 큐의 이름을 지정해 줘야 하나요? 자동으로 비어 있는 woker에 큐를 할당하는 방법은 없나요?cpu_intensive라는 woker에 여러개의 큐가 동시에 요청이 왔을 경우 동기적으로 처리하나요?큐를 생성하면 해당 큐의 물리적 자원은 어떻게 할당 되는 것인가요?대체로 하나의 DAG에서 강의에 예시와 같이 여러 개의 큐를 사용하는 경우가 있을까요?워커를 많이 만들어 환경을 구성하는 사례는 어떤 사례가 있는지 알 수 있을까요? 내용 확인 부탁드립니다.
-
미해결Airflow 마스터 클래스
email operator 오류 관련
다음과 같이 진행했는데 dag을 돌리면 밑에 캡쳐처럼 오류가 나네용 왜그럴까용??
-
미해결Airflow 마스터 클래스
plugins 폴더 관련
이 부분 진행할 때 airflow 폴더에 plugins가 있던데 수업에서 만들었던적이 있을까요..? 듣고있는데 제 폴더에는 plugins가 없어서용! 따로 만들어야 하는건지 제가 놓친건지 궁금합니다
-
미해결Airflow 마스터 클래스
bash operator 관련 문의입니다
airflow에서 example_complex에 dag 코드가 이렇게 적혀있던데수업꺼랑 좀 코드 차이가 있어서요!스케쥴이나 import하는거나 변경을 어떻게해야할지 몰라서 문의드립니다
-
미해결Airflow 마스터 클래스
스케쥴러 - DAG 파싱 부하 줄이는 과정 질문
안녕하세요 김현진 선생님강의 잘 듣고 있습니다. 아래의 퀴즈를 풀다가 궁금한 점이 생겨서 질문을 남깁니다. 스케줄러의 DAG 파일 파싱 부하를 줄이기 위해 권장되는 코드 작성 방법은 무엇일까요? --> 라이브러리 import 문을 Python callable 함수 내부로 옮긴다. 위 설명을 이해하기 위해서 상황을 가정해보았는데요,python callable 함수 외부에 선언된 API 호출문이 있는 경우를 피해야하고, 만약 그렇게 되면스케쥴러가 DAG을 파싱할 때마다 실행되는 상황이 되는 것이 맞을까요?
-
미해결Airflow 마스터 클래스
Dags refresh 주기 관련 질문
강사님, 안녕하세요! DAG 파일을 추가하거나 수정할 때, Airflow UI에 변경 사항이 자동으로 반영되기까지 보통 1~5분 정도 소요되고 있습니다. 너무 오래 걸리는 경우에는 컨테이너를 재시작해 반영하고 있는데요. 혹시 Dags의 auto-refresh 주기를 단축시킬 수 있는 설정이나, UI 상에서 수동으로 바로 새로고침할 수 있는 방법이 있을까요? 현재 'apache/airflow:3.1.0' 이미지를 사용 중입니다.
-
미해결실리콘밸리 데이터 리더가 알려주는 Airflow 기초
SWAP 문법 활용 이유
안녕하세요 한기용 지식공유자님. 좋은 강의 잘 듣고 있습니다.ELT를 구현할 때 SWAP 명령어를 사용한 정확한 이유가 궁금합니다.제가 찾아본 바로는 SWAP 명령어는 포인터 교체 방식으로 '즉시' 데이터와 메타데이터가 교체되므로, 무중단 배포가 가능하다는 것이 장점인 것 같습니다.사실, 트랜잭션을 활용해도 같은 기능을 구현할 수 있을 것 같은데메타데이터 복제를 빠뜨리는 것을 예방하고, 트랜잭션을 활용하였을 때보다 성능이 우수하고, lock을 예방하기 때문에 SWAP 문법을 활용하는 걸까요?
-
해결됨토스 개발자와 함께하는 Data Workflow Management 기반의 대용량 데이터 처리 설계 패턴
실습환경에 대해 질문이 있습니다!
안녕하세요섹션6의 강의를 듣다가 질문드릴게 있어 글을 작성하게되었습니다우선 강의를 너무 잘 듣고 있음에 감사드립니다.다만 질문이 하나있는데요섹션 6강의의 실습환경에 기반이 되어지는python과 airflow 그리고 DB는 버전에 맞게 미리 설치를 하고 강의를 들어야하는게 맞는거죠?저는 강의에서 최초 환경부터 같이 설치하는 모습을 보여주시나 했는데 없어서 여쭈어봅니다.
-
미해결실리콘밸리 데이터 리더가 알려주는 Airflow 기초
copy into 성능 저하
안녕하세요 한기용 지식공유자님. 37. 앞서 Airflow 예제를 개선해보자 (v4) - 실습 강의에서 데이터의 벌크 업로드를 위해 dag의 insert into 코드를 copy into로 변경했습니다.그러나 이 경우 기존에 한 줄씩 insert into 하던 방식보다 더 느린 결과가 나옵니다(insert into의 경우 2분, copy into의 경우 3분)개인적으로는 제 컴퓨터의 IO 연산이 좋지 않고, 데이터의 양이 크지 않아서 오버헤드가 더 크기 때문인 것으로 예상하고 있는데, 지식공유자님의 의견도 알고 싶습니다 🙂
-
미해결Airflow 마스터 클래스
wsl 관련 질문입니다.!
https://inf.run/d2v1x이분과 같은 증상(?)이라 해야되나 wsl로 우분투 설치시에 저도 아이디 비밀번호 입력이 없었습니다. 그래서 재부팅후 설치를 헀는데 이런게 나오네용
-
미해결Airflow 마스터 클래스
macOS에서 docker 설치
안녕하세요 mac에서 docker 설치하려고 하는데 apt-get command not found가 뜹니다. 찾아보니 apt 명령어는 macOS에서 동작 안한다고 하는데 어떻게 진행하면 될까요?
-
미해결Airflow 마스터 클래스
템플릿 변수에 대한 오류
안녕하세요 CLI로 Trigger 기능을 수행하는 부분 강의를 듣던 중에,Web UI에서 Trigger를 누르면 정상적으로 수행되지만,쉘 스크립트 커맨드로 airflow dags trigger <DAG 이름>이라는 명령어를 실행했을 때아래와 같은 실패 로그가 나타나서 문의드립니다.혹시 커맨드라인으로 실행하면 {{data_interval_end}} 와 같은 템플릿을 적용할 수 없나요?
-
미해결Airflow 마스터 클래스
custom_image 디렉토리 문의드립니다.
안녕하세요.섹션 12 강의를 듣는중인데 airflow 디렉토리 밑에 custom_image 디렉토리가 이미 하나 있어야 하더라구요.그런데 제 airflow 디렉토리 밑에는 해당 디렉토리가 없습니다.여태 진행한 강의는 분명 빠짐없이 들었는데 제가 실수로 놓친 부분이 있는 것 같습니다..다시 찾아 듣고자 하는데 어느 강의인지 찾지를 못하고 있습니다.죄송하지만 혹시 해당 부분 몇 강에서 진행하셨는지 알 수 있을까요?
-
미해결Airflow 마스터 클래스
ETL 인터뷰 관련 문의
안녕하세요 선생님,현재 데이터 엔지니어 직무 면접을 준비하고 있는 수강생입니다. 저는 이번 면접에서 ETL 아키텍처 및 데이터 파이프라인 구성과 관련된 주제를 중심으로 준비하고 있습니다.수업을 통해 많은 내용을 배우고 있지만, 솔직히 말씀드리면 양이 너무 방대하다 보니 모든 부분을 다 소화하기가 쉽지 않습니다.시간도 빠듯해 점점 불안감이 커지고 있습니다. 그래서 정말 간절한 마음으로 도움을 부탁드립니다.혹시 면접에서 특히 중요한 핵심 개념이나 자주 나오는 질문, 그리고 실제 사례 중심으로 정리하면 좋은 부분이 무엇인지 방향을 잡아주실 수 있을까요? 혹은 강의만 따로 추천 해주시면 감사하겠습니다.제가 부족한 부분을 더 보완해서 면접에서 꼭 좋은 결과를 내고 싶습니다.늘 열정적으로 가르쳐주시는 것에 감사드리며,간절히 도움을 청합니다.감사합니다.
-
미해결Airflow 마스터 클래스
섹션 9. Connection & Hook - 50강 관련 질문
안녕하세요. 오늘도 Airflow 강의를 듣던 중 에러가 나는 부분이 있어 질문드리고자 합니다 ㅠ 우선 customized 된 Hook의 bulk_load 기능을 사용하는 과정에서 에러가 발생하는데요..강의에서 알려주신대로 아래와 같이 두 개의 파이썬 파일을 작성해서 DAG을 실행했습니다.(코드도 GitHub에 올려주신 것과 동일합니다)plugins/hooks/custom_postgres_hook.pydags/dags_python_with_custom_hook_bulk_load.py 그런데 DAG 실행 과정에서 아래와 같은 에러가 발생합니다.(Failure caused by 'Engine' object has no attribute 'cursor') 제가 docker-compose.yaml 파일 내 postgres_custom 서비스를 정의할 때, 5433:5432로 포트 포워딩 해줘서 그런가 싶어서, custom_postgres_hook.py 코드에서 uri 변수에 포트번호를 5432로 같이 부여해줬음에도 동일한 에러가 발생합니다. 무엇이 문제일까요..?
-
미해결Airflow 마스터 클래스
docker 설치 관련 질문
영상에서 도커 설치하는 부분을 듣고 있는데 예전 강의다보니까공식 홈페이지에서 도커 설치하는 커맨드가 많이 바뀐 거 같습니다.어떻게 따라가면 좋을까요?
-
미해결Airflow 마스터 클래스
38강. Task groups 관련 질문
안녕하세요. Task group 생성 시, task decorator를 활용한 방법과 그렇지 않은 방법 이렇게 두 가지가 있다고 하셨는데, task decorator를 활용한 방법의 경우, docstring에 작성한 내용이 UI에서 보여지고,task decorator를 활용하지 않은 방법의 경우, tooltip 인자에 입력된 내용이 UI에서 보여지는 것으로 알고 있습니다. 그런데 Airflow 3.0.x 버전에서 실제로 실습을 진행해보니 docstring 및 tooltip 인자에 작성한 내용이 아래와 같이 UI 화면에서 보이지 않는 것으로 확인됩니다 ㅠ Airflow 3.0.x 버전 공식 문서를 읽어봐도 강사님 말씀과 동일하게 docstring 및 tooltip을 사용하면 UI 화면에서 보여질 거라고 적혀있는데... 뭐가 문제일까요..? 코드는 강사님이 작성하신 것과 동일한데, 혹시 몰라 제가 작성한 코드도 같이 첨부 드립니다.import pendulum # Airflow 3.0 버전부터 아래 경로에서 import from airflow.sdk import DAG, task, task_group, TaskGroup from airflow.providers.standard.operators.python import PythonOperator # Airflow 2.10.5 이하 버전에서 실습 시, 아래 경로에서 import # from airflow.operators.python import PythonOperator # from airflow import DAG # from airflow.decorators import task # from airflow.decorators import task_group # from airflow.utils.task_group import TaskGroup with DAG( dag_id = 'dags_python_with_task_group', schedule = None, start_date = pendulum.datetime(2023, 4, 1, tz = 'Asia/Seoul'), catchup = False ) as dag: def inner_func(**kwargs): msg = kwargs.get('msg') or '' print(msg) @task_group(group_id = 'first_group') def group_1(): ''' task_group decorator를 이용한 첫 번째 그룹입니다. ''' @task(task_id = 'inner_function1') def inner_func1(**kwargs): print('첫 번째 TaskGroup 내 첫 번째 task 입니다.') inner_function2 = PythonOperator( task_id = 'inner_function2', python_callable = inner_func, op_kwargs = {'msg': '첫 번째 TaskGroup 내 두 번째 task 입니다.'} ) inner_func1() >> inner_function2 with TaskGroup(group_id = 'second_group', tooltip = '두 번째 그룹입니다') as group_2: ''' 여기에 적은 docstring은 표시되지 않습니다. ''' @task(task_id = 'inner_function1') def inner_func1(**kwargs): print('두 번째 TaskGroup 내 첫 번째 task 입니다.') inner_function2 = PythonOperator( task_id = 'inner_function2', python_callable = inner_func, op_kwargs = {'msg': '두 번째 TaskGroup 내 두 번쨰 task 입니다.'} ) inner_func1() >> inner_function2 # Task Group도 flow 설정 가능 group_1() >> group_2