본문 바로가기
※ IT관련

"Google BigQuery에서 데이터 생성 및 ETL 프로세스 간소화하기"

by 홍길동젼 2025. 1. 11.
728x90
반응형
반응형
728x90

Google BigQuery는 대규모 데이터 분석을 지원하는 완전 관리형 데이터 웨어하우스입니다. 이를 통해 데이터 생성과 ETL(Extract, Transform, Load) 작업을 간소화할 수 있습니다. 아래에 단계별로 이를 구현하는 방법을 소개합니다.

 

1. 데이터 생성 간소화

1.1 데이터셋 생성

BigQuery에서 데이터를 관리하기 위해 먼저 데이터셋을 생성합니다.

  • 콘솔에서 데이터셋 생성
    1. Google Cloud Console에서 BigQuery 페이지로 이동합니다.
    2. 프로젝트를 선택한 후, 왼쪽 패널에서 + 데이터셋 만들기 클릭.
    3. 데이터셋 이름, 위치, 만료 시간 등을 설정하고 만들기 클릭.
  • gcloud CLI
  • gcloud bigquery datasets create [DATASET_NAME] --location=US

 

1.2 테이블 생성 및 데이터 로드

BigQuery 테이블을 생성하고 데이터를 로드할 수 있습니다.

  • CSV 또는 JSON 데이터 로드
    • 콘솔에서 테이블 만들기를 클릭.
    • 데이터 소스를 Google Cloud Storage, 로컬 파일 등으로 선택.
    • 데이터 형식(CSV, JSON 등)과 스키마를 설정한 뒤 만들기 클릭.
  • SQL로 테이블 생성
  • CREATE TABLE my_dataset.my_table ( id INT64, name STRING, created_at TIMESTAMP );
  • 데이터 삽입
  • INSERT INTO my_dataset.my_table (id, name, created_at) VALUES (1, 'Alice', CURRENT_TIMESTAMP), (2, 'Bob', CURRENT_TIMESTAMP);

 

2. ETL 프로세스 간소화

2.1 Extract: 데이터 추출

BigQuery는 외부 데이터 소스를 손쉽게 가져올 수 있습니다.

  • Cloud Storage에서 데이터 로드
  • bq load --source_format=CSV \ my_dataset.my_table \ gs://my_bucket/my_data.csv \ id:INTEGER,name:STRING,created_at:TIMESTAMP
  • Cloud Functions와 통합 데이터를 실시간으로 추출하려면 Google Cloud Functions를 사용해 자동화된 파이프라인을 구축합니다.

 

2.2 Transform: 데이터 변환

SQL을 사용해 데이터를 변환합니다.

  • 기본 SQL 변환
  • CREATE TABLE my_dataset.transformed_table AS SELECT id, UPPER(name) AS name_uppercase, FORMAT_TIMESTAMP('%Y-%m-%d', created_at) AS created_date FROM my_dataset.my_table;
  • 복잡한 변환 복잡한 변환 작업은 BigQuery Scripting을 사용해 처리할 수 있습니다.
  • BEGIN DECLARE current_date DATE; SET current_date = CURRENT_DATE(); INSERT INTO my_dataset.transformed_table (id, name_uppercase, created_date) SELECT id, UPPER(name), FORMAT_TIMESTAMP('%Y-%m-%d', created_at) FROM my_dataset.my_table; END;

 

2.3 Load: 데이터 적재

BigQuery는 ETL 프로세스의 최종 단계로 데이터를 데이터 웨어하우스에 적재합니다.

  • Table-to-Table 데이터 적재 데이터를 기존 테이블에서 새 테이블로 적재:
  • INSERT INTO my_dataset.final_table SELECT * FROM my_dataset.transformed_table;
  • Cloud Scheduler로 작업 예약 ETL 작업을 정기적으로 실행하려면 Cloud SchedulerCloud Functions를 결합해 자동화를 구현합니다.

 

3. 자동화 및 최적화

3.1 Airflow 통합

Apache Airflow를 사용해 ETL 워크플로우를 자동화할 수 있습니다.

from airflow.providers.google.cloud.operators.bigquery import BigQueryInsertJobOperator

bq_transform_task = BigQueryInsertJobOperator(
    task_id="transform_data",
    configuration={
        "query": {
            "query": """
                SELECT id, UPPER(name) AS name, created_at
                FROM `my_project.my_dataset.my_table`
            """,
            "useLegacySql": False,
        },
    },
    gcp_conn_id="google_cloud_default",
)

 

 

3.2 Query Insights 사용

  • Query Insights를 통해 쿼리 성능을 분석하고 최적화합니다.
  • BigQuery 콘솔에서 쿼리 비용과 실행 시간을 확인하여 병목 현상을 제거하세요.

 

>> 결론

BigQuery는 데이터 생성과 ETL 프로세스를 손쉽게 통합할 수 있는 도구를 제공합니다. SQL 기반의 데이터 변환, Cloud Storage와의 연계, 자동화 도구(Airflow, Cloud Functions) 등을 활용하면 복잡한 데이터 파이프라인도 간단히 관리할 수 있습니다.

728x90
반응형