본문 바로가기
IT/Etc

데이터 엔지니어링 on Google Cloud (2/4)

by 조병희 2025. 4. 7.

배치(일괄) 데이터 파이프라인의 개념, 구축 방법, Google Cloud Platform (GCP) 상에서의 실행 및 관리 전략에 대해 살펴 보겠습니다. 배치 파이프라인의 기본 개념부터 ELT/ETL 프로세스, 데이터 품질 고려 사항, GCP의 주요 서비스 (BigQuery, Dataproc, Dataflow, Cloud Data Fusion, Cloud Composer, Data Catalog) 활용 방안, 그리고 파이프라인 최적화 및 관리 전략에 이르기까지 광범위한 주제를 다룹니다.

배치 데이터 파이프라인의 기본 개념:

  • 배치 파이프라인은 "제한된 양의 데이터를 처리한 다음 종료하는 파이프라인입니다." 예를 들어, 매일의 거래 데이터를 처리하고 데이터 웨어하우스에 기록하는 파이프라인이 있습니다.
  • 데이터 처리 방식에는 추출(Extract), 로드(Load), 변환(Transform)의 순서에 따라 EL, ELT, ETL의 세 가지 주요 패턴이 있습니다.
  •  
  • EL: 데이터를 추출한 후 변환 없이 바로 로드합니다.
  •  
  • ELT: 데이터를 있는 그대로 로드한 다음 BigQuery와 같은 환경에서 SQL을 사용하여 변환합니다. 이는 "데이터를 사용 가능하게 만들기 위해 어떤 종류의 변환이 필요한지 아직 확실하지 않은 실험용 데이터 세트"나 "변환을 SQL로 표현할 수 있는 모든 프로덕션 데이터 세트"에 유용합니다.
  •  
  • ETL: 데이터를 추출, 변환한 후 데이터 웨어하우스로 로드합니다.

데이터 품질 고려 사항:

  • 데이터 품질은 유효성, 정확성, 완결성, 일관성, 균일성의 다섯 가지 측면으로 정의됩니다.
  • 데이터 품질 문제는 데이터 분석을 방해하고 잘못된 비즈니스 결정으로 이어질 수 있으므로 중요하게 다루어져야 합니다.
  •  
  • BigQuery는 SQL과 뷰를 사용하여 중복 레코드 제거, 범위를 벗어난 데이터 필터링, NULL/BLANK 값 처리 등 많은 데이터 품질 문제를 해결할 수 있습니다. 예를 들어, "잘못된 데이터는 BigQuery 뷰를 사용하여 필터링할 수 있으며 누구나 원시 데이터가 아닌 뷰에 액세스할 수 있습니다."
  •  
  • 정확성을 위해서는 알려진 양호한 값에 대해 데이터를 테스트하거나, 객관적인 참조 데이터 세트에 대해 값을 조회할 수 있습니다 (SQL의 IN() with subquery 또는 JOIN).
  •  
  • 완결성을 위해서는 누락된 값을 식별하고 필터링하거나 적절한 값으로 대체하며 (NULLIF(), IFNULL(), COALESCE()), UNION 및 JOIN을 사용하여 기존 데이터 세트를 강화할 수 있습니다. 데이터 삭제를 감지하고 공백을 채우는 '백필' 기능도 일부 Data Transfer Service에서 제공합니다.
  •  
  • 일관성 문제는 종종 중복으로 인해 발생하며, COUNT(field)와 COUNT(DISTINCT field)를 비교하거나 GROUP BY를 사용하여 중복을 감지할 수 있습니다. 또한 문자열 함수 (PARSE_DATE(), SUBSTR(), REPLACE())를 사용하여 데이터를 정리할 수 있습니다.
  •  
  • 균일성을 위해서는 데이터 유형을 명확히 하고 (CAST()), FORMAT() 함수를 사용하여 단위를 명확하게 표시하며, 접근 방식을 문서화하고 주석 처리해야 합니다.

https://cloud.google.com/blog/products/gcp/improving-data-quality-for-machine-learning-and-analytics-with-cloud-dataprep?hl=en

 

Improving data quality for machine learning and analytics with Cloud Dataprep | Google Cloud Blog

Advanced profiling If you click “Show more”, or click the column header menu and “column details” in the main grid, you’ll land on a comprehensive data profiling page with some details about mismatched values, value distribution, or outliers. You

cloud.google.com

 

