This is the Trace Id: 3f1fd63dcf3370f9e06a46dd8b194d7d
주 콘텐츠로 건너뛰기
Azure

데이터베이스 분할이란 무엇인가요?

데이터베이스 분할은 글로벌 분산 시스템 전반에서 솔루션 성능 및 가용성을 높이는 수평 확장 방법입니다.

데이터베이스 분할 정의

데이터베이스 분할은 대규모 데이터베이스를 분할이라고 하는 더 작고 관리하기 쉬운 세그먼트로 나누는 프로세스를 의미합니다. 애플리케이션 및 시스템이 성능이나 가용성에 영향을 주지 않고 증가하는 데이터 및 사용자 볼륨을 처리할 수 있도록 수평 확장을 지원합니다. 조직은 분할 전략을 사용하여 스토리지 제약 조건 및 최신 클라우드 환경에서 데이터베이스 크기 조정과 관련된 기타 문제를 극복합니다.

  • 데이터베이스 분할은 데이터베이스를 SNA(공유 없음 아키텍처)에서 실행되는 독립 분할된 데이터베이스로 분할하는 수평 확장 방법으로 정의됩니다.
  • 데이터는 분할 키를 사용하여 분할된 데이터베이스로 나뉩니다. 이를 통해 애플리케이션은 요청을 적절한 분할된 데이터베이스로 라우팅할 수 있습니다.
  • 데이터는 일반적으로 숫자 값, 해시 함수, 조회 디렉터리 또는 지리적 위치를 사용하여 분할된 데이터베이스 간에 나눠집니다.
  • 데이터베이스 분할의 장점으로는 향상된 쿼리 성능, 수평 확장성 지원, 내결함성 향상 등이 있습니다.
  • 분할 사용 사례에는 은행, 전자 상거래 및 소셜 미디어 플랫폼이 포함되며, 데이터 또는 사용자의 빠른 증가 또는 급증을 종종 처리해야 합니다.

데이터베이스 분할은 어떻게 작동하나요?

데이터베이스 분할은 대규모 데이터베이스를 분할된 데이터베이스라고 하는 더 작고 독립적인 조각으로 나누어 수평으로 확장하는 데 사용되는 기술입니다. 각 분할된 데이터베이스는 전체 데이터의 고유한 하위 집합을 포함하지만 동일한 스키마를 유지하는 별도의 데이터베이스로 작동합니다. 따라서 분할된 데이터베이스가 별도의 서버에서 실행되더라도 집합적으로 단일 논리 데이터베이스를 구성할 수 있습니다.

데이터베이스 분할은 처리, 메모리 또는 스토리지 리소스를 다른 분할된 데이터베이스와 공유하지 않고 각 분할된 데이터베이스가 자체적으로 작동하는 분산 컴퓨팅 모델인 SNA(공유 없음 아키텍처)를 따릅니다.

분할 키(데이터의 특정 필드 또는 필드 조합)는 각 분할된 데이터베이스에 저장될 데이터를 결정합니다. 애플리케이션이 데이터를 읽거나 써야 하는 경우 분할 키를 사용하여 요청을 적절한 분할된 데이터베이스로 라우팅합니다.

분할 전략

조직은 여러 분할된 데이터베이스에 분산된 데이터를 다양한 방식으로 관리합니다. 다음은 몇 가지 일반적인 전략입니다.

  • 범위 기반 또는 동적 분할: 분할 키의 값 범위에 따라 데이터를 나눕니다. 예를 들어 전자 상거래 데이터베이스의 한 분할된 데이터베이스에는 고객 ID 번호 1~1,000,000을 할당하고 다른 분할된 데이터베이스에는 고객 ID 번호 1,000,001~2,000,000을 할당할 수 있습니다. 이 메서드는 범위 쿼리에 효율적이지만 특정 범위에 더 자주 액세스되는 경우 균일하지 않은 분포가 발생할 수 있습니다.
  • 해시 기반 분할:데이터는 각 분할 키에 해시 함수라는 수학적 수식을 적용하여 분할된 데이터베이스 간에 균등하게 분산됩니다. 이 방법은 오버로드를 방지하는 데 도움이 되지만 여러 분할된 데이터베이스에 관련 데이터를 분산시켜 범위 쿼리의 효율성을 낮게 만들 수 있습니다.
  • 디렉터리 기반 또는 조회 기반 분할: 분할된 데이터베이스 맵은 어떤 분할 키가 어떤 데이터에 해당하는지 나타냅니다. 이 전략은 필요에 따라 더 많은 분할 키를 빠르게 추가할 수 있는 유연성을 제공하지만 복잡성과 잠재적 오버헤드를 추가합니다.
  • 지리적 분할: 데이터는 지리적 위치에 따라 분할되어 서로 다른 지역의 사용자에 대한 대기 시간을 줄이고 데이터 보존 요구 사항을 지원합니다. 많은 플랫폼이 지리적 분할과 데이터베이스 복제를 결합하여 더 높은 복원력을 제공합니다.

