2장

데이터 계보의 유형

데이터 계보는 여러 형태로 제공되며, 각각 특정 사용 사례에 적합하고 다른 수준의 세부 정보를 제공합니다. 이러한 유형을 이해하면 필요에 맞는 적절한 세밀도를 선택하는 데 도움이 됩니다.

1. 컬럼 레벨 계보

컬럼 레벨 계보는 가장 세밀한 수준에서 데이터를 추적합니다: 테이블 내의 개별 컬럼. 어떤 소스 컬럼이 어떤 대상 컬럼에 기여하는지, 어떻게 변환되는지를 정확히 보여줍니다.

추적하는 내용

사용 사례

2. 테이블 레벨 계보

테이블 레벨 계보는 전체 테이블, 뷰 또는 데이터셋 간의 관계를 추적합니다. 컬럼 세부 정보를 파고들지 않고 데이터 흐름의 상위 수준 관점을 제공합니다.

추적하는 내용

사용 사례

3. 프로세스 레벨 계보

프로세스 레벨 계보는 데이터보다는 변환 자체에 초점을 맞춥니다. 어떤 작업, 스크립트 또는 프로세스가 데이터를 생성하고 수정하는지 추적합니다.

추적하는 내용

사용 사례

4. 비즈니스 계보

비즈니스 계보는 기술적 데이터 계보를 비즈니스 개념, 메트릭 및 KPI와 연결합니다. 기술 자산을 비즈니스 친화적인 언어로 변환합니다.

추적하는 내용

사용 사례

계보 유형 선택

대부분의 조직은 계보 유형의 조합이 필요합니다. 핵심은 각 사용 사례에 적합한 수준을 선택하는 것입니다:

권장 접근법:

하이브리드 접근법

현대 계보 도구는 종종 여러 유형을 결합합니다:

이 하이브리드 접근법은 포괄성과 유지 관리 가능성 및 성능 간의 균형을 맞춥니다.

5. 정적 vs 동적 계보

계보는 수집 시점에 따라 정적(설계 시간) 또는 동적(실행 시간)으로 분류할 수 있습니다.

정적 계보

정적 계보는 코드 분석을 통해 생성되며 실제 데이터 흐름이 아닌 잠재적 데이터 흐름을 나타냅니다:

정적 계보 예시: SQL 파싱
-- 원본 SQL
CREATE TABLE customer_summary AS
SELECT
    c.customer_id,
    c.email,
    COUNT(o.order_id) as total_orders
FROM customers c
LEFT JOIN orders o ON c.customer_id = o.customer_id
GROUP BY c.customer_id, c.email;

-- 파싱된 계보 메타데이터
소스 테이블:
  - customers (컬럼: customer_id, email)
  - orders (컬럼: customer_id, order_id)

목적지 테이블:
  - customer_summary (컬럼: customer_id, email, total_orders)

변환:
  - JOIN: customers.customer_id = orders.customer_id
  - AGGREGATION: COUNT(orders.order_id)

동적 계보

동적 계보는 실제 실행 중에 캡처되어 정확한 데이터 흐름을 보여줍니다:

동적 계보 예시: 실행 로그
실행 ID: exec_20250126_143022
타임스탬프: 2025-01-26 14:30:22 UTC
작업: customer_summary_daily

읽은 데이터:
  - customers (파티션: 2025-01-26, 행: 45,892)
  - orders (파티션: 2025-01-26, 행: 12,304)

쓴 데이터:
  - customer_summary (파티션: 2025-01-26, 행: 45,892)

처리 통계:
  - 처리 시간: 8.3초
  - 처리한 바이트: 234MB
  - 메모리 사용: 512MB

6. 기술적 계보 vs 비즈니스 계보 상세

기술적 계보와 비즈니스 계보는 서로 보완적이며 각각 다른 사용자를 대상으로 합니다.

기술적 계보의 특징

측면 내용
대상 사용자 데이터 엔지니어, 개발자, DBA
언어 테이블명, 컬럼명, SQL, 스키마
세부 수준 컬럼 레벨, 변환 로직
사용 사례 디버깅, 성능 최적화, 마이그레이션
예시 warehouse.orders.customer_id → analytics.revenue.cust_id

비즈니스 계보의 특징

측면 내용
대상 사용자 비즈니스 분석가, 경영진, 데이터 스튜어드
언어 비즈니스 용어, 메트릭명, KPI
세부 수준 메트릭 레벨, 비즈니스 개념
사용 사례 데이터 거버넌스, 규정 준수, 셀프 서비스
예시 "월간 매출"은 "주문 데이터"와 "고객 세그먼트"에서 생성됨