GCP를 활용한 데이터 파이프라인 구축 및 실행:

  • BigQuery: 데이터 웨어하우스로서 ELT 프로세스의 'T' 역할을 수행하며, SQL을 이용한 데이터 품질 관리 및 분석을 지원합니다. 뷰를 통해 데이터 품질 문제가 있는 행을 필터링할 수 있습니다.
  •  
  • Dataproc: Hadoop 및 Spark 워크로드를 실행하는 관리형 서비스입니다. 온프레미스 Hadoop 클러스터의 제약 사항 (스토리지와 컴퓨팅 결합, 확장 어려움)을 극복하고, Hadoop 기본 지원, 관리형 하드웨어 및 구성, 간편한 버전 관리, 유연한 작업 구성 등의 이점을 제공합니다. "Dataproc을 사용하면 대부분의 기존 작업을 최소한의 수정만으로 실행할 수 있으므로 이미 익숙한 모든 Hadoop 도구를 계속 사용해도 무방합니다."
  • HDFS 대신 Cloud Storage를 사용하여 스토리지와 컴퓨팅을 분리하고 비용 효율성을 높일 수 있습니다. Cloud Storage는 대규모 병렬 작업에 최적화되어 있습니다.
  • Dataproc 클러스터는 관리자 노드, 작업자 노드, 그리고 HDFS로 구성될 수 있습니다. 선점형 VM을 사용하여 비용을 절감할 수 있습니다.
  • 클러스터 설정, 구성, 최적화, 활용, 모니터링의 라이프사이클을 따릅니다. 자동 확장 기능을 통해 워크로드 변화에 따라 클러스터 크기를 동적으로 조정할 수 있습니다.
  • 작업 제출은 콘솔, gcloud 명령어, REST API를 통해 가능하며, Dataproc Workflow Templates 및 Cloud Composer와 같은 오케스트레이션 서비스를 활용할 수도 있습니다.
  • Cloud Monitoring 및 Cloud Logging을 통해 클러스터 및 작업 상태를 모니터링하고, 오류를 진단할 수 있습니다. 라벨을 사용하여 로그를 빠르게 찾을 수 있습니다.

https://cloud.google.com/dataproc/docs/concepts/overview?hl=ko

 

Dataproc 개요  |  Dataproc Documentation  |  Google Cloud

의견 보내기 Dataproc 개요 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. Dataproc은 일괄 처리, 쿼리, 스트리밍, 머신러닝에 오픈소스 데이터 도구를 활용할 수

cloud.google.com

 

  • Dataflow: 배치 및 스트리밍 데이터를 위한 서버리스 데이터 처리 서비스입니다. 확장성, 짧은 지연 시간, 정확히 한 번 처리(exactly-once) 시맨틱스, 풍부한 시간 추적, 다른 GCP 서비스와의 우수한 통합 등의 장점을 제공합니다.
  • Apache Beam을 기반으로 하며, 동일한 코드로 배치 및 스트림 처리가 가능합니다.
  • 파이프라인은 소스(Source), 변환(PTransform), 싱크(Sink)로 구성된 방향성 그래프입니다. PCollection은 파이프라인의 기본 데이터 단위입니다.
  • Dataflow 서비스는 작업 스케줄링, 리소스 자동 확장, 그래프 최적화, 동적 작업 재분배, 모니터링, 자동 복구 등을 자동으로 관리합니다. "Dataflow는 데이터를 처리하는 안정적인 서버리스 작업별 서비스입니다."
  • GroupByKey를 사용하여 집계하고 조합할 때 데이터 편향을 고려해야 합니다. 부차 입력을 사용하여 파이프라인의 다른 부분에서 계산된 값을 활용할 수 있습니다.
  • Dataflow 템플릿을 사용하여 개발 환경과 프로덕션 환경을 분리하고, 개발자가 아닌 사용자도 파이프라인을 실행할 수 있도록 합니다.

https://cloud.google.com/dataflow/docs/overview?hl=ko

 

Dataflow 개요  |  Google Cloud

의견 보내기 Dataflow 개요 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. Dataflow는 통합 스트림 및 일괄 데이터 처리를 대규모로 제공하는 Google Cloud 서비스입

cloud.google.com

wordcount example:

counts = (
        lines
        | 'Split' >> (beam.ParDo(WordExtractingDoFn()).with_output_types(str))
        | 'lowercase' >> beam.Map(str.lower)
        | 'PairWithOne' >> beam.Map(lambda x: (x, 1))
        | 'GroupAndSum' >> beam.CombinePerKey(sum)) 
        
...

