Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

Ga0's

SQLD_분산 데이터베이스와 성능 본문

Study IT/SQLD

SQLD_분산 데이터베이스와 성능

Ga0Kwon 2023. 5. 3. 23:30

분산 데이터 베이스

 

1. 개요

 ▪ 빠른 네트워크 환경을 이용하여 데이터베이스를 여러 지역에서 노드로 위치시켜 사용성을 극대화 시킨 데이터베이스

 ▪ 분산되어 있는 데이터베이스를 하나의 가상 시스템으로 사용할 수 있도록 한 데이터베이스 

 ▪ 논리적으로 동일한 시스템, 네트워크를 통해 물리적으로 분산되어 있는 데이터들의 모임

 ▪ 물리적 사이트 분산, 논리적으로 사용자 통합 및 공유

 

2. 투명성 6가지

분할 투명성(단편화)  ▪ 하나의 논리적 릴레이션을 여러 단편으로 분할하여 그 사본을 여러 사이트에 저장
위치 투명성  ▪ 사용하려는 데이터의 저장 장소를 명시 불필요 위치 정보가 시스템 카탈로그에 유지
지역사상 투명성  ▪ 지역 DBMS, 물리적인 DB 사이의 매핑을 보장하며 각 지역 시스템 이름과 무관한 이름 사용 가능
중복 투명성  ▪ DB 객체가 여러 사이트에 중복되어 있는지 알 필요가 없으며, 데이터베이스 객체가 여러 시스템에 중복되어 존재하여도 고객과는 무관하게 유지되는 데이터의 일관성을 제공
장애 투명성  ▪ 구성요소(DBMS, 컴퓨터)의 장애에 무관하게 트랜잭션의 원자성(무결성)을 유지
병행 투명성  ▪ 다수 트랜잭션들이 동시에 수행시 결과의 일관성을 유지하며, Time stamp, 분산 2단계에 locking(잠금)을 이용해 구현

3. 적용방법

 ▪ 단순히 분산 환경에서 데이터베이스를 수축하는 것이 목적이 아니라, 업무의 특징에 따라 데이터베이스 분산 구조를 선택적으로 설계

 

4. 장단점

장점 단점
 ▪ 지역자치성, 점증적 시스템 용량 확장  ▪ 소프트웨어 개발 비용↑
 ▪ 신뢰성과 가용성  ▪ 오류의 잠재성 증가
 ▪ 효용성과 융통성
 ▪ 처리 비용의 증가
 ▪ 빠른 응답 속도와 통신 비용 절감  ▪ 설계, 관리의 복잡성 증가와 비용 증가
 ▪ 데이터의 가용성과 신뢰성 증가  ▪ 불규칙한 응답 속조
 ▪ 시스템 규모의 적절한 조절  ▪ 통제의 어려움
 ▪ 각 지역 사용자의 요구 수용 증대  ▪ 데이터 무결성에 대한 위협

 

5. 활용 방향성

 ▪ 업무적인 특징에 따라 위치 중심의 분산업무 필요에 의한 분산을 설계

 

6. 가치(분산 구성의 가치)

 ▪ 통합된 데이터베이스에서 제공할 수 없는 빠른 성능을 제공함으로써 데이터 처리 성능↑

 

7. 테이블 위치 분산

 ▪ 설계된 테이블의 위치를 각각 다르게 위치시키는 것

 ▪ 테이블 구조 변화 X

 ▪ 다른 데이터베이스에 중복되어 생성X

 ▪ 정보를 이용하는 형태가 각 위치별로 차이가 있을 경우 사용

 ▪ 테이블의 위치가 서로 각각 다르기 때문에 테이블의 위치를 파악할 수 있는 도식화된 위치별 데이터베이스 문서가 필요

 