데이터베이스에 대해 자세히 알아보세요.

데이터베이스 분할의 주요 이점은 무엇인가요?

데이터베이스 분할을 사용하려면 분할 키와 분할 전략을 신중하게 선택하고 쿼리 라우팅 최적화를 수행해야 합니다. 다음은 데이터베이스 분할의 몇 가지 주요 이점입니다.

  • 쿼리 성능 향상:여러 분할된 데이터베이스에 데이터를 분산하면 데이터베이스가 각 쿼리를 실행하는 데 필요한 데이터 세트를 더 빠르게 검색할 수 있습니다. 이로 인해 응답 시간이 빨라집니다.
  • 수평 확장성 지원: 단일 서버에서 리소스 용량을 확장하는 대신, 조직은 더 많은 분할된 데이터베이스(및 서버)를 확장하고 추가하여 증가하는 데이터 및 워크로드 볼륨을 수용할 수 있습니다. 수직 확장과 수평 확장에 대해 자세히 알아보세요.
  • 내결함성 강화: 분할은 SNA 접근 방식을 사용하므로 각 분할된 데이터베이스는 다른 분할된 데이터베이스와 격리됩니다. 하나의 분할된 데이터베이스에 영향을 주는 모든 문제는 다른 분할된 데이터베이스에 영향을 주지 않으므로 시스템 안정성이 향상됩니다. 분할된 데이터베이스 간 데이터 복제는 가용성을 더욱 보호합니다.
  • 비용 효율성 향상:데이터 분할된 데이터베이스에는 대용량 데이터베이스보다 하드웨어 및 소프트웨어 요구 사항이 적어 종종 고가의 고급 서버가 필요합니다.

AI 워크로드를 최적화하는 데 도움이 됩니다. 복잡한 모놀리식 데이터베이스는 AI가 데이터에 액세스하고, 예측을 수행하고, 시간이 지남에 따라 학습하는 능력을 느리게 할 수 있습니다. 분할은 AI가 더 효과적으로 작동할 수 있는 분산되고 데이터가 풍부한 환경의 생성을 지원합니다.

데이터베이스 분할의 산업별 예제

데이터베이스 분할은 데이터 또는 사용자 트래픽이 빠르게 증가하거나 예측할 수 없는 급증을 경험하는 클라우드 기반 솔루션에 특히 유용합니다. 다음 사용 사례는 산업 전반에 걸쳐 분할을 적용할 수 있는 방법을 보여 줍니다.

  • 전자 상거래: 소매 플랫폼은 분할된 데이터베이스 간에 고객 및 주문 데이터를 분할하여 쇼핑 성수기 동안 빠른 제품 검색과 원활한 결제 환경을 보장합니다.
  • 금융 서비스: 은행 및 기타 금융 거래 기록이 날짜 또는 계좌 번호로 분할되어 효율적인 쿼리와 안전하고 확장 가능한 스토리지를 허용합니다.
  • 온라인 게임: 플레이어 또는 세션 데이터는 지역 및 사용자 ID로 나뉘어 분할된 데이터베이스 간에 부하를 분산하고 전 세계 대상 그룹을 위해 대기 시간(데이터가 목적지로 이동하는 데 필요한 시간)을 최소화합니다.
  • 소셜 미디어: 소셜 미디어 플랫폼은 사용자 프로필 및 활동 피드 데이터를 사용자 ID 또는 시간 범위로 나눕니다. 이 접근 방식을 사용하면 플랫폼이 최근 게시물을 신속하게 쿼리하고 수백만 명의 동시 사용자를 지원할 수 있습니다.
  • SaaS(Software-as-a-Service): 여러 테넌트가 있는 SaaS 앱은 일반적으로 테넌트 ID로 데이터를 나눕니다. 그러면 고객 데이터가 격리되고 사용자 기반이 커짐에 따라 관리가 간소화됩니다. 테넌트 워크로드 또는 지리적 위치로 나눌 수도 있습니다.

