SSRS를 활용한 보고서 만들기

51
SSRS를 활용한 보고서 만들기 - 매일 아침 보고서를 자동으로 발송하자 강성욱 2015.01.22

Transcript of SSRS를 활용한 보고서 만들기

Page 1: SSRS를 활용한 보고서 만들기

SSRS를활용한보고서만들기-매일아침보고서를자동으로발송하자

강성욱2015.01.22

Page 2: SSRS를 활용한 보고서 만들기

Mr.DBA와 함께하는 SQL Server Storyhttp://sqlmvp.kr

https://www.facebook.com/sqlmvp

[email protected]

Microsoft SQL Server MVP

NEXON & NDOORS DBA

Page 3: SSRS를 활용한 보고서 만들기

1. SSRS 소개

2. SSRS 설정

3. 보고서 생성 / 도구 상자 살펴보기

4. 보고서 배포 (배포시 주의점)

5. 보고서 구독 (이메일, 파일 공유)

6. Tip

AGENDA

Page 4: SSRS를 활용한 보고서 만들기

SSRS?(SQL Server Reporting Services)

Page 5: SSRS를 활용한 보고서 만들기

SSRS (SQL Server Reporting Services) 소개

• 표와 차트 등을 표현한 보고서 운영 서비스

• 다양한 데이터 원본을 제공하는 서버 기반의 플랫폼

• Reporting Services 도구는 Microsoft Visual Studio 환경에서 동작

• SQL Server 도구 및 구성요소와 통합

Page 6: SSRS를 활용한 보고서 만들기

• 강력한 제작 도구

SSDT(SQL Server Data Tool)

Report Builder

• 웹 브라우저를 사용한 서비스

플랫폼에종속적이지않음

• 다양한 구독 방법

이메일

파일공유

• 캐시 기능 지원

장시간소요되는쿼리경우캐시이용

스냅샷생성으로빠른응답성

• 권한에 따른 보고서 열람 제어

부서나직급에따른보고서열람제한가능

• 외부 변수를 입력 받아 다양한 조회 가능

조건값을입력받아원하는기간조회가능

SSRS (SQL Server Reporting Services) 장점

Page 7: SSRS를 활용한 보고서 만들기

SSRS Sample

출처 : http://lh6.ggpht.com/-gSUzupEwfMA/Uaey_aeN_mI/AAAAAAAAFuM/4ad8gRALhm0/image_thumb%25255B11%25255D.png?imgmax=800

Page 8: SSRS를 활용한 보고서 만들기

SSRS Sample

출처 : http://i.ytimg.com/vi/ol5unujsDqQ/maxresdefault.jpg

Page 9: SSRS를 활용한 보고서 만들기

SSRS Sample

출처 : http://dashflows.com/ww2/wp-content/uploads/2014/11/reporting-services-dashboard.jpg

Page 10: SSRS를 활용한 보고서 만들기

SSRS Sample

출처 : http://alt2cdn.blob.core.windows.net/dist/s/bca0241d-10a9-df11-b297-0022190f5762_1_full.jpg

Page 11: SSRS를 활용한 보고서 만들기

SSRS 설치

Page 12: SSRS를 활용한 보고서 만들기

• Reporting Services

• SQL Server Data Tools

설치 기능 선택

Page 13: SSRS를 활용한 보고서 만들기

• SQL Server 2008 부터 IIS 서비스 자체 지원 (IIS 설치 불필요)

• 보고서 URL 로 브라우저를 통해서 접속이 되어야 정상

보고서 웹 서비스 설정 (웹 서비스 사용 URL 설정)

Page 14: SSRS를 활용한 보고서 만들기

• Report 데이터베이스가 없는경우 새로 설치 가능

• 데이터베이스 이름은 꼭 ReportServer가 아니어도 가능

Report Database 설정

Page 15: SSRS를 활용한 보고서 만들기

• 가상 디렉토리 이름은 사용자 지정 가능

• URL 주소로 브라우저 접속이 가능해야 정상

보고서 관리자 설정

Page 16: SSRS를 활용한 보고서 만들기

• 가능한 관리자 권한으로 SSDT를 실행 한다 (배포시 권한없으면 에러남)

• 보고서 프로젝트를 생성한다

SSDT 실행

Page 17: SSRS를 활용한 보고서 만들기

• 2인 이상 작업 할 때 반드시 URL을 동일하게 설정 할 수 있도록 한다.

보고서를 배포할 URL 설정

Page 18: SSRS를 활용한 보고서 만들기

데이터 원본

• 보고서에서 필요한 데이터를 저장하고 있는 데이터베이스의 연결 정보 지정

• 데이터 원본이 저장되는 위치에 따라 포함된 데이터 원본과 공유 데이터 원본으로 구분 포함된데이터원본은보고서에연결된정보를저장

공유데이터원본은공유된장소에연결정보를저장하여여러보고서에서공유하여사용(권장)

데이터 원본, 데이터 집합

데이터 집합

• 쿼리나 저장 프로시저를 지정하여 보고서에 필요한 데이터를 포함하는 개체