8. 테이블 분할 분산

 ▪ 위치만 다른 곳에 두는 것이 아니라 각각의 테이블을 쪼개어서 분산시키는 것

 

 ▪  수평 분할

    ▫ 특정 칼럼의 값 기준으로 행(row)단위로 분리

    ▫ 칼럼은 분리 X

    ▫ 기본키에 의해 중복은 발생X

    ▫ 자사별로 사용하는 Row가 다를 때 사용

    ▫ 데이터 수정

       - 다른 곳에 있는 데이터는 원칙적으로 수정X, 자신의 데이터만 수정 가능

    ▫ 각 지사의 테이블 통합 처리

       - 조인이 발생하여 성능 저하가 예상되며, 통합처리 프로세스가 많은지 검토한 후 많지 않은 경우 수평 분할 진행

    ▫ 데이터 무결성 보장

       - 데이터가 지사별로 별도로 존재하므로 중복 발생하지 않으며, 다른 곳에 있는 데이터의 지사구분이 변경되면 단순히 수정이 발생하는 것 이외에 변경된 지사로 데이터를 이송해야 한다. 또, 한 시점에는 한 지사(Node)에서 하나의 데이터만 존재

    ▫ 자사별로 데이터베이스를 운영하는 경우

       -  데이터 베이스가 속한 서버가 지사(Node, 지역)에 존재하던지 아니면 본사에 통합해서 존재하건 간에 데이터베이스 테이블들은 수평 분할 하여 존재

 

 ▪  수직 분할

    ▫ 컬럼 기준으로 컬럼 단위 분리(로우 단위 분리X)

    ▫ 각 테이블은 동일한 기본 키 구조와 값을 가지고 있어야 함.

    ▫ 데이터를 한군데 집합시켜 놓도 기본키는 하나로 표현하면 되므로 데이터 중복이 발생X

    ▫ 테이블 전체 칼럼 데이터 조회

       - 가능하면 통합하여 처리하는 프로세스가 많은 경우에는 이용하지 않도록 함

    ▫ 실제 프로젝트에서 수직분할 분산 환경을 구성하는 사례는 드물다.

 

9. 테이블 복제 분산

 ▪ 동일한 테이블을 다른 지역이나 서버에서 동시에 생성하여 관리

 ▪ 프로젝트에서 많이 사용하는 데이터베이스 분산 기법

 

 ▪ 부분 복제

    ▫ 마스터 데이터베이스에서 테이블의 일부 내용만 다른 지역이나 서버에 위치

    ▫ 통합된 테이블을 본사에 가지고 있으면서 각 지사별로는 지사에 해당한느 row를 가지고 있는 형태(본사 데이터 = 지사 데이터들의 총합)

    ▫ 여러 테이블에 조인이 발생하지 않아서 빠른 작업 수행이 가능함. ( 각 지사에서 데이터 처리에 용이할 뿐만 아니라 전체 데이터 통합처리도 본사의 통합 테이블을 이용)

    ▫ 본사 데이터는 통계, 이동 등의 관리를 하며 지사의 데이터를 이용하여 지사별 빠른 업무를 할 수 있도록 함

    ▫ 지사의 데이터가 먼저 발생하고 본사는 지사 데이터를 통합하여 발생(광역 복제와의 차이!)

    ▫ 다른 지역간의 데이터 복제는 실시간 처리보다 배치 처리를 이용 (시간, 과부하 ↑)

    ▫ 데이터의 정합성 일치 어려움가 어려우며 가능하면 지사 수정 발생시 본사를 복제하는 것을 권장

 

 ▪ 광역 복제

    ▫ 통합된 테이블을 본사에 가지고 있으며 각 지사에 본사와 동일한 데이터 분배

    ▫ 본사나 지사나 데이터처리에 특별한 제약이 없음

    ▫ 본사에서 데이터 입력, 수정, 삭제가 되어 지사에서 이용(부분 복제와 차이!!)

    ▫ 다른 지역간 데이터 복제는 실시간 처리보다 배치 처리를 이용 (시간, 부하 ↑)

 

