안녕하세요.
정보관리기술사를 취득한 이후 지금까지 얻은 지식을 많은 사람들에게 공유하고,
특히 데이터 엔지니어를 희망하고 공부하고 싶은 분 들에게 도움이 되고자 컨텐츠를 제작하고 있습니다.
반갑습니다 ^^
Contact: hjkim_sun@naver.com
강의
수강평
- Airflow 마스터 클래스
- Airflow 마스터 클래스
게시글
질문&답변
8강에서 postgresql 접속이 안되네요
안녕하세요 임원선님!docker-compose.yaml 파일은 잘 작성하신 것 같습니다.그런데 왜 안되는지는 이제부터 확인을 좀 해봐야겠네요.우선 로컬 컴퓨터에서 postgres_custom 컨테이너랑 worker 컨테이너랑 IP 좀 확인해볼께요.sudo docker ps 해서 컨테이너 이름 각각 확인하시고 docker inspect {postgres_custom 컨테이너명} | grep IPAddress docker inspect {worker 컨테이너명} | grep IPAddress이렇게 해서 현재 떠 있는 컨테이너 IP 각각 확인해보실래요? 그리고 worker 컨테이너에서 postgres_custom 컨테이너의 IP:Port로 접속할 수 있는지 직접 명령어로 확인해볼 수 있습니다. sudo docker exec -it {worker 컨테이너명} bash 이렇게 해서 워커 컨테이너에 진입하시고 아래처럼 해보세요.nc -v 172.28.0.3 5432이렇게 명령했을 때 워커가 postgres_custom과 연결이 가능하면 아래처럼 Connected 라고 뜹니다. (사진) 이게 안되면 일단 컨테이너간 네트워크 연결이 안되는 상황이라고 보시면 됩니다.★ 답글 달아주신 docker-compose.yaml 파일 내용은 지워주시는게 좋겠습니다 (SMTP 연결 키가 들어가있어요)
- 0
- 2
- 36
질문&답변
Ansibleplaybookclone&playbook실행 안됩니다
안녕하세요 syjo님!아마도.. 띄어쓰기를 해야하는데 붙여진것 같습니다.끝에 season1.git 띄고 ansible_playbooks 해보실래요? 강의안 다시 확인해봤는데 일단 잘 띄어져 있어요. 복사하고 잘못 붙여넣기 하신것 같습니다. 혹시 안되시면 바로 문의주세요 ^^
- 0
- 1
- 12
질문&답변
신규 버전 강의 업데이트 예정일
안녕하세요 jwkim 님!airflow 3.0 업데이트는 5월 안으로 마무리하려고 합니다. (정확한 날짜는 아직 모르겠어요..)일단 airflow 2버전으로 보셔도 괜찮을 듯 합니다. 개인적인 생각으로는 2버전대에서는 이랬는데 3버전되면서 이렇게 바뀌었구나를 직접 경험하는 것도 좋은 경험입니다. (Airflow가 어떤 기능에 힘주어 개선되고 있는지를 알 수 있습니다) 3.0 되면서 2대 버전과 크게 바뀐 부분을 비교해서 들으시면 좋을 것 같은데(1) UI가 좀 많이 바뀌었습니다만 3버전 되면서 바뀐 UI 부분도 영상으로 추가할 예정이오니 일단 2버전대로 학습 진행하셔도 될 것 같습니다. (2) Airflow의 아키텍처 자체가 바뀌었습니다. 중간에 API Server가 들어옴으로써 DB 연결을 API Server 가 중계하는 형태로 바뀌었는데 아키텍처에 대한 내용은 강의 뒷 부분에 있습니다. 그래서 2버전대로 우선 학습하시고 아키텍처와 관련된 부분은 3.0 업데이트 이후에 들으셔도 될 것 같습니다. (3) Task간의 의존성을 관리해주는 Dataset 이라는 기능이 Asset 이라는 이름으로 변경되고 세부적인 기능도 조금 변경되었습니다. 그러나 Airflow 전체 기능에서 Asset 기능은 일부이므로 일단 2버전대로 학습 진행하셔도 큰 관점에서 기능상 큰 차이없이 수강하실 수 있습니다.(Airflow가 Asset/Dataset 기능 개선을 대폭 강화하고 있습니다. 이 부분은 앞으로도 버전 업이 되면서 계속 개선/변경될 것 같습니다) (4) 기타 DAG 스케줄링 기능이 추가되었는데 이 부분은 기능이 추가 된거라 일단 2버전대로 들으시고 3버전대에서 추가된 내용을 별도로 들으셔도 됩니다. 결론적으로 3버전이 되었지만 기능 대부분은 여전히 유효합니다. 아키텍처는 뒷 부분에서 변경된 사항 확인하시면 되고 Asset(Dataset)은 좀 바뀌긴 했지만 2버전대 기준으로 학습하시고 변경/개선된 사항을 3버전대로 들으셔도 좋을 것 같습니다. 나머지 기능들은 기능 add되는 것이 대부분이라 2버전대 기준으로 들으셔도 무방합니다 ^^ 수강하시는데 답변이 충분히 되었는지 모르겠네요. 화이팅입니다!업데이트는 빨리 해볼께요! (요즘 잦은 야근에 시간이 잘 안나네요 ㅜㅜ)
- 0
- 1
- 29
질문&답변
task run fail
안녕하세요 mini0529 님 일단 저도 3.0 버전으로 올려서 해봤는데 잘 수행되긴 했습니다. (사진) 일단 구버전 (2.10.5)로 해보시고 그래도 안되시면 다시 문의 남겨주세요.참고로 위에서 로그 그룹을 열어서 펼칠 수 있습니다. 에러 발생하면 로그 펼쳐서 캡쳐해서 올려주시면 감사하겠습니다 ^^
- 0
- 2
- 68
질문&답변
Airflow 설치 오류(airflow-apiserver-1 is unhealthy)
안녕하세요 mini0529 님 일단 해결되어서 다행입니다만, 지금 진행하시는 airflow 실습 버전이 3.0 버전인 것 같습니다.제가 "도커&에어플로우 설치" 챕터에 안내를 추가했습니다만,Airflow 버전 3.0이 되면서 많은 부분이 변경됐습니다. Airflow 강의 보완으로는 설명이 안될 것 같아서 일부 강의는 재촬영하고 3.0에서 삭제된 기능은 강의에서 제거 예정입니다. 그 전까지 Airflow 2.10.5 버전으로 실습 진행 부탁드립니다. (3.0 바로 아래 버전입니다) 버전을 바꾸는 방법은 로컬 환경 OS에서 아래 명령을 수행하면 3.0 이미지와 관련 DB 볼륨을 모두 삭제합니다. docker compose down --volumes --rmi all 그 후 아래처럼 2.10.5 버전 이미지에 해당하는 docker-compose.yaml 파일을 다운받아서 실행하면 됩니다. curl -LfO 'https://airflow.apache.org/docs/apache-airflow/2.10.5/docker-compose.yaml' sudo docker compose up airflow-init sudo docker compose up 꼭 이렇게 실습 진행 부탁드려요. Airflow 3.0 버전으로 강의 변경 작업이 완료되면 강의 공지기능으로 어느 부분이 변경되었는지 별도로 알려드릴께요 ^^
- 1
- 2
- 151
질문&답변
강의 PDF 는 있는데 실습파일은 어디에 있나요?
안냥하세요 찬혁님강의자료는 https://github.com/hjkim-sun/airflow에 있습니다.링크 정보는 강의 첫 영상에 수정을 해놓을께요.그럼 화이팅입니다 ^^
- 0
- 2
- 46
질문&답변
8-2 trigger dag run 오류
안녕하세요 Nathan 님 오랜만입니다 ^^우선 캡쳐해주신 내용을 보니 dags_trigger_dag_run_operator 에서 첫 번째 task (start_task) 가 제대로 수행이 안된 것 같습니다. 정상적으로 success 된 걸로 보이나요? 로그로 봤을 때는 첫 번째 Task에 문제가 있어서 Trigger Dag 을 수행하는 두 번째 task가 제대로 수행되지 않은 것 같아요. 제가 수행해봤을 때는 아래처럼 두 번째 Task Details 에 특이사항은 없이 수행됩니다. (사진) 그리고 trigger 된 DAG은 아래처럼 정상 수행되어야 합니다. (사진) 우선 dags_trigger_dag_run_operator의 task 상태들 한번 캡쳐해서 올려주시겠어요? 그리고 코드도 혹시모르니 여기 한번 복붙 해주세요.
- 0
- 2
- 59
질문&답변
airflow rest api
안녕하세요 미요님!혹시나 해서 해봤는데 둘 다 잘 동작했습니다.먼저 첫 번째꺼는 404 에러라 URL 자체를 잘못작성하신 케이스에요.curl -X POST "http://localhost:8080/api/v1/dags/dags_bash_operator/dagRuns/scheduled__2025-03-30T15:00:00+00:00/clear" \ -H "Content-Type: application/json" \ -u "airflow:airflow" \ -d '{ "dry_run": false }'이렇게 Clear할 DagRun의 ID를 적고 /clear로 마치면 됩니다. 두번째 케이스는 기간별 한번에 DAG Clear할 수 있는 API 이고 URL은 잘 작성하신것 같은데 Method를 잘못주신거 아닌가 싶습니다. 저는 아래처럼 작성해서 잘 동작했어요.curl -X POST "http://localhost:8080/api/v1/dags/dags_bash_operator/clearTaskInstances" \ -H "Content-Type: application/json" \ -u "airflow:airflow" \ -d '{ "dry_run": false, "reset_dag_runs": true, "only_failed": false, "only_running": false, "include_subdags": true, "include_parentdag": true, "start_date": "2025-04-01T00:00:00Z", "end_date": "2025-04-05T00:00:00Z" }' 참고로 Airflow 공식 사이트에 API 정리가 잘 돼있습니다.(사진) (사진) 참고해보세요 ^^
- 0
- 2
- 64
질문&답변
강의안 문제
안녕하세요, 박민재님맥북에서 다운로드해보니 잘 보이는데 윈도우에서 다운받아보니 캡쳐해주신것 처럼 보이네요 ㅜㅜ윈도우에서 점검을 안해본 제 불찰입니다. 일단 전체 강의안 다시 올렸어요. 알려주셔서 감사합니다 ^^
- 0
- 3
- 97
질문&답변
airflow.cfg 변경
안녕하세요 kosa 님!실습 환경대로 docker-compose.yaml 이용해서 올리고 있죠?(컨테이너 안으로 들어가서 직접 airflow.cfg 수정하더라도 컨테이너 재기동이 필요한데 재기동 하는 순간 수정한게 사라지므로 의미없습니다) 그럼 변수명을 expose_config 라고 쓰면 안되고 바로 윗 줄 주석되어 있는 부분에 AIRFLOW__WEBSERVER__EXPOSE_CONFIG 라고 되어 있는 보이죠?주석 해제 하시거나 저 이름으로 만들어주시면 됩니다.참고로 docker-compose.yaml 파일에 작성할 때는 AIRFLOW__ 같은 접두사를 붙여서 작성하지만 airlfow.cfg 파일에 들어갈 때는 expose_config 이름으로 들어갑니다. 그리고 airflow 공식문서에 Environment Variable 항목을 보고 변수명 작성해주시면 됩니다.(사진) 그리고 DAG parsing 주기는 dag_dir_list_interval 파라미터로 주는데 이것도AIRFLOW__SCHEDULER__ 를 붙여주셔야 해요.(사진) 그리고 스케줄러를 2개 이상 띄우지 않는다면 그 외 고려할 만한 부분은 없을 것 같네요.답변이 되었을까요?궁금한 건 또 언제든 질문주세요 ^^
- 0
- 1
- 67