• 포함된 데이터 집합과 공유 데이터 집합으로 사용 가능 대부분보고서마다필요한쿼리가다르므로포함된데이터집합을사용함

Page 19: SSRS를 활용한 보고서 만들기

공유데이터 원본 -> 마우스 오른쪽 클릭 -> 새 데이터 원본 추가

• 다양한 데이터 연결 지원

• 다수의 데이터 원본 생성 가능

공유 데이터 원본 설정

Page 20: SSRS를 활용한 보고서 만들기

보고서 만들기

Page 21: SSRS를 활용한 보고서 만들기

보고서 -> 마우스 오른쪽 클릭 -> 새 항목

보고서 생성

Page 22: SSRS를 활용한 보고서 만들기

• 포함된 연결 : 현재 보고서에서만 사용하는 데이터 원본

• 공유 데이터 원본 참조 사용 : 프로젝트 차원에서 생성한 데이터 원본을 공유하여 사용

보고서 데이터 원본 생성

Page 23: SSRS를 활용한 보고서 만들기

• 도구 상자에서 디자인 페이지로 필요한 도구를 드래그 앤 드롭

SSRS 도구

Page 24: SSRS를 활용한 보고서 만들기

테이블

데이터베이스의 테이블처럼 열과 행으로이루어진 리스트 형태로 표현

행렬

열과 행의 포함하는 집계 데이터를 리스트형태로 표현

테이블 / 행렬

Page 25: SSRS를 활용한 보고서 만들기

• 표현할 데이터를 선택 또는 데이터 집합에서 끌어다 놓는다.

• 행과 열은 삽입 삭제가 가능하다.

• 행 그룹화 기능이 제공되어 동일한 행의 경우 하나의 단일 행으로 표현 할 수 있다.

테이블 / 행렬

Page 26: SSRS를 활용한 보고서 만들기

• 데이터를 시각화 형태로 표현

• SSRS에서는 58개의 차트를 지원한다.

차트

Page 27: SSRS를 활용한 보고서 만들기

• 데이터 특성에 따라 다양한 차트를 이용한다.

차트

Page 28: SSRS를 활용한 보고서 만들기

계기

• 하나의 값으로 상태를 표시하기 위해 사용

• 단독으로 사용하거나 표에 삽입하여 사용 가능

표시기

• 표시기와 비슷하나 상태 값의 구간을 나누어 표시

계기 / 표시기

Page 29: SSRS를 활용한 보고서 만들기

• 계기에는 포인터를 추가함으로써 여러 상태의 값을 한번에 표현 가능

계기 / 표시기

Page 30: SSRS를 활용한 보고서 만들기

• 현재 보고서에서 다른 보고서를 포함하여 나타낼 때 사용

• 보고서를 모듈화 해서 디자인하면 다른 페이지에서 재사용이 가능하다.

하위보고서

Page 31: SSRS를 활용한 보고서 만들기

• 다른 보고서를 참고하여 사용할 때 유용하다.

하위보고서

Page 32: SSRS를 활용한 보고서 만들기

지도에 데이터를 엮어 표시할 수 있는 시각화 도구

• 현재는 미국 지도만 기본으로 제공

• 지도에 표시하기 위해서는 4가지 정보가 필요 공간데이터 : 각지역의위치정보를포함하고있는좌표집합

공간데이터원본 : 공간데이터를가져올위치

분석데이터 : 지도에표시할데이터

일치필드 : 분석데이터와공간데이터를매핑하는정보

• 타지역 지도 다운로드 (한국 없음) http://mapgallery.codeplex.com/releases

지도

Page 33: SSRS를 활용한 보고서 만들기

보고서 배포

Page 34: SSRS를 활용한 보고서 만들기

• 배포할 보고서에서 마우스 오른쪽을 클릭하여 [배포]를 실행 한다.

• 배포 권한이 부족할 시 에러가 발생 할 수 있다. SSDT를 관리자 권한으로 실행한다.

보고서 배포하기

Page 35: SSRS를 활용한 보고서 만들기

• 배포 할 때 데이터 원본과 소스는 기본적으로 Overwrite 되지 않는다.

• 속성을 True로 설정하면 기존 데이터 원본을 덮어쓰게 된다.

데이터 원본 / 집합 배포

Page 36: SSRS를 활용한 보고서 만들기

SSRS 구독

Page 37: SSRS를 활용한 보고서 만들기

• 보고서를 이메일로 발송할 수 있다

• SMTP 서버를 사용하며 보내는 사람의 이메일 주소와 SMTP 서버 주소로 가능

• SMTP 서버가 없을 경우 윈도우에서 제공하는 SMTP서버를 설치하여 로컬 서버로 사용 가능

SSRS 전자 메일 설정

Page 38: SSRS를 활용한 보고서 만들기

구독(Subscription)은 자동으로 보고서를 배달 받을 수 있는 요청이다.

• 보고서 사이트에 접속하지 않아도 정해진 시간에 이메일로 보고서 내용을 받아 볼 수 있다