10. 테이블 요약 분산

 ▪ 지역/서버 간에 데이터가 비슷하지만 서로 다른 유형으로 존재하는 경우

 

 ▪ 분석 요약

    ▫ 각 지사별로 존재하는 요약 정보를 본사에서 통합하여 다시 전체에 대해 요약

    ▫ 동일한 테이블 구조를 가지고 있으면서 분산되어 있는 동일한 내용의 데이터를 이용하여 통합된 데이터를 산출하는 방식

    ▫ 테이블에 있는 모든 칼럼과 로우가 지사에도 동일하게 존재하지만, 각 지사에는 동일한 내용에 대해 지사별로 요약된 정보를 가지고 있으며, 본사에는 각 지산의 요약 정보를 통합하여 재산출한 전체 요약정보를 가진다. 

    ▫  각종 통계 데이터 산정

      - 모든 지사의 데이터를 이용하여 처리하면 성능이 지연되고 각 지사 서버에 부하가 오며, 업무 장애가 발생할 가능성이 존재

 

    ▫ 지사에 있는 데이터를 이용하여 본사에서 통합하여 요약 데이터를 산정하며, 통합 통계 데이터에 대한 정보 제공에 용이

    ▫ 본사에 분석 요약된 테이블을 생성하고 데이터는 역시 일반 업무기 종료되는 약간에 수행하여 생성

 

 ▪ 통합 요약

    ▫ 각 지사별로 존재하는 다른 내용 정보를 본사에 통합하며 다시 전체의 요약을 산출

    ▫ 테이블에 있는 모든 칼럼과 로우가 지사에도 동일하게 존재하지만, 각 지사에는 타 지사와 다른 요약정보를 가지고 있고 본사에는 각 지사의 요약 정보를 데이터를 같은 위치에 두는 것으로 통합하여 전체 요약정보를 가짐

    ▫ 본사에 통계 데이터 산정

      - 분석 요약과 비슷하나 단지 지사에서 산출한 요약 정보를 한군데 취합하여 보여주는 형태

      - 모든 지사의 데이터를 이용하여 처리하면 성능이 저하되고 각 지사 서버에 부하를 주기 때문에 업무장애 발생 가능

    ▫ 지사에서 요약한 정보를 본사에서 취합하고 각 지사별 데이터를 비교하기 용이하며, 통계 데이터에 대한 정보 제공에 용이하다.

    ▫ 본사에 통합 요약된 테이블을 생성하고 데이터는 역시 일반 업무가 종료되는 야간에 수행하여 생성

 

→ 둘의 차이점은 통합하고 요약하는가(통합 요약), 요약 정보를 가지고 통합하는가(분석 요약)

 

11.적용하여 성능이 향상된 사례

 ▪ 분산 환경의 원리를 이해하지 않고 데이터베이스를 설계하면 성능이 저하되는 경우가 빈번

 ▪ 복제 분산의 원리를 간단히 응용하면 많은 업무적 특성이 있는 곳에서 성능을 향상해 설계가 가능

 

 ▪ 데이터 베이스 분산 설계는 다음과 같은 경우에 적용하면 효과적

  ▫ 성능이 중요한 사이트

  ▫ 공통 코드, 기준 코드, 마스터 데이터 등에 대해 분산 환경을 구성하면 성능이 좋아짐

  ▫ 실시간 도기화가 요구되지 않을 때 좋음(준 실시간 업무여도 분산 환경에서 구성 가능하다.)

  ▫ 특정 서버에 부하가 집중 될 때 부하를 분산시키는 용도로 좋다

  ▫ 백업 사이트(disaster Recovery Site) 구성 시, 간단하게 분산 기능을 적용하여 구성이 가능

11

'Study IT > SQLD' 카테고리의 다른 글

데이터 모델과 성능  (2) 2024.01.04
데이터 모델링의 이해  (1) 2024.01.02
SQLD_데이터베이스 구조와 성능  (2) 2023.05.03
SQLD_대량 데이터에 따른 성능  (0) 2023.04.30
SQLD_반정규화  (0) 2023.04.28