카테고리 없음

📌 Partial Replication(부분 복제) in DB

idea9329 2025. 3. 11. 10:36
반응형

 

✅ Partial Replication(부분 복제)란?

Partial Replication(부분 복제) 데이터베이스(DB)에서 특정 데이터만 선택적으로 복제하는 방식입니다.
전체 데이터베이스를 복제하는 Full Replication(전체 복제)과 대비되는 개념으로, 필요한 데이터만 복제하여 성능 최적화와 저장 공간 절약이 가능합니다.


📂 Partial Replication의 종류

부분 복제는 복제 범위에 따라 여러 방식으로 나뉩니다.

1️⃣ 테이블 단위 복제 (Table-Level Replication)

  • 특정 테이블만 선택적으로 복제
  • 예: 사용자 정보(user_table)는 복제하지만, 로그 데이터(log_table)는 복제하지 않음
  • 사용 예시: 고객 정보는 모든 지점에 유지하지만, 지역별 트랜잭션 데이터는 해당 지점에서만 유지
-- 특정 테이블만 복제하는 MySQL 예제
CHANGE REPLICATION FILTER TABLES_DO_DB = ('customer_data');

2️⃣ 열(Column) 단위 복제 (Column-Level Replication)

  • 테이블 내에서도 일부 컬럼만 복제
  • 예: 이름(name), 이메일(email)은 복제하지만, 비밀번호(password)는 제외
  • 사용 예시: GDPR 준수를 위해 민감한 정보(예: 비밀번호, 금융 정보)를 제외한 복제
-- PostgreSQL에서 특정 컬럼 제외하는 예제
CREATE PUBLICATION my_pub FOR TABLE users (id, name, email);

3️⃣ 행(Row) 단위 복제 (Row-Level Replication)

  • 특정 조건을 만족하는 행(Row)만 복제
  • 예: 한국(KR) 고객 정보만 복제하고, 다른 국가 데이터는 제외
  • 사용 예시: 글로벌 서비스에서 지역별로 데이터 분리 저장
-- PostgreSQL에서 특정 조건을 만족하는 행만 복제
CREATE PUBLICATION my_pub FOR TABLE orders WHERE country = 'KR';

4️⃣ 파티션 단위 복제 (Partition-Level Replication)

  • 테이블을 파티션(Partition) 단위로 나누어 특정 파티션만 복제
  • 예: 최근 1년간 데이터만 복제, 5년 이상 된 데이터는 제외
  • 사용 예시: 실시간 분석을 위해 최근 데이터만 복제
-- MySQL 파티션을 사용한 부분 복제 예제
ALTER TABLE sales PARTITION BY RANGE(year);

🔍 Partial Replication의 장점

 성능 최적화: 필요한 데이터만 복제하여 리소스 절약
 스토리지 절감: 전체 데이터 복제보다 저장 공간 절약
 지역/부서별 데이터 관리: 특정 지역, 부서에서 필요한 데이터만 유지
 보안 강화: 민감한 데이터(예: 비밀번호, 금융 정보) 제외 가능


⚠️ Partial Replication의 단점

 데이터 일관성 유지 어려움: 특정 데이터만 복제하면 데이터 정합성 문제가 발생할 수 있음
 설정 복잡성: 전체 복제보다 설정 및 관리가 어려움
 복제 지연 발생 가능: 데이터 일부분만 복제할 때, 실시간 동기화가 어려울 수 있음


💡 Partial Replication이 사용되는 사례

📌 멀티 리전 데이터베이스: 지역별 고객 데이터만 복제하여 성능 최적화
📌 IoT 시스템: 센서에서 발생하는 실시간 데이터 중 일부만 복제
📌 클라우드 데이터 관리: 클라우드와 온프레미스 데이터센터 간 중요한 데이터만 복제
📌 데이터 분석: OLAP 분석을 위해 최근 데이터만 복제


📌 결론

Partial Replication(부분 복제) 필요한 데이터만 선택적으로 복제하는 방법으로 성능 최적화, 스토리지 절약, 보안 강화 등의 장점을 가집니다.

하지만 데이터 일관성 관리와 복제 설정의 복잡성이 단점이므로, 사용 목적에 맞게 Table-Level, Column-Level, Row-Level, Partition-Level 중 적절한 방식을 선택하는 것이 중요합니다. 🚀

반응형