728x90
반응형
반응형
728x90
Google BigQuery는 대규모 데이터 분석을 지원하는 완전 관리형 데이터 웨어하우스입니다. 이를 통해 데이터 생성과 ETL(Extract, Transform, Load) 작업을 간소화할 수 있습니다. 아래에 단계별로 이를 구현하는 방법을 소개합니다.
1. 데이터 생성 간소화
1.1 데이터셋 생성
BigQuery에서 데이터를 관리하기 위해 먼저 데이터셋을 생성합니다.
- 콘솔에서 데이터셋 생성
- Google Cloud Console에서 BigQuery 페이지로 이동합니다.
- 프로젝트를 선택한 후, 왼쪽 패널에서 + 데이터셋 만들기 클릭.
- 데이터셋 이름, 위치, 만료 시간 등을 설정하고 만들기 클릭.
- 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 Scheduler와 Cloud 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
반응형
'※ IT관련' 카테고리의 다른 글
"Google Cloud Functions 코드 업로드: Cloud Console과 gcloud CLI 비교" (0) | 2025.01.12 |
---|---|
"새로 산 USB가 작동하지 않을 때, 시도해볼 8가지 방법" (0) | 2025.01.11 |
"Google Cloud 서비스 - 데이터 분석 및 AI/ML 및 네트워킹 그리고 보안" (0) | 2025.01.11 |
"Google Cloud 서비스 - 컴퓨팅 & 데이터 저장 및 관리" (2) | 2025.01.11 |
"Airflow 워크플로우를 이해하는 5가지 핵심 포인트" (0) | 2025.01.10 |