티스토리 뷰

 

SQL Azure Federation(페더레이션)

SQL Azure의 경우 150GB Business Edition을 제공하고 있습니다. 하지만 150GB 이상 데이터를 처리하려면 어떻게 해야 할까라는 의문이 생깁니다. 150GB 데이터베이스를 여러 개 작성해서 이를 응용 프로그램에서 핸들링하기에는 사실 너무 무리가 많습니다.

On-Premise 에서는 분할 테이블이나 분할 뷰를 통해 여러 서버에 데이터를 분산하여 확장성과 성능을 도모하곤 했었습니다.

클라우딩 환경에서는 SQL Azure Federation(페더레이션)을 통해 행 분할을 통해 응용 프로그램의 데이터베이스 계층에서 확장성과 성능을 높이는 방법을 제공하고 있습니다. Federation(페더레이션)을 통해 확장성, 성능 및 추가 용량을 제공할 수 있으며 가동 중지 시간 없이 동적으로 쿼리 문이나 데이터베이스 포탈에서 작업을 수행 할 수 있습니다. 클라이언트 응용 프로그램은 서비스의 중단 없이 분할 작업 중에 데이터에 액세스할 수 있습니다.

테이블을 생성하기 전에 Federation(페더레이션) 키를 정의하고 범위 값을 지정합니다. Federation(페더레이션)은 페더레이션 루트 데이터베이스와 페더레이션 멤버들로 구성됩니다. 페더레이션에 접근할 때는 페더레이션 루트를 통해서 접근하게 됩니다. ADO.NET을 통해서 접근하게 되며 쿼리 문이 기존과 상이하며 Fan Out 쿼리를 처리하게 됩니다. 아래 논리적, 물리적 다이어그램 그림을 통해 페더레이션 구성을 보다 더 쉽게 이해가 가능합니다. 

그림출처- http://msdn.microsoft.com/ko-kr/library/windowsazure/hh597452.aspx

왼쪽의 사용자 데이터가 페더레이션 루트가 되며 Orders 테이블을 페더레이션 키로 분할했을 경우 오른쪽 화면처럼 페더레이션 멤버들이 구성되게 됩니다. 아래 그림은 페더레이션 멤버에 대한 물리적 다이어그램입니다. 페더레이션 멤버 2SQL Azure 데이터베이스입니다.

 

그림출처- http://msdn.microsoft.com/ko-kr/library/windowsazure/hh597452.aspx

위 그림에서 보는 것처럼 페더레이션 키를 이용해서 분할 하면 물리적으로 페더레이션 멤버 데이터베이스가 생성되어 확장성, 성능, 추가 용량을 제공해주는 클라우드 환경의 SQL Azure의 기능 중의 하나가 SQL Azure Federation(페더레이션)입니다.

아래는 SQL Azure Federation(페더레이션) 관련 참조 링크입니다.

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

http://msdn.microsoft.com/ko-kr/library/windowsazure/hh597452.aspx

l 데이터베이스 페더레이션 관리(SQL Azure 데이터베이스)

http://msdn.microsoft.com/ko-kr/library/windowsazure/hh597455.aspx

l CREATE FEDERATION(SQL Azure 데이터베이스)

http://msdn.microsoft.com/ko-kr/library/windowsazure/hh597470

l ALTER FEDERATION(SQL Azure 데이터베이스)

http://msdn.microsoft.com/ko-kr/library/windowsazure/hh597475

l 페더레이션 지침 및 제한 사항

http://msdn.microsoft.com/ko-kr/library/windowsazure/hh597469.aspx

l 데이터베이스 페더레이션에 대한 개발 고려 사항(SQL Azure 데이터베이스)

http://msdn.microsoft.com/ko-kr/library/windowsazure/hh597458.aspx

쿼리 문과 데이터베이스 포탈을 통한 SQL Azure Federation(페더레이션)에 대한 내용은 이어서 다루도록 하겠습니다.

댓글