예전에 airflow를 쓰면서 DAG의 task가 스케쥴에 따라서 실행되지 않았던 적이 있습니다. 실행될 시간인데 scheduled상태로도 들어가지 않고 아예 사라졌다가 한참 후에 다시 scheduled되어서 중간에 실행되지 않는 시간이 많이 생겼습니다. 당시에는 pool의 slot수를 늘리니 해결이 되긴 했습니다. 그런데 강의에 따르면 slot수에 scheduled는 영향을 주지 않는 것으로 이해가 됐습니다. 혹시 scheduled도 따로 slot개수를 가지게 되는건가요? p.s. 그때는 몰랐지만 airflow가 너무 자주 실행하는 경우에는 적합하지 않다는 거는 알게된 경험이었습니다. 당시 스케쥴은 1분마다 실행시키는 DAG들을 많이 만들었거든요
안녕하세요 선생님 🙂 PostgresOperator 질문 드립니다. DB table에 데이터를 갱신하는 task를 혼자 만들어보고 있는데요. PostgresOperator는 executemany와 같은 기능을 지원하지 않는 것으로 확인했습니다. airflow에서 대량의 데이터를 insert / update 하는 방법이 있을까요..?
선생님 완강 이후 커뮤니티 이벤트 참여 신청했는데요 이벤트 끝난건가요? ㅠ https://www.inflearn.com/course/%EC%8B%A4%EB%A6%AC%EC%BD%98%EB%B0%B8%EB%A6%AC-%EC%97%94%EC%A7%80%EB%8B%88%EC%96%B4%EC%99%80-%ED%95%A8%EA%BB%98%ED%95%98%EB%8A%94-apache-airflow/news
선생님 안녕하세요 좋은 강의 감사합니다. 2-4 강의에서 select fruit 하는 부분에서 오류가 생겨서 질문 드립니다. 참고로 저는 리눅스가 아니라 docker on window를 사용하고 있습니다. 윈도우 상에서 bash 를 사용하는데 오류가 발생하는 것 같은데 해결방법을 모르겠어서요 저의 select_ fruit.sh 는 아래와 같고요 FRUIT=$1 if [ $FRUIT == APPLE ];then echo "You selected Apple!" elif [ $FRUIT == ORANGE ];then echo "you selected Orange!" elif [ $FRUIT == GRAPE ];then echo "You selected Grape!" else echo "You selected other fruits!" fi 이것을 git bash 상에서 돌려보면 잘 돌아갑니다. 그런데, 윈도우 cmd에서 bash 로 돌리면 apple과 orange에 대해서도 다른 과일을 골랐다는 오류가 뜨고요 그리고 airflow dag을 실행시켜도 같은 오류가 뜹니다. git bash에서 제대로 결과가 나오는걸 보면 sh 파일 자체에는 문제가 없는것 같은데, airflow 상에서 실행이 안되는 이유가 무엇일까요 ㅠ
안녕하세요 혹시 wsl이 아니로 aws에 ec2로 우분투 서버를 만들어서 강의를 진행해도되나요? 혹시 강의 뒷부분에서 문제?가 생길만한 여지나 부분이 있는지 궁금합니다 (예를 들어, vscode와 연결하는 등에서요) 그리고 혹시 docker on desktop 을 사용하지 않으신 이유가 따로 있으신가요..?
안녕하세요 선생님 hook 사용에 대한 질문드립니다! [질문] connection 기능을 사용해서 DB에 연결하여 데이터 처리도 가능할 것으로 보이는데요. hook을 사용하는 이유가 궁금 합니다. 사용 이유가 있다면 어떤 경우에 사용하면 좋은지도 궁금합니다. 감사합니다 🙂
- connection 설정 - password authentication failed for user "xnaud" docker-compose.yaml 파일 설정 dags코드 이렇게 설정했는데 dags를 실행 시 password authentication failed for user "xnaud" 라는 메세지가 계속 뜨고 있습니다 ㅠ 혹시 원인이 뭘까요?
docker on window를 사용하고 있습니다. docker 에 airflow를 올리면, 자체적으로 postgres db 가 올라가는데요. 강의 8:05 에서 말씀하시는게 이것인듯 한데요. 이것과 dbeaver를 연결하려고 하면 에러가 납니다. docker yaml 파일에 나와있는대로 host : localhost ( 이것을 host.docker.internal 로 바꾸어도 같은 에러가 납니다) database: airflow username : airflow password: airflow 으로 하고 테스트 커넥션을 하면 아래와 같은 에러가 납니다. 별도로 postgres db를 만들어서 연결하는 건 정상적으로 되는데, 왜 airflow 자체적으로 만들어지는 postgres db에 접속하는것만 오류가 나는 것일까요? 이 db에 접속을 해야 강의 8:09에 보이는 각종 table 들에 접근이 가능한 것 같은데요
이전까지는 도커 서비스를 잘 수행이 됐었습니다. 이번 강의에서 docker-compose.yaml파일을 수정 후 서비스를 내렸다가 다시 올리려고 하니 사진처럼 해당 로그까지만 찍힌 후에 더 이상 진행이 되지 않고 있습니다. 계속 기다려봐도 상태가 그대로인 것을 보아하니 어딘가 문제가 생긴 것 같습니다. yaml파일은 올려주신 파일과 비교해봤을 때 오타나 다른 문제는 없는 것 같습니다. 원래의 docker-compose.yaml로 교체하면 잘 실행이 되는 상태입니다. 뭐가 문제일까요?
강의 내용대로 gmail 세팅 / docker-compose.yaml 적용 후 airflow dag 작성후, 실행을 했는데.. 'smtplib.SMTPAuthenticationError: (535, b'5.7.8 Username and Password not accepted.' 로 Error가 납니다. airflow 실행로그 첨부합니다. 답변 기다리겠습니다. 감사합니다.
task실행 하면 api호출이 안되고 requests에서 에러가 나옵니다 requests.exceptions.ConnectionError: HTTPConnectionPool(host='http', port=80): Max retries exceeded with url: //openapi.seoul.go.kr:8088/***/json/TbCorona19CountStatus/1/1000/?Content-Type=application%2Fjson&charset=utf-8&Accept=%2A%2F%2A (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fbc7dac3fa0>: Failed to establish a new connection: [Errno -2] Name or service not known')) 그런데 postman이든 브라우저든 다른 곳에서는 정상척으로 호출하고 이전에 SimpleHttpOperator도 정상적으로 모두 호출합니다. 왜 연결이 안되고 Max retries가 뜨는지 잘 모르겠어요 ㅠ 혹시 while문에서 너무 빨리호출하나 싶어서 time.sleep 도 넣어봤지만 차이 없네요
안녕하세요. Airflow Master 강좌를 듣고 있습니다. 해당 강좌를 완강한 거 같은데.. 진도율이 100%가 안되네요 그래서 수료증(완강표시된) 출력을 못하고 있습니다. 어떻해야 하는지 알려주세요.. 많은 강좌중 제가 놓친강좌가 무엇인지 파악할 수가 없네요 . 감사합니다.
Email Operator로 메일 전송하기 강의 실습을 진행하다가 에러가 나서 질문 남깁니다. dag 실행 로그가 아래와 같이 찍히고, 실패 하는데 어떤 부분이 잘못되어서 이런 건지 모르겠습니다... [2023-11-15, 14:06:59 UTC] {warnings.py:109} WARNING - /home/***/.local/lib/python3.8/site-packages/***/utils/email.py:154: RemovedInAirflow3Warning: Fetching SMTP credentials from configuration variables will be deprecated in a future release. Please set credentials using a connection instead. [2023-11-15, 14:06:59 UTC] {configuration.py:1050} WARNING - section/key [smtp/smtp_user] not found in config [2023-11-15, 14:06:59 UTC] {taskinstance.py:1937} ERROR - Task failed with exception [2023-11-15, 14:06:59 UTC] {standard_task_runner.py:104} ERROR - Failed to execute job 73 for task send_email_task ([Errno 99] Cannot assign requested address; 618)
안녕하세요 강사님~ airflow를 이제 막 배우는 학생입니다. 다름이 아니라 bashoperator에 외부 쉘파일 수행하기에서 airflow에서 dag을 실행하면 해당 경로를 찾을 수 없다고 나와서요 제가 root 계정으로 실습 진행하고 있는데 opt를 root 경로로 바꿔봐도 동일한 증상이 계속됩니다. 추가로 py 코드에서 경로를 왜 opt로 주셨는지도 궁금합니다!
안녕하세요 선생님 airflow docker compose 질문드립니다. airflow docker compose로 최초 실행후 yml 파일을 수정하면 수정 내용만을 반영하게되는건가요? 아니면 새로운 docker compose를 빌드하는건가요? yml 또는 DAG를 수정하는 경우 ci/cd 관점에서 어떻게 관리하는지 궁금합니다. 감사합니다. 🙂
안녕하세요? 좋은 강의에 진심으로 감사드립니다. 책으로 공부했으면 아직 헤매고 있을텐데, 친철하게 설명해 주셔서 그동안 들었던 강의를 바탕으로 어제 data.go.kr 에서 기상청이 제공하는 대기정체지수를 다운로드 받는 dag을 만들어 수동으로 실행을 해보니, 수동으로는 csv 파일 생성까지 success가 되는 것을 확인하였습니다. 그런데 오늘 새벽에 자동으로 실행이 되도록 컴퓨터를 켜두었었는데, 아침에 보니 돌아가지 않았습니다. ㅠㅠ DAG에 크론 일정은 "0 5 \* \* \*"로 주고 , start_date는 어제 날짜 2023. 11. 5. in_timezone('Asia/Seoul')로 주었었습니다. (매일 새벽 5시에 돌아서 전일자로 업데이트된 데이터를 받고자 하였습니다.) airflow를 직접 사용해 보니 UTC와 KST가 혼재되어서 사용시에 헷갈리기도 하고, 실제로 제가 만들어 보니 권한 문제, 패키지 추가 문제 등 여러가지 난관에 봉착했었습니다만, 여기 질문 게시판을 참조하면서 모든 문제를 해결할 수 있었는데, 일정 셋팅 관련해서는 제가 아주 기본적인 airflow의 시간 개념을 잘 못 이해하고 있는 것 같아서 질문드립니다. 위의 두가지 말고 따로 확인해야 하는 사항이 있는지요? 여기 게시판의 첫번째 질문도 시간개념이었는데, 읽어봐도 제 입장에서는 제 문제 해결방법이 명확해 지는 것 같지는 않아서 이렇게 폐를 끼치게 되었습니다. 여담입니다만, 기상청에서 제공하는 API 데이터들은 1루치 정도만 제공되어서, 매일 접속을 해서 처리를 해두지 않으면 데이터가 사라져 버립니다. 수작업으로 하는 것이 예상보다 피곤하였고, 중간중간 잊고 지나치는 경우가 생겨서, 데이터의 완결성이 떨어지는 등 아쉬운 점이 있었습니다. 제 계획은 노트북을 출근전에는 꺼놓고, 퇴근후 집에와서 WSL에 airflow 도커로 올려서 새로 켜놓고, 새벽에 Dag이 일정대로 돌아서, 아침에 일어나면 데이터들이 제가 원하는 형태대로 정리되고, 이메일로 완료되었다고 노티를 받는 것입니다. 가능할 거라고 보시는지요?
task 데코레이터를 사용하면서부터 함수호출값을 받게 변경되는 점이 궁금합니다. 변경 전 def foo(): ... py_task = PythonOperator( python_callable=foo) 변경 후 @task(task_id='py_task') def foo(): ... py_task = foo() 변경 후에는 foo라는 함수원형을 입력하는 것이 아니라 함수를 호출하게 되는데 데코레이터로 감쌌기 때문에 괜찮아지는 건가요?
task가 제대로 수행되지 않습니다 작업의 로그를 확인하면 아래와 같은 메세지만 나타나구요 *** Could not read served logs: Request URL is missing an 'http://' or 'https://' protocol. 아래에서 저와 같은 증상을 겪은 사람을 찾았습니다만 링크 메모리 사용량을 늘려서 해결했다고만 나타납니다 저는 이미 WSL의 메모리를 8GB에 swap도 2GB도 준 상태구요... airflow의 worker 자체의 에러로그를 찾아보았더니 아래와 같이 권한 문제가 나타납니다 [2023-10-31 15:51:22,188: ERROR/ForkPoolWorker-15] [4c24a6e8-1133-46a5-99ac-5fd6bdb3c730] Failed to execute task [Errno 13] Permission denied: '/opt/airflow/logs/dag_id=dags_bash_operator'. zz5414-airflow-worker-1 | Traceback (most recent call last): zz5414-airflow-worker-1 | File "/usr/local/lib/python3.8/pathlib.py", line 1288, in mkdir zz5414-airflow-worker-1 | self._accessor.mkdir(self, mode) zz5414-airflow-worker-1 | FileNotFoundError: [Errno 2] No such file or directory: '/opt/airflow/logs/dag_id=dags_bash_operator/run_id=manual__2023-10-31T15:51:20.844476+00:00/task_id=bash_t1' worker 컨테이너안의 /opt/airflow/logs/dag_id=dags_bash_operator라는 파일에 권한이 없어서 발생하는 문제로 보입니다. 컨테이너 내부 파일의 권한은 어떻게 설정하는지를 모르겠습니다 제가 만든 dag말고도 example_bash_operator도 마찬가지로 실행되지 않고 같은 에러입니다. 해결해주실 수 있을까요? 정말 airflow 열심히 배워보려고 했거든요 ㅠㅠ