Airflow BigQuery 환경 구축

BAO.DE·2025년 2월 27일

Apache Airflow

목록 보기
5/20
post-thumbnail

Create GCP Account

GCP 계정만들고 API 사용을 위한 key발급

로컬에 json 타입은 key 저장

기본 포맷은 다음과 같이 구성됨

JSON Key file

{
  "type": ,
  "project_id": ,
  "private_key_id": ,
  "private_key": ,
  "client_email": ,
  "client_id": ,
  "auth_uri": ,
  "token_uri": ,
  "auth_provider_x509_cert_url": ,
  "client_x509_cert_url": ,
  "universe_domain": 
}

Airflow Connection

발급받은 service account를 docker-compose-yaml에 DIR에 등록시켜줘야한다.

data 디렉토리를 만들어주고 해당 폴더에 servcie-account.json 등록

Docker-compose-yaml 수정

기본 AIRFLOW PROJ DIR에 설정경로에서

- ${AIRFLOW_PROJ_DIR:-.}/data:/opt/airflow/data  <-추가

로컬 ./data 폴더에 GCP 서비스 계정 키파일 (.json)을 넣으면, Airflow 컨테이너에서도 해당 키를 읽을 수 있게 됨

Airflow 웹 UI → Admin → Connections → + 클릭

Conn Id: google_cloud_default

Conn Type: Google Cloud

Keyfile Path: /opt/airflow/keys/example-key.json

Project Id: <your-project-id>

Scopes (선택): https://www.googleapis.com/auth/cloud-platform


Connection 정보 생성 후 테스트

Connection 정보 불러오기

docker-compose  
Airflow webserber ID로 접속해서 
airflow connections list

Bigquery Hook 사용해서 데이테셋 조회

from airflow.providers.google.cloud.hooks.bigquery import BigQueryHook

hook = BigQueryHook(gcp_conn_id='google_cloud_default')
client = hook.get_client()

datasets = list(client.list_datasets())  # 모든 데이터셋 목록

for dataset in datasets:
    print(f"📂 Dataset ID: {dataset.dataset_id}")

결과조회

사전에 만들어둔 데이터셋이 잘 조회됨

0개의 댓글