python wordcount.py \
    --region DATAFLOW_REGION \
    --input gs://dataflow-samples/shakespeare/kinglear.txt \
    --output gs://BUCKET_NAME/results/outputs \
    --runner DataflowRunner \
    --project PROJECT_ID \
    --temp_location gs://BUCKET_NAME/tmp/
  •  
  • Cloud Data Fusion: 코딩 없이 시각적 인터페이스를 통해 데이터 파이프라인을 빠르게 구축하고 관리할 수 있는 완전 관리형 클라우드 네이티브 기업 데이터 통합 서비스입니다.
  • 다양한 데이터 소스 (관계형 DB, 파일 시스템, 클라우드 서비스 등)에 대한 풍부한 커넥터 생태계를 제공합니다.
  • 생산성 향상, 복잡성 감소, 유연성 향상 등의 이점을 제공합니다. "Cloud Data Fusion은 그래픽 사용자 인터페이스를 제공하여 코딩이 필요 없는 데이터 파이프라인을 빌드합니다."
  • 통합 메타데이터 관리, 데이터 세트 및 필드 수준 계보 추적, 파이프라인 템플릿화, 규칙 엔진, 메타데이터 애그리게이터 등의 기능을 제공합니다.
  • Wrangler UI를 통해 데이터 세트를 탐색하고 변환 레시피를 시각적으로 구축할 수 있습니다.
  • 파이프라인 상태 모니터링, 미리보기 기능, 일정 예약 기능 등을 제공하여 파이프라인 개발 및 운영을 용이하게 합니다.

https://cloud.google.com/data-fusion/docs/concepts/overview?hl=ko

 

Cloud Data Fusion 개요  |  Cloud Data Fusion Documentation  |  Google Cloud

Cloud Data Fusion의 핵심 개념을 설명합니다.

cloud.google.com

 

  • Cloud Composer: Apache Airflow를 기반으로 하는 완전 관리형 워크플로 오케스트레이션 서비스입니다.
  • DAG (Directed Acyclic Graph)를 사용하여 워크플로를 정의하고, 연산자(Operator)를 사용하여 각 작업 단계를 정의합니다.
  • 워크플로 예약, 모니터링, 로깅 기능을 제공합니다.
  • Airflow 웹 UI를 통해 워크플로 상태를 확인하고 상호작용할 수 있습니다.
  • Cloud Functions와 연동하여 이벤트 기반 (푸시) 아키텍처를 구축하거나, 설정된 시간에 Cloud Storage 폴더를 확인하는 풀 (예약 기반) 아키텍처를 사용할 수 있습니다.
  • Vertex AI 연산자를 사용하여 머신러닝 모델 학습 및 배포 작업을 오케스트레이션할 수 있습니다.
  • 하이브리드 파이프라인 구축에 유용하며, 다양한 클라우드 및 온프레미스 서비스와의 연동을 지원하는 연산자를 제공합니다.
  • DAG 실행 기록을 통해 파이프라인 상태를 모니터링하고 오류를 진단할 수 있으며, Cloud Logging을 통해 상세 로그를 확인할 수 있습니다.

https://cloud.google.com/composer/docs/concepts/overview?hl=ko

 

Cloud Composer 개요  |  Google Cloud

Cloud Composer 1은 사후 유지보수 모드 상태입니다. Google은 Airflow의 새 버전, 버그 수정, 보안 업데이트를 비롯한 Cloud Composer 1 추가 업데이트를 출시하지 않습니다. Cloud Composer 2로 마이그레이션하는

cloud.google.com

 

  • Data Catalog: 확장성이 높고 완전 관리형 데이터 탐색 및 메타데이터 관리 서비스입니다.
  • 데이터가 저장된 위치에 관계없이 데이터 세트에 대한 모든 메타데이터를 검색할 수 있도록 합니다.
  • 태그를 사용하여 데이터 세트를 그룹화하고, 민감한 정보가 포함된 열을 플래그 지정하는 등의 작업을 수행할 수 있습니다.
  • 중앙 카탈로그로서 기술 메타데이터 (자동)와 비즈니스 메타데이터 (태그)를 구조화된 형식으로 캡처합니다.
  • Cloud Data Loss Prevention API와 통합되어 민감한 정보를 검색 및 분류하여 데이터 관리 프로세스를 간소화합니다.
  • Data Catalog는 데이터 거버넌스의 기반을 제공하며, 사용자가 공동 작업 방식으로 비즈니스 메타데이터에 주석을 달 수 있도록 합니다.

https://cloud.google.com/data-catalog/docs/concepts/overview?hl=ko

 

