티스토리 뷰

 

SQL Azure Federation (4)

 

SQL Azure Database Portal 에서 Federationhttp://redju.tistory.com/166 에서와 같은 내용으로 생성해보도록 하겠습니다.

 

1.     Federation을 생성합니다.

2.     테이블 생성 쿼리에 Federation을 추가하여 쿼리를 실행합니다.

3.     데이터를 적절한 Federation 멤버에 인서트 합니다.

4.     Federation 결과를 확인하고 모니터링하면서 필요에 따라 SPLITMERGE 를 실행합니다.

 

아래 그림의 경우처럼 해당 데이터베이스를 클릭하고 Summary를 통해 상단의 New Federation 메뉴를 클릭합니다.
 

New Federation 메뉴에서는 Name, Distribution Name을 입력합니다. Data Type bigint 로 선택합니다
 

생성된 것을 확인할 수 있습니다.

 

위 그림의 Orders_Federation의 오른쪽 화살표 아이콘을 클릭하여 Federation Member로 이동합니다. 현재는 Member가 하나이며 클릭시 Query 메뉴에서 Create Federated Table 메뉴를 볼 수 있습니다.
 

Create Federated Table 메뉴를 클릭하여 페더레이션 테이블을 생성합니다.

 

실제 테이블 생성 구문은 아래처럼 입력합니다. 맨 마지막에 FEDERATED ON 구문이 들어갑니다.
 

나중에 SPLIT을 하기 위해 데이터를 입력하는 쿼리를 실행합니다.
 

왼쪽의 AdventureWorks2012_Fed 메뉴를 클릭하여 다시 4 번째 그림으로 이동합니다. LOW 를 클릭하여 Split Federation Member 를 클릭하여 분할 값을 지정합니다. 여기서는 3000으로 지정합니다
 

또는 Split 메뉴를 통해서 분할 값을 입력해도 됩니다.

분할이 진행 중이며 왼쪽의 AdventureWorks2012_Fed 메뉴를 클릭하면 아래와 같은 그림을 살펴볼 수 있습니다.
 

위 그림에서 2 개의 Federation Member 를 확인 가능하며 데이터베이스가 2 개므로 요금이 과금됩니다. 분할된 내용은 LOW~3000, 3000~HIGH 로 구분됩니다. 필요하다면 더 분할 가능합니다. 분할된 내용이 필요없을 경우 병합도 가능합니다만 DROP를 시킬수 있고 데이터의 병합은 쿼리 문으로는 지원되고 있지는 않고 다른 방법으로만 가능합니다.

3000..HIGH 에 대한 내용의 Query 메뉴를 통해 Orders 테이블을 SELECT 하면 현재 값이 없다는 것을 확인이 가능합니다.

해당 Federation Member 에 대한 쿼리를 하려면 위 그림처럼 USE FEDERATION 구문을 통해 처리합니다.

 USE FEDERATION [Orders_Federation] ([OrderID] = 3000) WITH FILTERING = OFF, RESET

GO

 

위 멤버에서 3000 이라고 하는데 2999, 3000, 3001을 입력하면 어떻게 될까요? 2999는 실패하게 됩니다.

 

여기에서는 SQL Azure Database Portal 을 통해 SQL Azure Federation 을 통해 Federation을 생성하고 Federated 테이블을 생성하고 INSERT, SELECT 를 실행하고 SPLIT 을 통해 멤버로 분할되는 것을 알아보았습니다.

분할된 내용을 병합하는 것은 별도로 다루어보도록 하겠습니다.

댓글