1장: 데이터 엔지니어링 및 Google Cloud 기반 데이터 레이크/웨어하우스 구축
데이터 엔지니어링의 주요 개념과 Google Cloud를 활용한 데이터 레이크 및 데이터 웨어하우스 구축에 대한 핵심 내용을 요약하고 있습니다. 데이터 엔지니어의 역할, 데이터 엔지니어링의 과제, 데이터 레이크와 데이터 웨어하우스의 차이점 및 Google Cloud 솔루션(BigQuery, Cloud Storage, Cloud SQL 등)을 중심으로 주요 아이디어와 사실을 정리했습니다.
1. 데이터 엔지니어링 소개 및 역할
- 데이터 파이프라인 구축: 데이터 엔지니어의 핵심 역할은 데이터 기반 의사 결정을 지원하는 데이터 파이프라인을 구축하는 것입니다. 이는 데이터를 필요한 위치로 가져오고, 사용 가능한 상태로 만들며, 새로운 가치를 더하는 과정을 포함합니다.
- 데이터 엔지니어는 데이터 파이프라인 빌드 담당자로 주된 역할은 데이터 파이프라인을 빌드하는 것입니다.
- 클라이언트: 데이터 엔지니어의 클라이언트는 대시보드, 보고서, 머신러닝 모델 등을 통해 데이터를 활용하여 의사 결정을 내리는 모든 사람입니다.
- 클라우드 환경의 이점: 클라우드에서 데이터 엔지니어링을 수행하면 컴퓨팅과 스토리지를 분리하고, 서버리스 제품을 활용하며, 인프라 관리에 대한 부담을 줄여 데이터에서 인사이트를 얻는 데 더 집중할 수 있습니다.
2. 데이터 엔지니어링 과제
데이터 엔지니어는 데이터 파이프라인을 구축하는 과정에서 다음과 같은 다양한 과제에 직면합니다.
- 이질적인 데이터 통합 및 관리: 다양한 소스와 형식의 데이터를 통합하고, 규모에 맞게 액세스 권한을 관리해야 합니다.
- 예: 고객 및 매출 데이터는 CRM 시스템에, 일부 데이터는 쿼리 불가능한 형식으로 저장되어 있으며, 데이터가 여러 마케팅 제품에 분산되어 있는 경우 통합이 어렵습니다.
- 데이터 준비 (ETL/ELT): 분석 및 비즈니스 정보 확보를 위해 데이터를 정리, 포맷 및 변환하는 ETL (Extract, Transform, Load) 파이프라인을 구축해야 합니다. 데이터의 정확성과 품질을 보장하는 것이 중요합니다. 데이터 웨어하우스는 일반적으로 정리 및 변환된 데이터를 저장하는 통합된 위치입니다.
- 컴퓨팅 리소스 가용성 및 관리: 데이터 변환 및 쿼리에 필요한 컴퓨팅 리소스를 확보하고 효율적으로 관리해야 합니다. 온프레미스 환경에서는 서버 및 클러스터 용량 관리가 중요한 과제입니다. 클라우드는 필요에 따라 탄력적으로 확장 가능한 컴퓨팅 리소스를 제공하여 이러한 과제를 해결하는 데 도움을 줄 수 있습니다.
- 쿼리 성능 최적화: 데이터 웨어하우스에 저장된 데이터에 대한 쿼리 성능을 최적화하여 사용자가 효율적으로 정보를 얻을 수 있도록 해야 합니다. 캐싱, 동시 실행 등을 고려해야 합니다.
3. BigQuery 소개
BigQuery는 Google Cloud의 페타바이트급 서버리스 데이터 웨어하우스입니다.
- 서버리스 및 노옵스: 클러스터 관리나 미세 조정 없이 데이터 분석에 집중할 수 있도록 완전 관리형 서비스를 제공합니다. 업데이트 및 유지보수는 Google에서 담당합니다.
- 열 기반 스토리지: 행 기반의 기존 RDBMS와 달리 열 기반으로 데이터를 저장하여 분석 쿼리 성능을 향상시킵니다. 특정 열만 읽으면 되므로 넓은 범위의 보고 스키마에 효율적입니다.
- 주문형 컴퓨팅 및 스토리지: 리소스를 미리 프로비저닝할 필요 없이 사용량에 따라 동적으로 할당 및 비용이 청구됩니다. 쿼리 유형과 복잡성에 따라 슬롯(컴퓨팅 단위)이 할당됩니다.
- 데이터 구성: 프로젝트, 데이터 세트, 테이블 단위로 정보를 구조화하여 논리적 구성 및 격리, 청구 관리, 액세스 제어를 용이하게 합니다. BigQuery 네임스페이스는 프로젝트 내에서 전역적입니다.
- 액세스 제어 및 보안: IAM을 통해 데이터 세트, 테이블, 뷰, 열 수준에서 세밀한 액세스 제어를 제공합니다. Cloud 감사 로그를 통해 데이터 액세스 기록을 감사할 수 있습니다. 승인된 뷰를 사용하여 기본 테이블 공유 없이 데이터의 하위 집합에 대한 액세스를 제어할 수 있습니다.
https://cloud.google.com/bigquery/docs/introduction?hl=ko
BigQuery 개요 | Google Cloud
의견 보내기 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. BigQuery 개요 BigQuery는 머신러닝, 검색, 지리정보 분석, 비즈니스 인텔리전스와 같은 기본 제공 기
cloud.google.com
4. 데이터 레이크 구축
데이터 레이크는 다양한 유형과 규모의 데이터를 안전하게 저장하고 처리 및 분석할 수 있는 확장 가능하고 안전한 플랫폼입니다.
- 특징: 모든 데이터를 기본 형식(원시 형식)으로 유지하고, 모든 데이터 유형과 사용자를 지원하며, 변화에 쉽게 적응할 수 있습니다. 기업 내 여러 시스템에 있는 데이터를 한곳에 모으는 역할을 합니다.
- 고려 사항: 데이터 처리 능력, 스토리지 용량, 확장성, 수집 처리량, 네트워크 대역폭, 세분화된 액세스 제어 등을 고려하여 데이터 레이크를 구축해야 합니다.
- Cloud Storage 활용: Cloud Storage는 객체 스토어로서 데이터 레이크를 구축하는 데 적합합니다. 영구적이고 내구성이 뛰어나며, 글로벌 가용성을 제공하고, 암호화 및 액세스 제어 기능을 지원합니다. 데이터는 객체(파일) 형태로 저장되며, 버킷이라는 컨테이너로 관리됩니다.
- 데이터 이동 전략 (ETL/ELT): 클라우드로 데이터를 이동시키는 경로는 데이터의 현재 위치, 크기, 최종 목적지, 필요한 변환량에 따라 결정됩니다. ELT (Extract, Load, Transform)는 원시 데이터를 먼저 로드한 후 클라우드 환경에서 변환하는 방식이며, ETL (Extract, Transform, Load)은 데이터를 추출, 변환한 후 로드하는 방식입니다.
- 보안: Cloud Storage 기반 데이터 레이크의 보안은 매우 중요합니다. IAM 정책 및 액세스 제어 목록(ACL)을 사용하여 객체에 대한 액세스를 제어할 수 있습니다. 데이터 암호화(Google 관리, 고객 관리, 고객 제공), 데이터 잠금(보존 조치, 버킷 잠금, 보관 정책 잠금) 등 다양한 보안 기능을 활용할 수 있습니다.
- 트랜잭션 워크로드 vs 분석 워크로드: 트랜잭션 워크로드(OLTP)는 빠른 삽입 및 업데이트가 필요한 반면, 분석 워크로드(OLAP)는 전체 데이터 세트 읽기 및 복잡한 쿼리를 필요로 합니다. Cloud SQL은 트랜잭션 워크로드에 적합한 완전 관리형 관계형 데이터베이스 서비스이며, BigQuery는 분석 워크로드에 최적화되어 있습니다.
https://cloud.google.com/learn/what-is-a-data-lake?hl=ko
https://cloud.google.com/learn/what-is-a-data-lake?hl=ko
cloud.google.com
5. 데이터 웨어하우스 구축
데이터 웨어하우스는 여러 소스의 데이터를 통합하여 품질, 일관성, 정확성을 갖춘 형태로 저장하고, 간편한 액세스와 고속 쿼리 성능을 제공하도록 최적화된 시스템입니다.
- 특징: 스키마가 적용된 데이터이며, 분석가가 데이터의 스키마를 알고 쿼리 및 데이터 처리에 사용할 수 있도록 취합됩니다. 데이터 레이크와 달리 분석가는 데이터를 읽고 파싱하기 위해 코드를 작성할 필요가 없습니다.
- 최신 데이터 웨어하우스의 요구 사항: 기가바이트에서 페타바이트 규모로 확장 가능해야 하며, 서버리스 및 노옵스를 지원하고, 다양한 시각화 및 보고 도구, ETL 및 데이터 처리 도구와의 통합, 최신 데이터 유지, 머신러닝 지원, 엔터프라이즈급 보안 및 협업 기능을 제공해야 합니다.
- BigQuery 활용: BigQuery는 최신 데이터 웨어하우스의 요구 사항을 충족하는 Google Cloud 솔루션입니다.
- 스키마 설계: 효율적인 데이터 웨어하우스 스키마 설계는 쿼리 성능에 중요한 영향을 미칩니다. BigQuery는 중첩되고 반복되는 필드를 지원하여 관계형 데이터베이스에서 비롯된 데이터를 효율적으로 처리하고 조인 비용을 줄일 수 있습니다.
- 파티셔닝 및 클러스터링: BigQuery 테이블을 파티셔닝 및 클러스터링하여 쿼리할 데이터의 양을 줄이고 쿼리 성능을 최적화할 수 있습니다.
- 데이터 로드: BigQuery로 데이터를 로드하는 다양한 방법이 있습니다. 일괄 로드, BigQuery Data Transfer Service를 사용한 예약 전송, 스트리밍을 통한 실시간 데이터 수집 등이 가능합니다. 다양한 데이터 형식(Avro, JSON, CSV 등)을 지원하며, 스키마 자동 감지 또는 명시적 지정을 통해 테이블 스키마를 정의할 수 있습니다.
- 테이블 관리: BigQuery는 테이블의 전체 변경 내역을 최대 7일 동안 유지하여 특정 시점의 스냅샷을 쿼리하거나 삭제된 테이블을 복구할 수 있도록 지원합니다.
https://cloud.google.com/learn/what-is-a-data-warehouse?hl=ko
https://cloud.google.com/learn/what-is-a-data-warehouse?hl=ko
cloud.google.com
6. 다른 데이터 팀과의 협력
데이터 웨어하우스는 여러 팀에서 사용되므로 다른 팀과 효과적으로 협력하는 것이 중요합니다. 주요 협력 대상은 머신러닝 엔지니어, 데이터/BI 분석가, 다른 데이터 엔지니어입니다. 각 팀은 데이터에서 가치를 얻기 위해 데이터 엔지니어링 팀과 협력합니다.
- 머신러닝 팀: 안정적인 파이프라인에서 새로운 특성을 캡처하고, 예측 시점에 모든 특성이 확보될 수 있도록 데이터 엔지니어의 도움을 필요로 합니다. 또한 머신러닝 모델을 위한 데이터 특성 확장을 요청하기도 합니다. BigQuery ML을 통해 웨어하우스 내에서 직접 머신러닝 모델을 구축할 수 있습니다.
- 데이터/BI 분석 팀: 유용한 정보를 쿼리하기 위해 깨끗하고 잘 정의된 스키마를 갖춘 데이터를 활용하여 대시보드를 구축합니다. 빠른 쿼리 성능과 동시 접속 사용자 확장을 위한 웨어하우스 성능 향상을 요구합니다. BigQuery BI Engine을 통해 대시보드 성능을 향상시킬 수 있습니다.
- 다른 데이터 엔지니어링 팀: 해당 팀의 다운스트림 데이터 레이크 및 웨어하우스를 위해 업타임과 성능을 갖춘 데이터 웨어하우스 및 파이프라인을 활용합니다. 데이터 세트의 가용성 및 성능 보장, 증가하는 사용자 수에 따른 웨어하우스 확장을 위한 협력을 요청합니다. Cloud Monitoring을 사용하여 성능을 모니터링하고 알림을 설정할 수 있습니다.
7. 데이터 액세스 및 거버넌스 관리
데이터 엔지니어링 팀은 데이터 사용을 허용하거나 금지하는 데이터 액세스 정책과 전반적인 거버넌스 체계를 설정해야 합니다.
- 데이터 관리 역할: 데이터 엔지니어는 데이터 액세스 권한, 개인 정보 보호 및 보안과 같은 중요한 주제를 포함한 데이터 관리 업무를 담당합니다.
- 데이터 거버넌스 모델: 액세스 권한 부여 대상, 개인 식별 정보 처리 방법, 최종 사용자의 데이터 카탈로그 사용 방법 등을 규정하는 책임감 있는 데이터 거버넌스 모델을 확립하고 전달해야 합니다.
- Google Cloud 도구: Data Catalog를 사용하여 다양한 데이터 세트를 쉽게 검색하고, Cloud Data Loss Prevention API (DLP API)를 사용하여 민감한 정보를 식별 및 관리할 수 있습니다.
https://cloud.google.com/security/products/dlp?hl=ko
https://cloud.google.com/security/products/dlp?hl=ko
cloud.google.com
- DLP란 무엇인가? (What is DLP?)
- 정형 및 비정형 데이터를 발견하고 분류합니다 (실시간 및 저장된 데이터 모두).
- 데이터를 비식별화(De-Identify)하여 데이터를 보호하고 규정 준수 위험을 줄입니다.
- 재식별 위험 분석(Re-ID Risk Analysis)을 통해 통계적 이상 징후를 파악합니다 (k-익명성, l-다양성 등 프라이버시 개념 언급).
- DLP는 어떻게 작동하는가? (How does DLP work?)
- 콘텐츠 메서드 (API 요청 기반):
- 다양한 데이터 소스(클라우드, 온프레미스 등)에서 API 요청을 통해 데이터를 전송받습니다.
- Cloud DLP는 동기식 API 응답을 통해 데이터를 검사/분류(Inspect/Classify)하거나 비식별화 변환(De-ID transform)을 수행합니다. (상태 비저장 처리, 데이터 상주 위치 고려)
- 스토리지 메서드 (GCP 스토리지 통합):
- BigQuery, Cloud Storage, Datastore 등의 데이터 소스를 대상으로 합니다.
- Cloud DLP 작업(Job) 또는 트리거(Trigger)를 설정합니다.
- 120개 이상의 사전 정의된 탐지기 또는 커스텀 정규식을 사용하여 민감한 데이터를 스캔합니다.
- 스캔 결과에 따라 특정 작업(Action)을 수행하도록 선택합니다.
- 결과 저장 및 게시 (Save/Publish Findings):
- 스캔 및 처리 결과는 BigQuery나 Cloud DLP 자체에 저장될 수 있습니다.
- 결과는 Security Command Center, Data Catalog, Cloud Monitoring, 이메일, Pub/Sub 등으로 게시하여 후속 조치나 모니터링에 활용될 수 있습니다.
- 콘텐츠 메서드 (API 요청 기반):
- DLP 사용 사례는 무엇인가? (What does a DLP use case look like?) (마이그레이션, ETL, 분석 관점)
- 데이터 파악 (Know your data): 원시 데이터(파일, 앱 데이터 등)를 대상으로 DLP를 사용하여 민감 정보를 탐지/분류하고, Data Catalog로 메타데이터를 관리하며, Security Command Center로 보안을 제어합니다.
- 수집 시 원시 데이터 위험 제거 (De-risk raw data on ingest): DLP를 사용하여 데이터를 비식별화/토큰화합니다.
- 더 나은 거버넌스 구현 (Enable better governance): 위의 과정을 통해 데이터 거버넌스를 강화합니다.
- 활용: 이렇게 처리된 토큰화된 데이터는 SQL 데이터베이스 등에 저장되어 데이터 엔지니어가 보고서 작성 및 비즈니스 분석에 안전하게 활용할 수 있습니다.
- 다양한 비식별화 기술은 무엇인가? (What are different De-identification techniques?)
- 마스킹 (Masking): 데이터 일부를 # 같은 문자로 가리는 것 (예: ####@####.###).
- 삭제 (Redaction): 민감한 정보를 완전히 제거하는 것.
- 대체 (Replacement): 민감한 정보를 가짜(fake) 데이터로 바꾸는 것.
- 암호화 기반 토큰화 (Crypto-based tokenization):
- 암호화 해싱 (Cryptographic hashing): 단방향 암호화 (예: HMAC-SHA-256). 원본 복구 불가.
- 형식 보존 암호화 (Format-preserving encryption - FPE): 데이터의 원래 형식(길이, 문자 종류 등)을 유지하면서 암호화. 양방향(복호화 가능).
- 결정적 암호화 (Deterministic encryption): 동일한 입력값은 항상 동일한 출력 토큰을 생성. 양방향(복호화 가능). 조인 등에 유용.
- 버킷팅 (Bucketing): 연속적인 값을 특정 범위(버킷)로 묶는 것 (예: 나이를 '낮음', '중간', '높음'으로).
- 날짜 이동 (Date Shifting): 모든 날짜를 일정한 간격으로 앞뒤로 이동시키는 것 (순서와 기간은 보존됨).
- 시간 추출 (Time Extraction): 날짜/시간 정보에서 일부만 추출하는 것 (예: 연도만 추출).
8. 프로덕션 준비된 파이프라인 구축
데이터 레이크 및 웨어하우스를 설정하고 거버넌스 정책을 마련한 후에는 모든 작업을 프로덕션화하고 자동화 및 모니터링되는 작업의 비중을 늘려야 합니다. 확장 가능한 엔드 투 엔드 데이터 처리 시스템을 구축하여 파이프라인의 건전성, 데이터 품질, 최소 유지보수 및 최대 업타임을 보장해야 합니다. 스키마 및 비즈니스 요구 사항 변화에 대응하고, 최신 데이터 엔지니어링 도구 및 권장 사항을 사용해야 합니다.
현대적인 데이터 엔지니어링의 핵심 요소와 Google Cloud를 활용하여 확장 가능하고 안전한 데이터 레이크 및 데이터 웨어하우스를 구축하는 방법에 대한 포괄적인 개요를 살펴봤습니다. 데이터 엔지니어는 데이터 파이프라인 구축을 통해 조직 내 데이터 기반 의사 결정을 지원하는 중요한 역할을 수행하며, Google Cloud의 BigQuery, Cloud Storage, Cloud SQL 등의 서비스를 통해 데이터 통합, 처리, 분석, 관리의 다양한 과제를 효과적으로 해결할 수 있습니다. 특히 서버리스 데이터 웨어하우스인 BigQuery는 성능, 확장성, 관리 용이성 면에서 큰 이점을 제공하며, 데이터 레이크는 다양한 형식의 원시 데이터를 중앙 집중화하여 데이터 활용의 잠재력을 극대화합니다. 성공적인 데이터 엔지니어링을 위해서는 기술적인 이해뿐만 아니라 다른 데이터 팀과의 효과적인 협력과 데이터 거버넌스 및 보안에 대한 깊은 고려가 필수적입니다.
(Google NotebookLM을 통해 작성되었고, 각 이미지들은 구글 홈페이지에가 가져왔습니다.)
'IT > Etc' 카테고리의 다른 글
데이터 엔지니어링 on Google Cloud (3/4) (0) | 2025.04.07 |
---|---|
데이터 엔지니어링 on Google Cloud (2/4) (1) | 2025.04.07 |
Docker Desktop 대안 Rancher, Podman and Colima (0) | 2025.03.20 |
Kroki - 텍스트 기반 다이어그램 (0) | 2025.03.14 |
풀스택 AI 서비스 (0) | 2025.03.14 |
댓글