Set Up XMLA HTTP Access for SQL Server
이 기사에서는 Adventure Works 데이터베이스에 대한 XMLA HTTP 액세스 및 분석 서비스를 제공하는 SQL 서버를 설정하는 방법을 설명합니다. 마지막으로 이 Infragistics 설정을 사용하고 'Silverlight PivotGrid를 사용하여 데이터를 시각화하는 기본 Silverlight 응용 프로그램을 보여 드리겠습니다.
SQL Server Analysis Service 2008
SQL 서버 설치부터 시작하겠습니다. 설치는 매우 간단합니다. 화면의 지시를 따르기만 하면 모든 것이 정상입니다. 주의가 필요한 몇 가지 핵심 사항(이탤릭체 텍스트)이 있으며 설정이 어떻게 진행되어야 하는지 설명하면서 그 내용을 알려드리겠습니다.
배포는 컴퓨터에 없을 수 있는 .NET Framework 및 설치 관리자 업데이트 설치로 시작됩니다. 그런 다음 지원 파일이 설치됩니다.
이 작업이 완료되면 제품 키를 입력하고 사용 조건에 동의하라는 메시지가 표시됩니다. 그런 다음 기능 선택 항목이 표시됩니다. 이 자습서의 기본 시나리오를 지원하려면 이제 몇 가지만 필요하지만 고급 응용 프로그램을 개발할 계획이거나 이 설치를 다른 서비스와 결합하려는 경우 더 많이 또는 모두 설치할 수 있습니다. 데이터베이스 엔진 서비스, 전체 텍스트 검색, 분석 서비스, Business Intelligence Development Studio, 관리 도구 기본 및 완성 기능 중 최소 기능 집합은 다음과 같습니다.
BI Development Studio는 Adventure Works 샘플 데이터베이스 패키지를 배포하는 가장 쉬운 방법이므로 필요합니다. 관리 도구는 서버 및 샘플 데이터베이스의 설치를 확인할 수 있도록 필요하며 SQL 서버의 데이터, 데이터베이스 및 설정을 조작할 수도 있습니다.
기능을 사용할 준비가 되면 SQL 서버에 대한 기본 인스턴스 또는 명명된 인스턴스를 사용할지 선택해야 합니다. 둘 이상의 인스턴스를 가질 계획이 없다면 기본값은 괜찮습니다.
그런 다음 사용자 계정 구성에 대해 묻는 메시지가 표시됩니다. 모든 서비스에 대해 NT AUTHORITY\NETWORK SERVICE 사용자를 안전하게 선택하고 데이터베이스 엔진 및 분석 서비스 구성이 필요할 때마다 현재 사용자를 추가하여 관리 권한을 가질 수 있습니다. 분석 프로비저닝을 위해 추가하는 사용자는 웹 애플리케이션을 실행하는 사용자여야 하므로 다른 계정이 이 관리 기능을 제공하도록 하려면 여기에 추가하기 전에 생성하거나 나중에 Management Studio의 관리자 역할에 추가해야 합니다(이 문서의 뒷부분에서 설명).
사용자 선택, 오류 및 사용 보고 선택 항목을 지나고 설치 규칙을 선택하면 요약이 표시되고 설치를 누릅니다. 설치 프로세스가 완료되면 Windows 7을 사용하는 경우 고려해야 할 또 다른 문제가 있습니다- 소프트웨어에 알려진 문제가 있으며 SQL 서버를 사용하기 전에 SP1을 설치해야 합니다.
설치가 성공적으로 완료되었는지 확인하려면 시작 메뉴로 이동하여 SQL Management Studio를 찾습니다. 그것을 열고 방금 설치한 분석 서버의 로컬 인스턴스에 연결해 보십시오. 오류가 발생하지 않으면 계속 진행할 수 있습니다.
XMLA HTTP Access
분석 서비스를 사용하여 SQL 서버를 설치한 후 XMLA HTTP 액세스를 계속할 수 있습니다. 웹 서버가 필요하며 이 자습서에서는 IIS 7을 사용합니다. IIS를 설치하는 가장 쉬운 방법은 Windows Vista 또는 7을 사용하는 경우 프로그램 추가/제거 또는 프로그램에서 Windows 기능 켜기 또는 끄기의 Windows 구성 요소 추가/제거 모듈을 시작하는 것입니다.
설치해야 하는 기능은 인터넷 정보 서비스 폴더에 있습니다. 몇 가지 하위 기능만 사용하면 쉽게 사용할 수 있지만 IIS의 특정 기능에 의존할 수 있는 고급 응용 프로그램을 수행하려는 경우 모든 것을 설치하면 문제를 해결할 수 있습니다. 이 사례의 필수 기능은 웹 관리 도구, .NET 확장성, ASP.NET, ISAPI 확장, 기본 인증 및 Windows 인증입니다. 그러나 나는 모든 것을 설치했다.
확인을 누르면 IIS가 설치되고 시작됩니다.
IIS를 구성하려면 IIS 관리자 콘솔을 시작해야 합니다. 내 컴퓨터를 마우스 오른쪽 버튼으로 클릭하고 관리를 누른 다음 인터넷 정보 서비스를 찾거나 시작 메뉴의 실행에서 InetMgr.exe 시작할 수 있습니다.
응용 프로그램에 대한 응용 프로그램 풀을 만들어 IIS 구성을 시작합니다. Application pools(응용 프로그램 풀)를 마우스 오른쪽 단추로 클릭하고 Add Application Pool(응용 프로그램 풀)을 누릅니다.
열린 창에서 응용 프로그램 풀에 이름을 지정합니다.
Press OK.
이제 XMLA HTTP 액세스를 제공하는 웹 사이트의 기반이 될 일부 파일을 복사해야 합니다. SQL 서버를 설치한 위치 >\OLAP\bin\isapi< 아래에 있습니다. 제 경우에는 해당 폴더는 C : \ Program Files \ Microsoft SQL Server \ MSAS10입니다. ASQL\OLAP\bin\isapi입니다. 이 폴더의 모든 파일을 복사하여 기본 웹 사이트의 루트 아래에 있는 새 파일에 붙여넣습니다. 구성 관리자에서 사이트 이름을 마우스 오른쪽 버튼으로 클릭하고 Explore를 눌러 이 폴더로 이동할 수 있습니다. olap라는 새 폴더를 만들고 복사한 파일을 붙여넣습니다. 또한 IIS 서비스를 실행하는 사용자에게 폴더의 파일을 읽을 수 있는 권한이 있는지 확인해야 합니다. 상위 폴더(웹 루트)에 있는 속성의 보안 섹션으로 이동하여 확인합니다. 권한이 올바르지 않으면 브라우저에서 해당 웹 사이트를 가리킬 때 파일을 찾을 수 없거나 찾고 있는 파일에 액세스할 수 없다는 오류 메시지가 표시됩니다.
복사한 dll 파일은 XMLA를 제공하는 엔진이고 ini는 엔진을 SQL 서버로 가리키는 파일입니다. IIS 컴퓨터와 다른 컴퓨터에 SQL을 설치한 경우 그에 따라 이 파일을 수정해야 합니다.
olap 폴더를 만들었으면 IIS 관리자로 다시 이동하여 기본 웹 사이트를 확장하고 그 아래에 있는 olap 폴더를 찾습니다. 표시하려면 새로 고침을 눌러야 할 수도 있습니다. 그렇게 되면 마우스 오른쪽 버튼을 클릭하고 응용 프로그램으로 변환을 누릅니다.
새로 열린 창에서 응용 프로그램 풀을 olap로 변경합니다.
이 작업을 완료하면 프로세스의 이 섹션을 완료하기 위해 수행해야 하는 세 단계만 있습니다. 첫 번째는 *.dll에 대한 핸들러를 웹 사이트에 추가하는 것입니다. olap 폴더를 선택하고 IIS 설정에서 처리기 매핑을 누릅니다.
화면 오른쪽에서 스크립트 맵 추가 링크를 찾을 수 있습니다. 눌러주세요. 요청 경로에 *.dll를 입력합니다. 그런 다음 실행 파일의 경우 olap 폴더에 있는 msmdpump.dll 파일의 경로를 지정하고 이름을 olap로 지정합니다.
확인 단추를 누르면 ISAPI 확장을 추가하라는 메시지가 나타나고 예를 눌러야 합니다.
이제 두 번째 단계는 olap 폴더에 있는 IIS의 인증 설정으로 이동하는 것입니다. 기본적으로 익명 인증만 사용하도록 설정되어 있습니다. 이 자습서에서는 익명만 사용하지만 더 많은 고급 인증 메커니즘을 사용할 수 있다는 점을 명심하십시오. 이제 익명 인증을 마우스 오른쪽 버튼으로 클릭하고 편집을 클릭합니다. 열리는 상자에서 설정 버튼을 클릭하고 SQL 설치 단계에서 분석 임시 계정으로 추가한 사용자 계정의 자격 증명을 입력합니다. 현재 로그온 한 사용자 일 수도 있고, 작업 전용을 특별히 만든 경우 다른 사용자 일 수도 있습니다. 이 사용자는 SQL 분석 서비스에 대한 모든 연결을 만듭니다.
SQL Analysis Service에서 관리 역할을 아직 추가하지 않은 경우 앞에서 설명한 것처럼 olap 애플리케이션을 시작하는 기본 사용자에 대한 액세스 권한을 추가하고 특수 서비스 사용자를 만들 필요가 없습니다. 이렇게 하려면 인증 페이지에 기본 사용자(IUSR)를 그대로 두고 Adventure Works 데이터베이스를 설치할 때까지 기다려야 합니다. 필요한 권한을 부여하는 방법을 지시하는 단락이 있습니다.
마지막 단계는 IIS 전역 설정(olap 폴더의 설정이 아님)으로 이동하여 ISAPI 및 SGI 제한을 선택하는 것입니다. msmdpump dll에 대해 만들라는 메시지가 표시된 제한에 이름이 없음을 알 수 있습니다. 두 번 클릭한 다음 이름을 olap으로 지정해야 합니다.
우리가 잘했는지 확인하려면 브라우저를 http://localhost/olap/msmdpump.dll 하고 결과를 관찰하도록 지정해야 합니다. Firefox는 다음과 유사한 것을 표시합니다.
Adventure Works 2008
이제 SQL 서버에 대한 XMLA 액세스를 설정했으므로 데모에서 액세스할 수 있는 데이터가 필요합니다. 매우 인기 있는 샘플 데이터 집합은 Adventure Works 패키지이며, 지금 바로 이 패키지를 설치하려고 합니다.
필요한 파일은 여기에 있습니다 : http://codeplex.com/MSFTDBProdSamples/Release/ProjectReleases.aspx
다운로드한 후 설치를 시작하고 사용권 계약에 동의합니다.
다음 단계는 샘플을 설치할 위치를 선택하는 것입니다. SQL Server의 설치 인스턴스를 선택한 후 다른 모든 항목은 기본값으로 둘 수 있습니다. 설치를 누릅니다.
프로세스가 완료되면 Analysis Services 데이터베이스가 설치됩니다. 이제 Analysis Services 데이터베이스를 설정해야 합니다. 이렇게 하려면 C:\Program Files\Microsoft SQL Server\100\Tools\Samples\AdventureWorks 2008 Analysis Services Project로 이동합니다. SQL 서버 버전에 따라 엔터프라이즈(엔터프라이즈 또는 개발자 버전) 또는 표준 폴더가 필요합니다. 그 안에 Adventure Works.sln 파일이 있으며 열어야합니다. 이 작업을 수행할 때 상승된 사용자 권한이 있어야 합니다.
Business Intelligence Development Studio를 사용하여 프로젝트를 열 때 솔루션을 마우스 오른쪽 단추로 클릭하고 배포를 누르기만 하면 됩니다. 이것으로 샘플 데이터베이스 설치를 마칩니다.
IIS에서 olap 애플리케이션을 시작하는 기본 사용자를 변경하지 않았거나 프로비저닝 계정(SQL 서버를 설치할 때 선택한 계정)과 다른 계정을 선택한 경우 이 시점에서 올바른 권한을 부여해야 합니다. 이렇게 하려면 SQL Management Studio를 열고 분석 데이터베이스에 연결합니다. Adventure Works DW 데이터베이스로 이동하여 역할 폴더를 마우스 오른쪽 단추로 클릭합니다. 새 역할을 선택하고, 이름을 지정하고, XMLA HTTP 액세스를 통해 제공하려는 액세스 수준을 설정합니다.
이 역할에 대한 사용 권한을 선택한 후 멤버십을 클릭하고 분석 서비스에 연결할 수 있는 사용자를 추가합니다. 기본 경우 IIS에서 olap 응용 프로그램을 실행하는 사용자를 IUSS라고 합니다. 이 자습서의 앞부분에서 설명한 인증 섹션에서 변경하지 않은 경우 추가하는 것으로 충분합니다.
Infragistics PivotGrid demo
Infragistics PivotGrid를 사용하여 기본 응용 프로그램을 빌드하기 전에 Silverlight 응용 프로그램이 우리가 만든 XMLA 인터페이스와 통신할 수 있는지 확인해야 합니다(도메인 간 문제). 이는 소위 클라이언트 액세스 정책에 의해 보장됩니다. Silverlight 네트워크 보안 액세스 제한에 대한 자세한 내용은 여기에서 확인할 수 있습니다 http://msdn.microsoft.com/en-us/library/cc645032%28VS.95%29.aspx
도메인 간 문제에 대한 해결책은 웹 서버의 루트에 clientaccesspolicy.xml라는 텍스트 파일을 만드는 것입니다. 이 폴더는 XMLA 엔진이 있는 폴더가 아니라 전체 웹 서버의 /(루트) 폴더입니다. 내용의 예는 다음과 같습니다.
<?xml version="1.0" encoding="utf-8"?>
<access-policy>
<cross-domain-access>
<policy>
<allow-from http-request-headers="*">
<domain uri="http://*"/>
</allow-from>
<grant-to>
<resource path="/" include-subpaths="true"/>
</grant-to>
</policy>
</cross-domain-access>
</access-policy>
마지막으로, 데이터와 데이터에 액세스할 수 있는 수단이 있으면 Infragistics PivotGrid 데모를 구축할 수 있습니다.
Silverlight 프로젝트를 만듭니다. 호스트 ASP 프로젝트를 만들지 말고 Silverlight만 하면 됩니다. 코드를 보여주기 전에 세 개의 어셈블리 참조를 추가해야 합니다.
Infragistics.Silverlight.DataVisualization.Olap.Preview.v10.1 Infragistics.Silverlight.DataVisualization.Olap.Xmla.Preview.v10.1 Infragistics.Silverlight.DataVisualization.PivotGrid.Preview.v10.1 Infragistics.Silverlight.DataVisualization.v10.1 Infragistics.Silverlight.DataVisualization.XamWebTree.Preview.v10.1
If you don’t already have them you can download the CTP version from this address: http://ko.infragistics.com/dotnet/netadvantage/silverlight/data-visualization.aspx#Downloads Look for the Betas section and “NetAdvantage for Silverlight Data Visualization CTP (November 2009)”. The downloaded file is a zip and you can find the assemblies under the NetAdvantage_DataVisualization_2010.1\Bin folder.
이 작업을 완료하면 XAML에 네임스페이스 참조를 추가해야 합니다.
xmlns:igPivot="clr-namespace:Infragistics.Silverlight.Controls;assembly=Infragistics.Silverlight.DataVisualization.PivotGrid.Preview.v10.1"
xmlns:Olap="clr-namespace:Infragistics.Olap;assembly=Infragistics.Silverlight.DataVisualization.Olap.Preview.v10.1"
xmlns:Xmla="clr-namespace:Infragistics.Olap.Xmla;assembly=Infragistics.Silverlight.DataVisualization.Olap.Xmla.Preview.v10.1"
마지막으로 샘플의 본문을 코딩할 준비가 되었습니다.
<StackPanel x:Name="LayoutRoot" Orientation="Horizontal" >
<StackPanel.DataContext>
<Olap:OlapViewModelCreator>
<Xmla:XmlaConnectionSettings
ServerUrl="http://localhost/olap/msmdpump.dll"
CatalogName="Adventure Works DW" />
</Olap:OlapViewModelCreator>
</StackPanel.DataContext>
<igPivot:XamWebPivotGrid x:Name="pivotGrid"
ViewModel="{Binding ViewModel}"
LayoutData="{Binding ViewModel.Result}" />
<igPivot:XamWebPivotDataSelector Grid.Column="1" ViewModel="{Binding ViewModel}" />
</StackPanel>
응용 프로그램이 로드되는 즉시 데이터를 로드하기 위해 생성자에 한 줄을 추가해야 합니다. 코드를 더 짧게 만들기 위해 람다 표현식을 사용하고 있습니다.
this.Loaded += (sender, e) => { pivotGrid.ViewModel.LoadCubesAsync(); };
이 코드의 네 가지 핵심 부분은 다음과 같습니다.
1. LayoutRoot의 DataContext에서 연결 설정을 지정합니다.
2. PivotGrid 주 컨트롤. ViewModel 및 LayoutData는 DataContext에서 그려집니다.
3. PivotDataSelector를 사용하면 PivotGrid가 표시해야 하는 데이터를 선택할 수 있습니다.
4. LoadCubes 메소드는 연결 설정에서 지정한 서버에서 데이터를 로드합니다.
이제 남은 것은 우리의 창조물을 시험하는 것입니다. F5 키를 누르고, 시작할 큐브를 선택하고, 열, 행, 측정값 및 필터를 끌어다 놓고, PivotGrid🙂를 사용하여 재생합니다.
이 기사가 유용하고 즐겁게 읽었기를 바랍니다. 질문이 있거나 의견을 남기고 싶다면 부담 없이 질문하거나 피드백을 주세요. PivotGrid 경험에 행운을 빌며 즐거운 하루 보내세요!