전체 글
-
airflow 내가 만난 에러- [ERROR] Connection in use: ('::', 8793)Data engineering/Airflow 2023. 9. 15. 15:14
필자는 github에 airflow를 올리는 과정에서 많은 trouble이 발생하였는데, 그 중 하나를 기록하고자 한다. (내가 다시 찾아 보기 위해...) 무언가,,, pid 혹은 포트 때문이라 짐작은 했지만? 숨어있는 것 같아서 chat GPT의 도움을 받았다. 위와 같은 답변을 받았고, 현재 wsl을 이용한 리눅스 기반이기 때문에, 첫번째 명령어를 이용하였다. 이후, gunicorn 이 tcp로 통신을 하고 있었기 때문에, 저 아이들의 PID를 찾아서 제거해주었다. 3개 제거 후, airflow scheduler 라는 명령어를 이용하여 web ui에 들어갔을 때, scheduler가 업데이트 되었다면 성공!
-
airflow를 이용하여 bigquery에 공공 API 데이터 적재 파이프라인 생성기Data engineering/Airflow 2023. 9. 14. 14:24
드디어 필자는 airflow에 공공 API를 이용하여 빅쿼리에 적재하는 파이프라인을 성공시켰다!!!!!!!! 이어서 쿼리를 통해, 필요한 정보만 뽑아오는 작업을 통해 머신러닝이나, 시각화에 필요한 데이터들로 만들어 보겠다. (나중 예정) 먼저, 아주 간단한 파이프 라인을 그려보았다. 1. 서울시 부동산 실거래가 정보에 대한 공공데이터에서 openAPI를 설정한다. (url, service key 등 설정 필요한 것들 미리 준비) 2.먼저, 빅쿼리에 컬럼과 타입만 지정한 빈테이블을 만들어 준다. 그리고 빅쿼리의 경우, insert 보다는 테이블을 삭제하고, 새로 적재하는 것이 더 낫기 때문에(비용 적인 측면), 삭제 로직을 넣는다. 3. 쿼리를 통한 삭제 로직이 이루어지지 않으면 -> 오류로 인해 중지되고..
-
airflow를 빅쿼리에 연결 후, 빅쿼리 dataset 만들기Data engineering/Airflow 2023. 9. 12. 15:57
필자는 airflow를 빅쿼리에 연결하는데 시간소요가 많이 되었다... airflow의 잦은 릴리즈 이유로 ㅠㅠ (최근엔 한달에 한번씩 릴리즈...) 끝내 GCP에 연결되었고, 간단한 dag 작성을 통해 빅쿼리 dataset 생성에 성공하였다! 이것이 바로 4번 만에 성공한,,,(실제로는 20번 넘을듯) 빅쿼리 파이프 라인이다. 빅쿼리 연결 부분은 다른 포스팅에서 했지만, 버전의 문제인지 admin에서 connection만 한다고 되는 것이 아니였다. 그래서 기존의 빅쿼리 연결 클래스를 이용하여, 도전했다. 먼저, main에는 간단한 함수 하나를 만들어 준다. main.py def bigquery_test2(): data = ctrl_getpublic().createdataset() return {'da..
-
airflow와 빅쿼리 연결 테스트 중 내가 만난 error - ('invalid_grant: Invalid JWT: Token must be a short-lived token (60 minutes) and in a reasonable timeframe. Check your iat and exp values in the JWT claim.', {'error': 'invalid_grant', 'er..Data engineering/Airflow 2023. 9. 12. 10:00
필자는 빅쿼리와 에어플로우를 연결하여 데이터 파이프 라인을 보고 싶은(?) 목적을 위해 테스트 해보던 중 처음 보는 오류를 만났다. 오류 내용을 보면, 토큰 문제라고 하는데... 걱정이 되었지만 해결 방법을 찾았다! 아마, WSL을 사용하여 로컬에서 진행중인데, 네트워크 타임 프로토콜과 싱크가 맞지 않아서 인 듯 하다! 해결하기 위한 방법은 아래와 같다. 1. WSL의 cmd 창에 들어간다. 2. sudo hwclock --hctosys 3. sudo apt-get update 4. sudo apt-get install ntp 5. sudo service ntp start 6. sudo systemctl enable ntp 를 하고 난 뒤, sudo vi /etc/ntp.conf 에 들어가서 제일 마지막..
-
airflow에서 bigquery연결 할 때 만난 에러 - raise packaging.version.InvalidVersion(f"{str(ex)} {info}") from None pkg_resources.extern.packaging.version.InvalidVersion: Invalid version: '0.23ubuntu1' (package: distro-info)Data engineering/Airflow 2023. 9. 6. 18:20
필자는 airflow에서 빅쿼리 연결 도중 계속 셧다운 되는 오류를 만났다... 이것으로 1주일 정도를 헤매었지만(지금도 진행중) 일단은 위에 만난 ubuntu 오류를 하나 해결되었다. Invalid version: '0.23ubuntu1' error. 위와 같은 오류는 pip install --upgrade setuptools=58.3.0 버전을 맞춰줌으로써, 성공적으로 apache-airflow-backport-providers-amazon[google] 다운을 완료하였다. 물론 다른 이유로 다시 오류가 날 수 있지만, 차근 차근 더 해결해보도록 하겠다.
-
airflow dag작성 및 실행해보기Data engineering/Airflow 2023. 8. 29. 21:35
필자는 bigquery 배치를 연결하기 전에 dag에 대해 자세히 알아보고, dag를 작성하여 실행 해보도록 하겠다. dag란? - Directed acyclic graph 로 비선형 그래프이다. - 하나의 작업 단위를 task라 부르고, 여러 개의 task가 합쳐져 dag를 구성한다. - task 간에는 >> , Empty Operator airflow.operators.dummy -> airflow.operators.empty 아무 작업을 하지 않는 operator, 보통 시작과 종료를 나타내거나, 다른 작업을 그룹화 하는데 사용 (현재는 dummy 대신 empty를 사용한다 -> 공식 홈페이지 참고: https://airflow.apache.org/docs/apache-airflow/2.3.0/_a..
-
airflow에 빅쿼리 연결하기Data engineering/Airflow 2023. 8. 28. 21:21
필자는 airflow에 빅쿼리를 연결하려고 한다 -> 빅쿼리에 연계된 배치를 연결하기 위해 찾아본 결과 , 간편하게 웹페이지에서 연결할 수 있다! 1. admin > connections를 클릭한다. 2. + 혹은 add 를 누른다. 3. 클릭해서 들어가서 체크 항목을 기입한다. conection id : DAG 작성할 때 지정할 id connection type : google cloud로 지정한다 project id : 빅쿼리 프로젝트 id keyfile path: service account key 파일을 지정한다. 위 부분을 채웠으면, 이를 바탕으로 다음 포스트에서 DAG를 만들고 실행해보도록 하겠다.
-
airflow의 CLI 사용법Data engineering/Airflow 2023. 8. 23. 20:03
airflow에는 group 커맨드와 그냥 커맨드가 존재한다. 간략하게 커맨드 사용법에 대해 알아보도록 하겠다! $ airflow -h를 통해 알 수 있다. - > -h = help user 생성 및 유저 리스트를 볼 때 : $ airflow users list 유저 생성 할 때 -> airflow users create -h 이런식으로 -h를 붙일 것 (아래의 example에 따라 설정 하면 유저 생성 가능) tasks 관련하여 파헤쳐보기 $ airflow tasks -h 명령어를 이용하여 list, run, state 등등 알아 볼 수 있다. 이 중에 dags 리스트 중에 example_xcom(dag 이름) 에 대해 깊게 알아보자 $ airflow tasks list example_xcom -> 어..