적용 대상:Azure SQL Database
탄력적 쿼리를 사용하여 단일 연결 지점의 여러 데이터베이스에서 보고서를 만들 수 있습니다. 데이터베이스를 가로로 분할해야 합니다("분할됨"이라고도 함).
기존 데이터베이스가 있는 경우 확장할 기존 데이터베이스 마이그레이션을 참조하세요.
쿼리에 필요한 SQL 개체를 이해하려면 확장된 클라우드 데이터베이스(미리 보기)에서 보고를 참조하세요.
사전 요구 사항
Elastic Database 도구를 다운로드하고 실행합니다.
샘플 응용 프로그램을 사용하여 분할된 데이터베이스 맵 관리자 만들기
여기서는 샤드 맵 관리자를 만들고 여러 샤드를 생성한 후 샤드에 데이터를 삽입합니다. 데이터가 분할되어 있는 샤드가 이미 설정되어 있는 경우, 다음 단계를 건너뛰고 다음 섹션으로 이동하실 수 있습니다.
이 문서의 샘플 앱 다운로드 및 실행 섹션의 단계에 따라 탄력적 데이터베이스 도구 시작하기 샘플 애플리케이션을 빌드하고 실행합니다. 모든 단계를 완료하면 다음 명령 프롬프트가 표시됩니다.
명령 창에서
1
를 입력하고 Enter 키를 누릅니다. 이 명령은 분할된 데이터베이스 관리자를 생성 및 두 분할된 데이터베이스를 추가합니다. 그런 다음3
키를 입력 하고 누릅니다. 작업을 네 번 반복합니다. 이 명령은 분할된 데이터베이스에 샘플 데이터행을 삽입합니다.Azure Portal에서 사용자의 서버 내에 다음과 같은 3개의 새 데이터베이스가 보여야 합니다.
이 시점에 데이터베이스 간 쿼리는 Elastic Database 클라이언트 라이브러리를 통해 지원됩니다. 예를 들어 명령 창에서 옵션을
4
사용합니다. 다중 샤드 쿼리의 결과는 항상 모든 샤드의 결과의UNION ALL
부분집합입니다.다음 섹션에서는 분할 된 데이터베이스 간 데이터의 다양한 쿼리를 지원하는 샘플 데이터베이스 엔드포인트를 만듭니다.
탄력적 쿼리 데이터베이스 만들기
Azure Portal을 열고 로그인합니다.
분할된 데이터베이스를 설치한 동일 서버의 Azure SQL Database에서 새 데이터베이스를 만듭니다. 데이터베이스 이름을 지정합니다
ElasticDBQuery
.기존 데이터베이스를 사용할 수 있습니다. 그럴 경우, 사용자가 실행하고 싶은 쿼리가 포함된 분할된 데이터베이스가 아닙니다. 이 데이터베이스는 탄력적 데이터베이스 쿼리에 대한 메타데이터 개체를 만드는 데 사용됩니다.
데이터베이스 개체 만들기
데이터베이스-범위 마스터 키 및 자격 증명
분할된 데이터베이스와 분할된 데이터베이스 관리자를 연결하는데 사용됩니다.
SQL Server Management Studio 또는 Visual Studio의 SQL Server Data Tools를 엽니다.
데이터베이스에
ElasticDBQuery
연결하고 다음 T-SQL 명령을 실행합니다.CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<master_key_password>'; CREATE DATABASE SCOPED CREDENTIAL ElasticDBQueryCred WITH IDENTITY = '<username>', SECRET = '<password>';
"사용자 이름" 및 "암호"는 모두 이전 단계에서 만든 로그인 정보여야 합니다.
외부 데이터 원본
외부 데이터 원본을 만들려면 데이터베이스에서 ElasticDBQuery
다음 명령을 실행합니다.
CREATE EXTERNAL DATA SOURCE MyElasticDBQueryDataSrc WITH
(TYPE = SHARD_MAP_MANAGER,
LOCATION = '<server_name>.database.windows.net',
DATABASE_NAME = 'ElasticScaleStarterKit_ShardMapManagerDb',
CREDENTIAL = ElasticDBQueryCred,
SHARD_MAP_NAME = 'CustomerIDShardMap'
) ;
CustomerIDShardMap
는 엘라스틱 데이터베이스 도구 샘플을 사용하여 샤드 맵과 샤드 맵 관리자를 만든 경우의 샤드 맵 이름입니다. 그러나, 이 샘플에서 사용자 설치를 사용했다면, 애플리케이션 내에서 분할된 데이터베이스 이름을 정해야 합니다.
외부 테이블
데이터베이스에서 다음 명령을 ElasticDBQuery
실행하여 분할된 데이터베이스의 Customers 테이블과 일치하는 외부 테이블을 만듭니다.
CREATE EXTERNAL TABLE [dbo].[Customers]
( [CustomerId] [int] NOT NULL,
[Name] [nvarchar](256) NOT NULL,
[RegionId] [int] NOT NULL)
WITH
( DATA_SOURCE = MyElasticDBQueryDataSrc,
DISTRIBUTION = SHARDED([CustomerId])
) ;
탄력적 데이터베이스 T-SQL쿼리 샘플 실행
외부 데이터 원본 및 외부 테이블을 정의한 후에는 T-SQL을 사용하여 외부 테이블을 쿼리합니다.
ElasticDBQuery
데이터베이스에서 다음 쿼리를 실행합니다.
select count(CustomerId) from [dbo].[Customers];
쿼리는 모든 분할된 데이터베이스의 결과를 집계하고 다음 출력을 제공합니다.
탄력적 데이터베이스 쿼리 결과를 Excel로 가져오기
쿼리의 결과를 엑셀파일로 가져올 수 있습니다.
- Microsoft Excel을 시작합니다.
- 데이터 리본을 탐색합니다.
- 다른 원본에서를 선택하고 SQL Server에서를 선택합니다.
- 데이터 연결 마법사에서 서버 이름 및 로그인 자격 증명을 입력합니다. 그런 후 다음을 선택합니다.
- 대화 상자에서 원하는 데이터가 포함된 데이터베이스를 선택하고 데이터베이스를
ElasticDBQuery
선택합니다. -
Customers
목록 보기에서 테이블을 선택하고 다음을 선택합니다. 그런 다음, 마침을 선택합니다. - 데이터 가져오기 양식의 통합 문서에서 이 데이터를 보는 방법 선택에서테이블을 선택합니다. 확인을 선택합니다.
다른 분할된 데이터베이스에 Customers
저장된 테이블의 모든 행은 Excel 시트를 채웁니다.
이제 Excel의 강력한 데이터 시각화 함수를 사용할 수 있습니다. 서버 이름, 데이터베이스 이름 및 자격 증명과 함께 연결 문자열을 사용하여 BI 및 데이터 통합 도구를 탄력적 쿼리 데이터베이스에 연결할 수 있습니다. SQL Server 도구에 대한 데이터 소스로 지원 되는지 확인 합니다. 탄력적 쿼리 데이터베이스 및 기타 SQL Server 데이터베이스와 마찬가지로 외부 테이블 및 도구와 연결할 수 있는 SQL Server 테이블을 참조할 수 있습니다.
비용
Elastic Database 쿼리 기능 사용에 대한 추가 요금은 없습니다.
가격 책정 정보는 SQL Database 가격 책정 세부 정보를 참조하세요.
관련 콘텐츠
- Azure SQL Database 탄력적 쿼리 개요(미리 보기)
- 크로스 데이터베이스 쿼리 시작하기(수직 분할) (프리뷰)
- 다른 스키마(미리 보기) 사용하여 클라우드 데이터베이스에서 쿼리를
- 확장된 클라우드 데이터베이스 보고(미리 보기)
- sp_execute_remote