7. 필드 레벨 계보의 중요성

필드 레벨 계보(컬럼 레벨 계보라고도 함)는 가장 세밀한 추적을 제공하여 규제가 엄격한 산업에서 특히 중요합니다.

규정 준수 요구사항

필드 레벨 계보: 개인정보 추적
필드: customer_email
타입: PII - 개인 식별 정보
분류: 민감도 높음

계보 체인:
1. source_systems.crm.contacts.email_address
   ↓ [ETL: 복사, 소문자 변환]
2. staging.raw_contacts.email
   ↓ [ETL: 유효성 검사, 중복 제거]
3. warehouse.customers.email
   ↓ [SQL: SELECT, 해싱]
4. analytics.customer_360.email_hash
   ↓ [API: 노출]
5. dashboards.marketing.anonymized_email

각 단계의 변환:
- 1→2: LOWER(email_address) AS email
- 2→3: CASE WHEN email ~ '^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}$' THEN email END
- 3→4: SHA256(email) AS email_hash
- 4→5: CONCAT(LEFT(email, 3), '***@', SPLIT_PART(email, '@', 2))

8. 계보 유형별 도구 및 기술

각 계보 유형은 서로 다른 도구와 기술을 사용하여 구현됩니다.

계보 유형 주요 도구 수집 방법
테이블 레벨 Apache Atlas, Amundsen, DataHub 메타데이터 API, 로그 파싱
컬럼 레벨 Alation, Collibra, Informatica SQL 파싱, 스키마 분석
프로세스 레벨 Airflow, Dagster, Prefect 작업 오케스트레이션 메타데이터
비즈니스 계보 Atlan, Metaphor, Monte Carlo 수동 주석, 용어집 매핑
동적 계보 OpenLineage, Marquez 런타임 이벤트 스트림

9. 실제 구현 전략

조직에서 계보를 구현할 때는 단계적 접근이 효과적입니다:

1단계: 평가 및 계획 (1-2개월)

2단계: 파일럿 프로젝트 (2-3개월)

3단계: 확장 (3-6개월)

4단계: 최적화 (지속적)

10. 장단점 비교표

계보 유형 장점 단점
테이블 레벨 빠른 구현, 낮은 오버헤드, 전체 아키텍처 이해 세부 정보 부족, 컬럼 수준 문제 식별 불가
컬럼 레벨 정밀한 추적, 규정 준수, PII 관리 복잡한 구현, 높은 유지보수 비용, 성능 부담
프로세스 레벨 작업 최적화, 스케줄링 개선, 문제 해결 데이터 내용에 대한 정보 없음
비즈니스 계보 비기술 사용자 접근성, 거버넌스 지원 수동 유지보수, 기술 계보와 동기화 필요
동적 계보 실제 흐름 반영, 동적 쿼리 처리 실행 오버헤드, 모든 코드 경로 캡처 안 될 수 있음

11. 장 요약

이 장에서는 데이터 계보의 다양한 유형을 탐구했습니다. 각 유형은 특정 사용 사례와 요구사항을 충족합니다:

효과적인 계보 전략은 조직의 성숙도, 리소스, 규정 준수 요구사항에 따라 이러한 유형을 조합합니다. 테이블 레벨로 시작하여 점진적으로 세밀도를 추가하는 것이 일반적인 모범 사례입니다.

12. 복습 질문

  1. 테이블 레벨 계보와 컬럼 레벨 계보의 주요 차이점은 무엇인가요?
    답변 힌트: 세밀도, 구현 복잡성, 사용 사례 측면에서 비교하세요.
  2. GDPR 준수를 위해 어떤 유형의 계보가 가장 중요한가요? 그 이유는?
    답변 힌트: 개인 데이터 추적 요구사항을 고려하세요.
  3. 정적 계보와 동적 계보를 각각 언제 사용해야 하나요?
    답변 힌트: 동적 SQL, 조건부 로직, 성능 고려사항을 생각해보세요.
  4. 비즈니스 계보가 데이터 거버넌스에 어떻게 도움이 되나요?
    답변 힌트: 비기술 이해관계자의 역할을 고려하세요.
  5. 하이브리드 계보 접근법의 장점 세 가지를 설명하세요.
    답변 힌트: 유연성, 성능, 커버리지를 생각해보세요.