분산 관계형 데이터베이스 이해

적용 대상: Azure Cosmos DB for PostgreSQL(PostgreSQL에 대한 Citus 데이터베이스 확장 기반)

Azure Cosmos DB는 NoSQL 및 모든 규모의 관계형 데이터베이스를 위한 전역적으로 분산된 데이터베이스 플랫폼입니다. 이 문서에서는 Azure Cosmos DB의 관계형 API 옵션 컨텍스트에서 분산 관계형 데이터베이스를 살펴봅니다.

Azure의 다른 데이터 스토리지 옵션에 대한 자세한 내용은 Azure 아키텍처 센터에서 올바른 데이터 저장소 선택을 참조하세요.

챌린지

대량 또는 높은 트랜잭션 워크로드에 대해 읽는 경우 이러한 워크로드가 애플리케이션이 직면할 수 있는 워크로드보다 훨씬 크다고 쉽게 생각할 수 있습니다. 워크로드가 작게 유지된다는 가정은 프로젝트, 아이디어 또는 조직을 시작할 때 안전한 가정일 수 있습니다. 그러나 이러한 가정은 애플리케이션의 워크로드가 예측보다 훨씬 더 커지는 시나리오로 빠르게 이어질 수 있습니다. 프로젝트 시작 시 경제적이고 성능이 뛰어난 단일 인스턴스 데이터베이스의 최대 처리량 또는 처리 능력을 충족하는 워크로드에 대한 이야기를 듣는 것은 드문 일이 아닙니다.

관계형 데이터베이스

관계형 데이터베이스는 데이터베이스의 다양한 테이블 간의 관계를 사용하여 데이터를 테이블 형식(행/열)으로 구성합니다. 관계형 데이터베이스는 다양한 기업에서 흔히 사용됩니다. 이러한 기업에는 관계형 데이터베이스 관련 코드를 작성한 소프트웨어 개발자 또는 스키마를 설계하고 관계형 데이터베이스 플랫폼을 관리하는 관리자가 풍부한 경우가 많습니다. 관계형 데이터베이스는 ACID 보장을 통해 트랜잭션을 지원하는 경우가 많습니다.

아쉽게도 처음에는 조직에서 많은 관계형 데이터베이스 시스템을 컴퓨팅, 메모리, 네트워킹 리소스에 대한 상위 제약 조건을 가진 단일 노드 방식으로 구성합니다. 이러한 상황은 모든 관계형 데이터베이스가 본질적으로 단일 노드라는 잘못된 가정으로 이어질 수 있습니다.

분산 데이터베이스

많은 클라우드 네이티브 백서를 사용하면 관계형 데이터베이스가 대규모 데이터베이스 또는 분산 워크로드에 적합한 선택이 아닌 것처럼 보이게 하는 NoSQL 데이터베이스의 이점에 대해 흔히 들을 수 있습니다. 많은 분산 데이터베이스는 비관계형이지만 분산 관계형 데이터베이스 워크로드에 대한 옵션입니다.

이러한 분산 관계형 데이터베이스 옵션을 사용하려면 대부분은 조직에서 프로젝트를 시작할 때부터 대규모 작업과 배포를 계획해야 합니다. 이 계획 요구 사항은 프로젝트 시작 시 복잡성이 크게 높아져서 모든 관련 서버 노드를 팀에서 구성, 관리, 유지하도록 할 수 있습니다. 전역적으로 분산된 관계형 데이터베이스의 계획, 구현, 네트워킹 요구 사항은 단일 인스턴스(또는 노드)를 설정하는 것보다 훨씬 더 복잡해질 수 있습니다.

Azure Cosmos DB

Azure Cosmos DB는 NoSQL 및 관계형 변형 모두에서 분산 데이터 API를 제공하는 데이터베이스 플랫폼입니다. 특히 Azure Cosmos DB용 관계형 API는 PostgreSQLCitus 확장을 기반으로 합니다.

Citus는 데이터 및 트랜잭션 배포를 위해 Postgres를 추가로 지원하는 PostgreSQL 확장입니다. Azure Cosmos DB for PostgreSQL은 Citus를 사용하는 완전 관리형 서비스로, 개별 서버 노드를 수동으로 계획, 관리, 유지할 필요 없이 고가용성을 자동으로 제공합니다. PostgreSQL용 API를 사용하면 완전 관리형 단일 노드 클러스터로 시작하여 데이터베이스 솔루션을 빌드한 다음, 시간이 흐르면서 애플리케이션 요구 사항이 증가함에 따라 턴키 방식으로 크기를 조정할 수 있습니다. PostgreSQL용 API를 사용하면 복잡한 배포 프로젝트를 미리 계획하거나 단일 노드에서 분산 데이터베이스로 데이터를 마이그레이션하는 프로젝트를 계획할 필요가 없습니다.

다음 단계

Azure Cosmos DB를 시작하시겠어요?