안녕하세요,
좋은 강의 제공해주셔서 매번 큰 배움얻을수있어서 너무 감사합니다 ㅎㅎ
airflow로 구현해보고싶은 플로우가 있는데, 혹시 가능한 부분일까 하여 질문드립니다.
task1 : google drive 특정 경로에 파일이 존재하는지 여부 확인 (크롤링한 데이터가 잘 들어왔는지 확인하기 위함, 파일이없다면 error 처리)
task2 : 간단한 데이터 정합성 확인을 위해 가공완료된 csv 데이터가 특정 조건을 충족하는지 확인 (ex. A라는 수치열 칼럼 총합이 B라는 수치열 칼럼 총합보다 큰지 확인, 작다면 error)
task3 : 위 두가지 조건이 충족되면 csv 데이터 db에 table insert (update)
task4 : 위 db table이 연결된 엑셀파일 데이터 새로고침
위 태스크를 task1 >> task2 >> task3 >> task4 로 구현해보고싶습니다. 위 task에서는 데이터를 가공하는 task는 없는데, 현재 no-code 가공툴을 사용하고있어서 task에는 포함시키지 못했습니다
안녕하세요 dj961024 님
물론 가능합니다! task2,3,4는 어려운 작업은 아닙니다. (파이썬 코드만 익숙하다면 1시간 이내에 작성 가능한 로직입니다) 다만 task1 에서 Airflow에서 구글 드라이브에 접근이 가능하냐가 핵심일 듯 한데,
airflow로 뭔가에 접근&컨트롤이 가능한지 보려면
Airflow에서 공식 Provider로 패키지를 제공해주고 있는지.
파이썬 또는 Shell로 컨트롤이 가능한지
위 두 가지를 보면 됩니다. 현재 Google drive를 컨트롤할 수 있는 공식 airflow provider는 나와있지 않으므로 두 번째 방법인 파이썬 또는 Shell로 컨트롤 가능 여부를 보면 되는데 다행히 파이썬으로 컨트롤이 가능한 것으로 보입니다.
이를 구현하는 방법도 두 가지로 나뉠 수 있는데
Airflow 워커 서버에 Google drive를 마운트 시키는 방법
파이썬 코드로 Google drive 에 접속하는 방법
혹시 961024님이 회사에서 사용하는 airflow 의 환경이 어떤가요?
멀티 노드로 구성되었는지, OS는 ubuntu를 사용중일까요?
만약 멀티노드로 구성되어 있다면 worker 노드들에 OS 패키지를 설치하면 Google drive를 파일시스템으로 마운트할 수 있습니다 아래 사이트 참조해보세요 (https://codechacha.com/ko/ubuntu-how-to-mount-google-drive/)
그렇다면 task1 은 파일시스템 내 파일을 찾는 방법으로 충분히 구현할 수 있습니다.
2번 방법으로 진행한다면 파이썬 코드내에서 Google drive 에 접속 & 파일을 다운로드 받는 식으로 구현할 수 있습니다. 아래 사이트 참조해보세요(https://ysyblog.tistory.com/296)
답변이 되었을까요?
답글
이동준
2023.12.10헛 세세히 답변주셔서 정말 감사드립니다!
가능하다고 해주셔서 기쁩니다 🙂 말씀해주신 방법으로 시도해보고 dag 완성되면 꼭 말씀드리겠습니다.
제가 효율화 하고싶은 작업이있어 강의를 수강중이고 사실 아직 airflow를 실무에 사용해보지는 못했는데요.
airflow 환경도 다시 확인해보고 환경에따라 말씀해주신 방법 한번 적용해보도록하겠습니다!
주말에도 답변주셔서 정말 감사합니다. 좋은 한주 되세요!