Data Catalog 개요  |  Data Catalog Documentation  |  Google Cloud

이 페이지는 Cloud Translation API를 통해 번역되었습니다. 의견 보내기 Data Catalog 개요 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. Dataplex의 Data Catalog 기능은

cloud.google.com

https://cloud.google.com/blog/products/data-analytics/google-cloud-data-catalog-now-available-in-public-beta?hl=en

 

Google Cloud Data Catalog Now Available in Public Beta | Google Cloud Blog

Data Catalog, our fully managed data discovery and metadata management service is now available in public beta so you can quickly discover, manage, and understand your data in Google Cloud.

cloud.google.com

 

데이터 파이프라인 관리 전략:

  • 데이터 계보: 데이터가 어디에서 왔는지, 어떤 과정을 거쳤는지, 현재 상태는 어떠한지를 추적하는 것이 중요합니다. Data Catalog를 활용하여 데이터 계보를 추적하고 메타데이터를 관리할 수 있습니다. 라벨을 사용하여 데이터 세트, 테이블, 뷰를 체계화하고 검색 가능성을 높일 수 있습니다.
  •  
  • 임시 (Ephemeral) 클러스터 활용 (Dataproc): 영구 클러스터 대신 작업 실행 시에만 클러스터를 생성하고 작업 완료 후 삭제하는 임시 클러스터 모델을 사용하여 비용 효율성을 높일 수 있습니다. 작업에 필요한 리소스는 사용 중에만 활성화되므로 사용한 만큼만 비용을 지불하면 됩니다. Cloud Storage를 데이터 지속성 레이어로 사용하고 Dataproc의 빠른 부팅 기능을 활용하는 것이 권장됩니다.
  •  
  • 워크플로 오케스트레이션: Cloud Composer (Apache Airflow) 또는 Cloud Data Fusion의 스케줄링 기능을 사용하여 파이프라인 실행을 자동화하고 관리할 수 있습니다.
  •  
  • 모니터링 및 로깅: Cloud Monitoring 및 Cloud Logging을 사용하여 파이프라인의 상태, 성능, 오류를 지속적으로 모니터링하고 진단해야 합니다.
  •  
  • 비용 최적화 (Dataproc): 선점형 VM 활용, 적절한 클러스터 크기 조정, 작업 범위 클러스터 사용, 자동 확장 기능 활용, 클러스터 예약 삭제 등을 통해 비용을 절감할 수 있습니다.
  •  

제공된 소스들은 GCP를 활용하여 다양한 요구 사항에 맞는 일괄 데이터 파이프라인을 구축하고 관리하기 위한 종합적인 지침을 제공합니다. 핵심은 데이터 처리 목적과 특성에 따라 적절한 GCP 서비스를 선택하고, 데이터 품질을 확보하며, 효율적인 아키텍처와 관리 전략을 적용하는 것입니다. 서버리스 Dataflow, 시각적 인터페이스의 Cloud Data Fusion, 강력한 오케스트레이션 기능의 Cloud Composer, 그리고 Hadoop/Spark 워크로드에 최적화된 Dataproc은 GCP에서 데이터 파이프라인을 구축하고 운영하는 데 필수적인 도구들입니다. 또한 Data Catalog를 통해 데이터 자산을 효율적으로 관리하고 검색하며 데이터 거버넌스를 강화할 수 있습니다.

다음은 Google Cloud의 주요 데이터 서비스인 Dataproc, Dataflow, Data Fusion, Cloud Composer를 비교하는 표입니다. 

