inflearn logo
강의

講義

知識共有

Airflowマスタークラス

Bash operator DAGの作成 & DAGディレクトリの設定

테이블 적재 Task 작성 실습

35

dhleegarret

投稿した質問数 7

0

안녕하세요,

혹시 본 강의에서 Google BigQuery나 Redshift 등 클라우드 DB에 데이터를 적재하는 DAG를 생성하는 실습도 있을까요?

실질적으로 해당 내용이 필요하여 문의드립니다!

python 데이터-엔지니어링 airflow

回答 2

0

hyunjinkim

안녕하세요 dhleegarret

회신이 좀 늦었습니다.

우선 Bigquery, Redshift 로 적재하는 실습은 따로 없습니다.

모든 저장소의 케이스별로 적재 시나리오를 담을 수 없기 때문에 해당 커리큘럼이 없는 점은 양해바랍니다. 그런데 bigquery, redshift 모두 공식 오퍼레이터를 제공해주고 있습니다.

그래서 그 오퍼레이터를 가져다 쓰셔도 되고 만약 오퍼레이터의 기능이 만족되지 않으면 파이썬 API를 참고해서 직접 커스텀 오퍼레이터를 만들어 써도 됩니다. 저도 지난 프로젝트때 공식 오퍼레이터를 쓰기도 했고 만들어 쓰기도 했어요.

Airflow의 가장 큰 장점중의 하나가 그런 외부 솔루션들 연계가 쉽다는거라서 한번 연동해보시길 권장드립니다.

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다.

d h l e e g a r r e t님, 문의하신 Google BigQuery나 Amazon Redshift로 데이터를 적재하는 DAG 실습이 강의에 포함되어 있는지는 강의 커리큘럼의 실습 목록을 확인하는 것이 가장 정확합니다.

일반적으로 Airflow에서는 다음과 같은 방식으로 클라우드 DB 적재 Task를 작성합니다.

  • BigQuery: GCSToBigQueryOperator, BigQueryInsertJobOperator
  • Redshift: RedshiftSQLOperator 또는 PostgresOperator
  • 인증 정보: Airflow Connection, 클라우드 IAM 역할, 서비스 계정 설정
  • 적재 흐름: 파일 생성 또는 추출 → 클라우드 스토리지 업로드 → DB 적재 → 검증

예를 들어 BigQuery 적재는 다음과 같이 구성할 수 있습니다.

from airflow import DAG
from airflow.providers.google.cloud.transfers.gcs_to_bigquery import GCSToBigQueryOperator
from datetime import datetime

with DAG(
    dag_id="load_to_bigquery",
    start_date=datetime(2024, 1, 1),
    schedule=None,
    catchup=False,
) as dag:

    load_task = GCSToBigQueryOperator(
        task_id="load_csv_to_bigquery",
        bucket="my-data-bucket",
        source_objects=["data/sample.csv"],
        destination_project_dataset_table="my-project.my_dataset.sample",
        source_format="CSV",
        skip_leading_rows=1,
        write_disposition="WRITE_APPEND",
        gcp_conn_id="google_cloud_default",
    )

강의에서 해당 클라우드 DB 실습을 다루지 않더라도, 위 오퍼레이터와 Airflow Provider 패키지를 활용하면 실무 형태로 확장할 수 있습니다.

참고 문서:

WSL에서 Airflow 실행 시 로컬 venv 라이브러리 사용 여부 및 관리 방법

0

54

2

dags_email_on_failure

0

59

3

DAG 실습 - dags_bash_operator 실행 실패

0

71

3

pykrx 회원제 전환으로 인한 실습 불가

0

174

2

수료증 발급

0

118

3

에러 발생 관련 질문드립니다.

0

135

2

vscode 작업화면에 오류가 발생하지 않습니다.

0

112

2

plugins 폴더 생성

0

112

2

WSL에서 git push 가 안되요 ㅠ

0

174

2

chatGPT&Airflow로 블로그 자동 포스팅하기 는 Deprecated 가 필요합니다.

0

103

2

github에 회원가입이 안되는데 원인이 뭔지 모르겠어요 ㅠ

0

919

2

설치중인데 venv를 꼭 써야할까요?

0

157

2

설치 버전 관련 질문입니다.

0

99

1

우분투 버전 다운받아야하는데 어떤걸로 설치해야할까요?

0

80

1

DAG 만들기 중 airflow 패키지 로드 에러

0

145

2

3.0에서도 수업노트가 성립하는지 확인 부탁드립니다!

0

136

3

task_id 사용법이 뭔가 바뀐 것 같습니다.

0

112

3

email operator 오류 관련

0

79

2

plugins 폴더 관련

0

133

2

bash operator 관련 문의입니다

0

106

3

스케쥴러 - DAG 파싱 부하 줄이는 과정 질문

0

109

2

Dags refresh 주기 관련 질문

0

151

2

wsl 관련 질문입니다.!

0

115

2

macOS에서 docker 설치

0

126

2