영업: 1-800-867-1380

Azure SQL 데이터베이스의 페더레이션

업데이트 날짜: 2014년 4월

Microsoft Azure SQL 데이터베이스(Azure SQL 데이터베이스)의 페더레이션은 응용 프로그램의 데이터베이스 계층에서 확장성을 높이고 용량 제한을 관리하는 한 방법입니다. 데이터베이스에 있는 하나 이상의 테이블은 페더레이션 멤버라는 여러 데이터베이스에 수평 분할됩니다. 이 유형의 행 분할을 흔히 '분할(sharding)'이라고 합니다. 이 항목에서는 페더레이션에 대해 간략하게 설명합니다.

Important중요
현재 페더레이션 구현은 Web 및 Business와 함께 사용이 중지될 예정입니다. 확장성, 유동성 및 성능을 최대화하려면 사용자 지정 분할 솔루션을 배포하는 것이 좋습니다. 사용자 지정 분할에 대한 자세한 내용은 Azure SQL 데이터베이스 확장을 참조하십시오.

페더레이션페더레이션 구성표라고 하는 페더레이션 배포 체계로 정의된 데이터베이스 파티션의 컬렉션입니다. 페더레이션 구성표는 페더레이션 내의 파티션에 대한 데이터 배포를 결정하는 페더레이션 배포 키를 정의합니다. 페더레이션 배포 키는 INT, BIGINT, UNIQUEIDENTIFIER 또는 VARBINARY(최대 900바이트)여야 하고 범위 값을 지정합니다. 페더레이션에는 페더레이션 구성표와 페더레이션 배포 키가 하나씩만 있을 수 있습니다.

페더레이션 내의 데이터베이스 파티션을 페더레이션 멤버라고 하며, 각 멤버는 페더레이션 배포 키의 데이터 형식이 적용되는 값의 범위를 일부 또는 모두 담당합니다. 페더레이션된 테이블은 페더레이션 멤버에 분산되어 있는 테이블입니다. 각 페더레이션 멤버에는 고유 스키마가 있으며 페더레이션 멤버의 범위에 해당하는 페더레이션된 테이블 행이 포함되어 있습니다. 페더레이션 멤버에서 특정 페더레이션 키 값과 일치하는 모든 행의 컬렉션을 페더레이션 원자성 단위라고 합니다. 각 페더레이션 멤버에는 많은 페더레이션 원자성 단위가 포함되어 있을 수 있습니다. 페더레이션 멤버에는 페더레이션을 인식하지 않는 테이블인 참조 테이블이 포함될 수도 있습니다. 참조 테이블은 한 멤버에 완전히 포함되어 있으며 페더레이션된 데이터와 함께 검색되는 참조 정보를 포함하는 경우가 많습니다.

페더레이션 멤버는 자신이 포함하는 데이터와 다른 멤버에 저장된 데이터 간의 물리적 분리를 제공합니다. 각 페더레이션 멤버에는 고유 스키마가 있습니다. 이러한 스키마는 모든 멤버에서 롤링 스키마 업그레이드를 수행하는 등의 멤버 관련 처리 때문에 다른 멤버의 스키마에서 일시적으로 벗어날 수 있습니다.

페더레이션 멤버가 데이터베이스로 물리적으로 구현된 경우 응용 프로그램 계층에서 페더레이션 키 값의 범위로 논리적으로 참조됩니다. 예를 들어, 페더레이션 키 값 50-100과 연결된 행이 포함된 페더레이션 멤버 데이터베이스는 데이터베이스 이름을 지정하는 대신 해당 범위 내의 키 값을 지정하여 논리적으로 액세스됩니다.

페더레이션은 페더레이션의 응용 프로그램 경계를 나타내는 페더레이션 루트 데이터베이스를 통해 액세스됩니다. 페더레이션은 지정된 페더레이션 키 값에 따라 적절한 페더레이션 멤버에 연결을 라우팅하여 페더레이션에 연결하는 응용 프로그램의 논리적 끝점 역할을 합니다. 각 루트 데이터베이스에는 각기 고유한 페더레이션 스키마가 있는 여러 페더레이션이 포함될 수 있습니다. 또한 사용자, 암호, 역할 또는 다른 응용 프로그램 관련 데이터 등의 글로벌 데이터도 포함될 수 있습니다.

다음 다이어그램에서는 페더레이션의 논리적 모델과 물리적 모델을 보여줍니다.

페더레이션을 디자인할 때 가장 중요한 디자인 결정 중 하나는 페더레이션할 값입니다. 이상적으로는 관련 행이 함께 저장되도록 여러 관련 테이블의 데이터를 페더레이션할 수 있는 키를 선택하고자 합니다. 예를 들어, 다중 테넌트 응용 프로그램의 경우 tenant_id를 선택할 수 있습니다. 동일한 tenant_id 값을 지정하는 페더레이션된 각 테이블 내의 행은 동일한 페더레이션 원자성 단위에 저장됩니다.

한 멤버에 모든 새 레코드를 저장하는 대신 모든 페더레이션 멤버가 동일하게 사용되는 방식으로 새 레코드를 삽입하는 방법도 고려해야 합니다. 페더레이션 멤버에 새 데이터를 배포하는 방법의 결정은 응용 프로그램 계층에서 처리해야 합니다..

다른 페더레이션 멤버에 포함된 데이터가 물리적으로 분리되어 있고 SQL 데이터베이스에서 데이터베이스 간의 조인 작업을 지원하지 않으므로 응용 프로그램은 여러 페더레이션 멤버나 여러 페더레이션에서 데이터를 조인하는 논리를 구현해야 합니다. 예를 들어, 두 페더레이션에서 데이터를 조인해야 하는 쿼리는 각 페더레이션에 대해 별도의 쿼리를 수행하고 응용 프로그램 내에서 데이터를 조인해야 합니다. 이는 페더레이션에 포함된 모든 행의 수를 얻는 것과 같이 단일 페더레이션 내의 여러 분할된 데이터베이스에서 데이터를 집계하는 경우에도 해당합니다.

이제 데이터 분할을 위한 추가 SQL 기능을 설명하는 새 사양을 Microsoft Open Specification Promise에서 사용할 수 있습니다. 자세한 내용은 Azure SQL 데이터베이스 페더레이션 사양을 참조하십시오.

참고 항목

이 정보가 도움이 되었습니까?
(1500자 남음)
의견을 주셔서 감사합니다.
표시:
© 2014 Microsoft