항목 Dataproc (데이터프록) Dataflow (데이터플로우) Data Fusion (데이터 퓨전) Cloud Composer (클라우드 컴포저)
주요 사용 사례 - 기존 Hadoop/Spark 워크로드 마이그레이션 (Lift & Shift)
- 오픈소스 빅데이터 프레임워크(Spark, Hive, Presto 등) 관리형 실행
- 대규모 배치 처리
- 확장 가능한 통합 배치 및 스트리밍 데이터 처리
- 새로운 ETL/ELT 파이프라인 구축
- 실시간 분석 및 이벤트 처리
- 서버리스 데이터 처리
- 시각적 ETL/ELT 파이프라인 개발 및 관리
- 코딩 없이 다양한 데이터 소스 통합
- 데이터 엔지니어 및 분석가를 위한 빠른 파이프라인 구축
- 복잡한 데이터 워크플로우 오케스트레이션 및 스케줄링
- 여러 GCP 서비스(Dataproc, Dataflow, BigQuery 등) 및 외부 시스템 연동
- 워크플로우 모니터링 및 관리
기반 기술 Apache Hadoop, Spark, Hive, Presto 등 Apache Beam SDK CDAP (Cask Data Application Platform) - 오픈소스 Apache Airflow
개발 방식/인터페이스 - 코드 기반 (Java, Scala, Python, R)
- GCP 콘솔, CLI, API
- 코드 기반 (Java, Python, Go)
- SQL (일부)
- 템플릿 활용
- 그래픽 사용자 인터페이스 (GUI)
- REST API
- Python (DAG 정의)
- Airflow Web UI
처리 방식 - 배치 중심
- Spark Streaming 통한 스트리밍 가능
- 배치 및 스트리밍 통합 - 배치 중심
- (실시간 파이프라인은 별도 설정 또는 플러그인 필요 가능성)
- 워크플로우 오케스트레이션 (데이터 처리 자체는 다른 서비스가 담당)
관리 모델 - 관리형 클러스터
- 사용자가 클러스터 크기, VM 유형 등 관리
- 완전 관리형, 서버리스
- 자동 확장 및 리소스 관리
- 관리형 서비스
- 사용자는 인스턴스 에디션(Basic/Enterprise) 선택
- 관리형 Airflow 환경
- Airflow 인프라(웹 서버, 스케줄러 등) 관리
필요 기술 - Hadoop/Spark 생태계 경험
- Java, Scala, Python 등
- Apache Beam SDK
- Java, Python, Go 프로그래밍
- GUI 사용 능력
- 데이터 통합 개념 이해
- (필요시 SQL, Python)
- Apache Airflow 개념 (DAG)
- Python 프로그래밍
- 워크플로우 관리
확장성 - 클러스터 수동/자동 확장 - 작업 부하에 따른 자동 확장 - 인스턴스 확장 및 백엔드 실행 엔진(Dataproc/Dataflow) 확장성 의존 - Airflow 환경(Worker 등) 확장
- (실제 작업 확장성은 연동된 서비스에 의존)
비용 모델 - 클러스터 노드별 vCPU/RAM 시간당 비용
- GCP 리소스 비용
- 사용된 vCPU, 메모리, 디스크 등 리소스 기반 초당 비용 - 인스턴스 시간당 비용 (에디션별)
- (백엔드 실행 비용 별도 가능성)
- Composer 환경 크기(vCPU, 메모리 등) 기반 비용
- GKE 클러스터, DB 비용
주요 장점 - 기존 Hadoop/Spark 사용자에게 익숙함
- 환경 제어 용이
- 비용 효율적일 수 있음 (특정 워크로드)
- 생태계 호환성
- 서버리스, 자동 확장
- 배치/스트리밍 통합 모델
- 강력한 처리 엔진
- 다른 GCP 서비스와 통합 용이
- Low-code/No-code 개발
- 시각적 인터페이스
- 다양한 커넥터 지원
- 빠른 개발 속도 (표준 통합 작업)
- 강력한 워크플로우 오케스트레이션
- 표준 기술(Airflow) 기반
- 복잡한 종속성 관리
- 모니터링 및 알림
주요 고려 사항 - 클러스터 관리 필요
- Dataflow 대비 스트리밍 통합 약함
- 설정 복잡성 가능성
- Beam SDK 학습 곡선
- 코드 개발 필요
- 특정 워크로드에서는 비용 최적화 필요
- 코드 기반 솔루션 대비 유연성 낮음
- 복잡한 변환 로직 구현 어려움
- 인스턴스 비용 + 실행 비용 발생 가능
- 데이터 처리 기능 자체는 없음- DAG 작성을 위한 Python 지식 필요
- 관리형이지만 운영 오버헤드 존재 가능

 

  • Dataproc: 기존 Hadoop/Spark 자산을 클라우드로 옮기거나 클러스터 환경을 직접 제어하고 싶을 때 사용합니다.
  • Dataflow: 새롭고 확장 가능한 배치/스트리밍 파이프라인을 서버리스 환경에서 구축하고 싶을 때 이상적입니다.
  • Data Fusion: 코딩 없이 시각적인 인터페이스로 빠르게 데이터 통합 파이프라인을 만들고 싶을 때 유용합니다.
  • Cloud Composer: 여러 단계와 서비스로 구성된 복잡한 데이터 워크플로우를 안정적으로 스케줄링하고 관리해야 할 때 사용합니다.

 

 

(Google NotebookLM을 통해 작성되었고, 각 이미지들은 구글 홈페이지에가 가져왔습니다.)

댓글