일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- not in
- Round
- mysql :=
- join
- hackerrank
- SUM
- PostgreSQL
- SQL
- having
- 전처리
- seaborn
- Oracle
- 결측값
- 데이터리안 웨비나
- solvesql
- 다중 JOIN
- SQLite
- 파이썬
- 데이터시각화
- matplotlib
- Limit
- 프로그래머스
- GROUPBY
- pandas
- 데이터분석
- 그로스해킹
- MySQL
- 머신러닝
- TRUNCATE
- airflow 설치
- Today
- Total
Milky's note
GCP Repositories를 사용해서 Airflow DAG 반영하기 본문
GCP에서 스케줄 작업을 할 때 가장 많이 사용하는 방법이
VM Instance에 Airflow를 설치해서 사용하는 방법이다.
소스의 편한 형상관리와 Airflow DAG 코드를 쉽게 반영하기 위해서
GCP의 Repositories를 사용한다.
그래서 이번에는 GCP의 Repositories를 사용해서 DAG 코드를 Airflow 서버에 반영하는 방법에 대해서 간단하게 설명하려고 한다.
여기서 구성할 DAG는 Open API인 환율 구하는 API를 사용해서 전처리하여 daily로 해당일의 환율을 빅쿼리에 적재하려고 한다.
[DAG 코드는 다음과 같이 작성한 상태]
환율 API 호출(extract) → 판다스를 통한 전처리(transform) → 빅쿼리 적재(load)
API 호출을 위한 인증 키는 미리 발급 받아야함
1. 빅쿼리 테이블 생성
먼저 데이터를 적재할 테이블을 생성해주어야 한다.
데이터 세트(스키마 개념)를 만들어주고
생성된 데이터 세트에서 테이블을 생성해준다.
다음과 같이 UI로 해도 되고 DDL 문을 사용해서 만들어주어도 된다.
나는 바로 적재할 예정이기 때문에 빈 테이블을 선택하였다.
기존에 GCS(Storage)에 있는 테이블을 선택하려면 테이블을 만들 소스를 변경해주면 된다.
그러면 테이블이 생성된 것을 확인할 수 있다.
2. Repositories Clone
DAG 코드를 Repositories에서 관리하기 위해 Repositories를 생성하고 연결을 해주어야 한다.
Repositories를 Clone해서 로컬 VS Code에서 보다 편하게 관리하려고 한다.
Clone를 하기 위해선 SSH 인증을 받아야한다.
SSH 인증 방식은 여러가지가 있지만 나는 Google Cloud SDK를 사용해서 인증할 예정이다.
인증 방법 참고 : https://cloud.google.com/source-repositories/docs/authentication?hl=ko#windows
아래처럼 Repositories에서 [클론]을 누르면 [설정 방법 보기]가 나오는데 이걸 클릭해준다.
그러면 다음과 같이 SDK를 이용한 인증 방법이 자세하게 나온다.
우선 SDK를 설치해야한다.
설치 링크 : https://dl.google.com/dl/cloudsdk/channels/rapid/GoogleCloudSDKInstaller.exe?hl=ko
위의 설치 링크를 통해서 설치를 해보자 !
설치 방법은 간단하다.
그리고 바로 Google Cloud SDK Shell을 실행시켜서 SDK command들을 실행시켜주면 된다.
첫번째 command를 입력한다.
그러면 browser가 열리면서 인증을 하라는 내용이 뜬다.
인증 방법은 간단하게 로그인만 해주고 승인을 해주면 된다.
그리고 나서 다시 SDK Shell에 나머지 command를 입력해준다.
push까지는 해주지 않아도 되고 clone만 해도 된다.
clone를 하고 난 뒤 VS code로 와서 clone한 repo를 선택해준다.
그리고 동의를 한 번 해주면 clone뜬 repo가 vs code와 연동이 된다.
Airflow에 반영할 DAG를 새로 작성하고 Push를 했더니 다음과 같은 오류가 발생하였다.
config를 해주지 않아서 발생한 오류이다.
SDK Shell에서 이름과 이메일을 설정해준다.
config를 수정하고 다시 push를 하면 정상적으로 Repositories에 반영된 것을 확인할 수 있다.
3. Airflow 반영(pull)
위의 과정을 통하여 Repositories에 push한 소스들을 airflow 서버에서 pull을 해주어야 DAG들이 반영이 된다.
VM 인스턴스에서 SSH 연결을 통하여 airflow에 접속한다.
airflow를 설치할때 사용한 설치 계정으로 login을 해준다. (sudo login airflow계정)
그리고 git이 설치되어 있는 경로로 가서 pull을 해주면 된다.
airflow 서버에 가보면 DAG가 반영된 것을 볼 수 있다!!
실행을 시키면 ETL 작업이 정상적으로 완료된 것을 확인할 수 있다.
최종 적재 타겟인 빅쿼리 테이블에서도 확인을 해주면 된다.
'DevOps > GCP' 카테고리의 다른 글
[GCP] VM Instance 생성 및 고정 IP 할당 (0) | 2024.07.10 |
---|---|
로컬에서 GCP SSH 접속(Mac) (0) | 2022.12.08 |