빅 데이터 분석 작동 방법에 대해 자세히 알아보세요.

데이터베이스 분할의 미래

분할은 여러 독립 서버에 데이터를 분산하여 단일 서버의 부하를 줄이고 병목 현상을 최소화하며 시스템 가용성 및 응답성을 개선합니다. 최신 클라우드 환경에서 데이터베이스 분할을 사용하는 이점은 AI 및 기타 관련 기술이 계속 발전함에 따라 증가합니다.

주목할 추세는 다음과 같습니다.

AI 지원 분할 워크플로

자동화된 분할 키 선택, 워크로드 리밸런싱 및 쿼리 라우팅과 같은 지능형 기능이 더욱 주류가 될 것입니다.

장점: 간소화되고 최적화된 작업과 전례 없는 확장성

가동 중지 시간 없는 재분할

최신 데이터 플랫폼은 데이터 가동 중지 시간이나 복잡한 데이터 마이그레이션 없이 분할 키 변경을 점점 더 지원할 것입니다.

장점: 워크로드가 발전함에 따라 분할 전략을 업데이트할 수 있는 유연성 향상

서버리스 데이터베이스와 결합된 분할

서버리스 데이터베이스는 각 분할된 데이터베이스에 대해 서버를 독립적으로 프로비전하고 관리합니다. 또한 이벤트 기반 쿼리를 기반으로 필요에 따라 용량을 확장하거나 축소합니다.

장점: 운영 오버헤드 감소

적응형 정책 기반 지역 분할

자동화된 분할 워크플로는 코드에 포함된 지역별 정책 규칙에 따라 지리적 분할된 데이터베이스 간에 데이터를 자동으로 라우팅합니다. 장점: 변화하는 규제 및 개인 정보 보호 요구 사항을 더 빠르게 준수

클라우드 컴퓨팅에 대해 자세히 알아보세요.

자주 묻는 질문

  • 데이터베이스 분할은 전체 데이터의 고유한 하위 집합이 포함된 분할된 데이터베이스를 각각 호스팅하는 여러 서버에 걸쳐 대규모 데이터베이스를 수평으로 확장하는 프로세스입니다. 분할은 단일 대규모 서버에 의존하지 않고 컴퓨터 간에 쿼리 및 스토리지를 분산하여 증가하는 데이터 볼륨 및 사용자 트래픽을 효율적으로 처리하는 데 사용됩니다.
  • 분할과 파티셔닝 모두 대규모 데이터베이스를 더 작은 하위 집합으로 분할하여 데이터베이스 작업을 최적화합니다. 그러나 파티셔닝은 동일한 서버에서 데이터를 분할하는 반면 분할은 여러 서버에 데이터를 분산합니다. 복제는 중복성을 위해 동일한 데이터 세트의 여러 복사본을 다양한 서버에 유지하는 것을 의미합니다. 
  • 예, 데이터베이스 분할은 애플리케이션 성능 및 확장성을 향상시킵니다. 분할된 데이터베이스 전체에 데이터 및 워크로드를 분산함으로써 분할은 쿼리 응답 시간을 줄이고 내결함성을 높입니다. 조직은 앱을 수평적으로 확장할 수도 있습니다. 분할 키와 분할 전략의 선택은 데이터 분할을 최적화하는 데 필수적입니다.
  • 예, Azure 및 기타 클라우드 플랫폼은 데이터베이스 분할에 대한 기본 제공 지원을 제공합니다. 예를 들어 Azure SQL Database는 분할된 데이터베이스 만들기 및 관리를 간소화하는 클라이언트 라이브러리를 포함하여 데이터베이스 크기 조정을 최적화하기 위한 여러 도구를 제공합니다.