• SQL Server Agent가 활성화 되어 있어야 한다.

보고서 구독 - 이메일

Page 39: SSRS를 활용한 보고서 만들기

매일 아침 보고서 발송

보고서 구독 - 이메일

Page 40: SSRS를 활용한 보고서 만들기

파일 경로는 반드시 UNC 경로를 사용한다.

보고서 구독 – 파일 공유

Page 41: SSRS를 활용한 보고서 만들기

C:\Program Files\Microsoft SQL Server\MSRS11.MSSQLSERVER\Reporting Services\ReportServer

SSRS rsreportserver 수정 – JPEG 형식 추가

rsreportserver.config

Page 42: SSRS를 활용한 보고서 만들기

<Render>

==============

<Extension Name="IMAGE (JPEG)" Type="Microsoft.ReportingServices.Rendering.ImageRenderer.ImageRenderer,Microsoft.ReportingServices.ImageRendering">

<OverrideNames>

<Name Language="en-US"> Image (JPEG)</Name>

</OverrideNames>

<Configuration>

<DeviceInfo>

<OutputFormat> JPEG</OutputFormat>

</DeviceInfo>

</Configuration>

</Extension>

</Render>

SSRS rsreportserver 수정 – JPEG 형식 추가

*주의*SSRS 서비스가 정상적으로 실행 되지않을 수 있다.

Page 43: SSRS를 활용한 보고서 만들기

매일 아침 SMS와 함께 그림파일로 요약 보고서 발송

MMS를 활용해서 보고서 공유

Page 44: SSRS를 활용한 보고서 만들기

SSRS Tip

Page 45: SSRS를 활용한 보고서 만들기

예약된 구독 정보는 Job Agent에 등록된다.

• http://sqlmvp.kr/220098728796

리포트 재실행

SELECTb.name AS JobName, e.name, e.path, d.description, a.SubscriptionID, laststatus, eventtype, LastRunTime, date_created, date_modifiedFROM ReportServer.dbo.ReportSchedule a

JOIN msdb.dbo.sysjobs b ON cast(a.ScheduleID as varchar(255)) =

b.nameJOIN ReportServer.dbo.ReportSchedule c

ON b.name = CAST(c.ScheduleID AS VARCHAR(255))

JOIN (select eventtype,laststatus,LastRunTime,d.SubscriptionID,d.description, cast(d.report_oid as varchar(255)) report_oid from ReportServer.dbo.Subscriptions d ) d

on c.SubscriptionID = d.SubscriptionIDJOIN (select e.name, e.path, cast(e.itemid as varchar(255))

itemid from ReportServer.dbo.Catalog e ) e on itemid = report_oid

Page 46: SSRS를 활용한 보고서 만들기

• 사용자가 지정한 시간에 따른 페이지 리프레시 기능 0 = 리프레시안함

0 >= 해당초간격으로리프레시

• <AutoRefresh>10</AutoRefresh> <- 10초 간격으로 리프레시

실시간 리포트 만들기

Page 47: SSRS를 활용한 보고서 만들기

• 성능과 밀접한 관련 있음

• 쿼리를 실행하는데 오랜 시간이 걸리면 보고서 스냅숏을 사용한다

보고서 관리 – 처리 옵션

항상 최신 데이터로 이 보고서 실행 : 보고서를열람할 때마다 데이터 원본에 접근하여 보고서생성

보고서 스냅숏에서 이 보고서 렌더링 : 정해진 시간에 미리 만들어 놓고 데이터 원본에 접근하지않아도 열람 가능

Page 48: SSRS를 활용한 보고서 만들기

• 역할 기반의 보안 모델 사용

• 역할을 만들고 이 역할에 사용자를 매핑하는 방식

• 역할은 항목 수준, 시스템 수준으로 구분 항목수준 : 보고서서버에저장된하나의개체에대한권한설정

시스템수준 : 사이트설정보기와같은전체적으로적용되는규칙

보고서 관리 - 보안

Page 49: SSRS를 활용한 보고서 만들기

• 성능모니터 ReportServer:Service

ReportServerSharePointService

SSRS 성능 모니터

• Active Connections : 활성 연결의 수

• Errors Total : HTTP 요청오류 수

• Memory Pressure State : 메모리 상태(1~5, 높을 수록 나쁨)

• Requests Executing : 현재 실행 중인 요청 수

• Requests Total : 보고서 서비스 시작 후 받은 총 요청 수

• Requests Rejected : 서버 리소스가 부족하여 실행되지 않은

총 요청 수

• Requests Disconnected / Requests Not Authorized : 통신 오

류 및 401 에러로 실패한 요청 수

• Tasks Queued : Tasks Queued는 스레드를 사용할 수 있을 때

까지 대기 중인 태스크 수

• Bytes Received Total / Bytes Sent Total : 송수신된 바이트 수

Page 50: SSRS를 활용한 보고서 만들기
Page 51: SSRS를 활용한 보고서 만들기

What?

감사합니다