다음을 통해 공유


구독 및 배달(Reporting Services)

Reporting Services 구독은 특정 시간 또는 이벤트에 대한 응답으로 보고서를 배달하는 구성입니다. 사용자가 지정한 파일 형식이기도 합니다. 예를 들어 수요일마다 MonthlySales.rdl 보고서를 Microsoft Word 문서로 파일 공유에 저장합니다. 구독을 사용하면 특정 보고서 매개 변수 값 집합을 사용하여 일정을 예약한 다음 보고서 배달을 자동화할 수 있습니다.

단일 보고서에 대해 여러 구독을 만들어 여러 구독 옵션을 적용할 수 있습니다. 예를 들어 다른 매개 변수 값을 지정하여 세 가지 버전의 보고서를 생성할 수 있습니다. 이러한 보고서로, 서부 지역 영업 보고서, 동부 지역 영업 보고서 및 모든 영업 보고서가 있습니다.

예제 SSRS 구독 흐름의 다이어그램.

구독은 SQL Server의 일부 버전에서 사용할 수 없습니다. SQL Server에서 지원하는 기능 목록은 SQL Server 2022의 버전과 지원하는 기능을 참조하세요.

항목 내용

이 섹션의 주제:

구독 및 배달 시나리오

각 구독에 대해 선택한 배달 확장 프로그램에 따라 구성할 수 있는 배달 옵션이 결정됩니다. 배달 확장 프로그램은 여러 방식의 배포를 지원하는 모듈입니다. Reporting Services에는 여러 배달 확장 프로그램이 포함되며 배달 확장 프로그램은 타사 벤더에서 제공할 수 있습니다.

개발자인 경우 다른 시나리오를 지원하기 위해 사용자 지정 배달 확장 프로그램을 만들 수 있습니다. 자세한 내용은 배달 확장 프로그램 구현을 참조하세요.

다음 표에서는 일반적인 Reporting Services 구독 시나리오에 대해 설명합니다.

시나리오 설명
이메일 보고서 개별 사용자 및 그룹에 대한 이메일 보고서. 구독을 만들고 그룹 별칭 또는 이메일 별칭을 지정하여 배포하려는 보고서를 받습니다. Reporting Services가 런타임에 구독 데이터를 결정하게 할 수 있습니다. 구성원의 목록이 변경된 그룹에 동일한 보고서를 보내려는 경우 쿼리를 사용하여 런타임에 구독 목록을 파생시킬 수 있습니다.
오프라인으로 보고서 보기 사용자는 구독 출력에 대해 다음 형식 중 하나를 선택할 수 있습니다.

- 보고서 데이터를 가진 XML 파일
- CSV(쉼표로 분리)
- PDF
- MHTML(웹 보관 파일)
- Microsoft Excel
- TIFF 파일
- Microsoft Word

보관할 보고서는 심야 백업 일정을 지정한 공유 폴더로 직접 보낼 수 있습니다. 브라우저에서 로드하는 데 시간이 오래 걸리는 대용량 보고서는 데스크톱 애플리케이션에서 볼 수 있는 형식으로 공유 폴더로 보낼 수 있습니다.
캐시 미리 로드 매개 변수가 있는 보고서의 여러 인스턴스 또는 보고서를 보는 보고서 사용자가 많은 경우 캐시에 보고서를 미리 로드할 수 있습니다. 미리 로드하면 보고서를 표시하는 데 필요한 처리 시간이 줄어듭니다.
데이터 기반 보고서 데이터 기반 구독을 사용하여 런타임에 보고서 출력, 배달 옵션 및 보고서 매개 변수 설정을 사용자 지정합니다. 구독에서는 쿼리를 사용하여 런타임에 데이터 원본의 입력된 값을 가져옵니다. 데이터 기반 구독을 사용하여 구독이 처리될 때 결정되는 구독자 목록에 보고서를 보내는 메일 병합 작업을 수행할 수 있습니다.

표준 및 데이터 기반 구독

Reporting Services는 표준데이터 기반과 같은 두 가지 종류의 구독을 지원합니다. 개별 사용자는 표준 구독을 만들고 관리합니다. 표준 구독은 구독 처리 중에 변경할 수 없는 정적 값으로 구성됩니다. 각 표준 구독에는 보고서 프레젠테이션 옵션, 배달 옵션 및 보고서 매개 변수로 구성된 정확히 하나의 집합이 있습니다.

데이터 기반 구독은 수신자, 보고서 매개 변수 또는 애플리케이션 형식을 지정하는 데 사용되는 값을 제공하는 외부 데이터 원본을 쿼리하여 런타임에 구독 정보를 가져옵니다. 수신자 목록이 크거나 수신자마다 보고서 출력을 변경하려는 경우 데이터 기반 구독을 사용할 수 있습니다. 데이터 기반 구독을 사용하려면 쿼리 작성에 대한 전문 지식을 갖추고 매개 변수 사용 방법을 이해해야 합니다. 보고서 서버 관리자가 일반적으로 이러한 구독을 만들고 유지 관리합니다. 자세한 내용은 다음 문서를 참조하세요.

구독 요구 사항

보고서에 대한 구독을 만들려면 먼저 다음 필수 조건을 충족해야 합니다.

요구 사항 설명
사용 권한 보고서에 대한 액세스가 있어야 합니다. 보고서를 구독하려면 먼저 보고서를 볼 수 있는 권한이 있어야 합니다.

기본 모드 보고서 서버의 경우 다음과 같은 역할 할당은 구독에 영향을 줍니다.

- “개별 구독 관리” 태스크를 사용하면 특정 보고서에 대한 구독을 생성, 수정 및 삭제할 수 있습니다. 미리 정의된 역할에서 이 작업은 브라우저 및 보고서 작성기 역할의 일부입니다. 이 작업을 포함하는 역할 할당을 통해 사용자가 만든 구독만 관리할 수 있습니다.
- “모든 구독 관리” 태스크를 사용하면 모든 구독을 액세스 및 수정할 수 있습니다. 이 작업은 데이터 기반 구독을 만드는 데 필요합니다. 미리 정의된 역할에서 내용 관리자 역할에만 이 태스크가 포함됩니다.
저장된 자격 증명 구독을 만들려면 보고서는 저장된 자격 증명을 사용하거나 자격 증명을 사용하지 않고 런타임에 데이터를 검색해야 합니다. 현재 사용자의 가장 또는 위임된 자격 증명을 사용하여 외부 데이터 원본에 연결하도록 구성된 보고서는 구독할 수 없습니다. 저장된 자격 증명은 Windows 계정 또는 데이터베이스 사용자 계정일 수 있습니다. 자세한 내용은 보고서 데이터 원본에 대한 자격 증명 및 연결 정보 지정을 참조하세요.

보고서를 보고 개별 구독을 만들 수 있는 권한이 있어야 합니다. 보고서 서버에서 예약된 이벤트 및 보고서 배달을 활성화해야 합니다. 자세한 내용은 기본 모드 보고서 서버 구독 만들기 및 관리를 참조하세요.
보고서의 사용자 종속 값 표준 구독의 경우에만 필터에 사용자 계정 정보를 통합하거나 보고서에 표시되는 텍스트로 통합하는 보고서에 대한 구독을 만들 수 있습니다. 보고서에서 사용자 계정 이름은 현재 사용자로 확인되는 User!UserID 식을 통해 지정됩니다. 구독을 만들 때 구독을 만드는 사용자는 현재 사용자로 간주됩니다.
모델 항목 보안 없음 모델에 모델 항목 보안 설정이 포함된 경우 모델을 데이터 원본으로 사용하는 보고서 작성기 보고서를 구독할 수 없습니다. 모델 항목 보안을 사용하는 보고서만 이 제한에 포함됩니다.
매개 변수 값 보고서에서 매개 변수를 사용하는 경우 보고서 자체 또는 정의된 구독에 매개 변수 값을 지정해야 합니다. 보고서에서 기본값을 정의하는 경우 기본값을 사용하도록 매개 변수 값을 설정할 수 있습니다.

배달 확장 프로그램

구독은 보고서 서버에서 처리되며, 서버에 배포된 배달 확장 프로그램을 사용하여 배포됩니다. 기본값으로 공유 폴더 또는 이메일 주소로 보고서를 전송하는 구독을 만들 수 있습니다. 보고서 서버가 SharePoint 통합 모드로 구성되어 있는 경우 보고서를 SharePoint 라이브러리로 보낼 수도 있습니다.

구독을 만들 때 사용자는 사용할 수 있는 배달 확장 프로그램을 선택하여 보고서 배달 방법을 결정할 수 있습니다. Reporting Services는 다음 배달 확장 프로그램을 포함합니다.

배달 확장 프로그램 설명
Windows 파일 공유 네트워크에서 액세스할 수 있는 공유 폴더에 보고서를 정적 애플리케이션 파일로 배달합니다.
이메일 알림 또는 보고서를 이메일 첨부 파일 또는 URL 링크로 배달합니다.
SharePoint 라이브러리 보고서를 SharePoint 사이트에서 액세스할 수 있는 SharePoint 라이브러리에 정적 애플리케이션 파일로 배달합니다. 사이트는 SharePoint 통합 모드에서 실행되는 보고서 서버와 통합되어야 합니다.
Null null 배달 공급자는 즉시 볼 수 있는 매개 변수가 있는 보고서를 포함하는 캐시를 미리 로드하는 데 사용되는 고도로 특수화된 배달 확장 프로그램입니다. 이 방법은 개별 구독의 사용자에 대해 사용할 수 없습니다. null 배달은 데이터 기반 구독의 관리자가 캐시를 미리 로드하여 보고서 서버 성능을 향상시키는 데 사용됩니다.

참고 항목

보고서 배달은 Reporting Services 아키텍처의 확장 가능한 부분입니다. 타사 공급업체는 보고서를 다른 위치나 디바이스로 라우팅하는 사용자 지정 배달 확장 프로그램을 만들 수 있습니다. 사용자 지정 배달 확장 프로그램에 대한 자세한 내용은 배달 확장 프로그램 구현을 참조하세요.

구독 요소

구독 정의는 다음과 같은 요소로 구성됩니다.

  • 무인으로 실행할 수 있는 보고서(즉, 저장된 자격 증명을 사용하거나 자격 증명을 사용하지 않는 보고서)에 대한 포인터.

  • 배달 방법(예: 전자 메일) 및 배달 모드 설정(예: 전자 메일 주소)

  • 보고서를 특정 형식으로 표시하는 렌더링 확장 프로그램.

  • 이벤트로 표현되는 구독을 처리하기 위한 조건.

    일반적으로 보고서 실행 조건은 시간을 기반으로 합니다. 예를 들어 UTC 기준 화요일 오후 3시마다 특정 보고서를 실행할 수 있습니다. 그러나 보고서가 스냅샷으로 실행되도록 구성된 경우 스냅샷을 새로 고칠 때마다 구독이 실행되도록 지정할 수 있습니다.

  • 보고서를 실행할 때 사용되는 매개 변수.

    매개 변수는 선택 사항이며 매개 변수 값을 허용하는 보고서에서만 지정됩니다. 구독은 일반적으로 사용자가 소유하므로 지정된 매개 변수 값은 구독마다 다릅니다. 예를 들어 여러 부서의 영업 관리자는 해당 부서에 대한 데이터를 반환하는 매개 변수를 사용합니다. 모든 매개 변수에는 명시적으로 정의된 값이나 유효한 기본값이 있어야 합니다.

구독 정보는 보고서 서버 데이터베이스에서 개별 보고서와 함께 저장됩니다. 구독이 연결된 보고서와 별도로 해당 구독을 관리할 수 없습니다. 설명, 기타 사용자 지정 텍스트 또는 기타 요소를 포함하도록 구독을 확장할 수 없습니다. 구독은 이전에 나열된 항목만 포함할 수 있습니다.

구독 처리 방법

Reporting Services에는 보고서의 일정을 예약하고 보고서를 사용자에게 배달하는 기능을 제공하는 일정 예약 및 배달 프로세서가 포함되어 있습니다. 보고서 서버는 지속적으로 모니터링하는 이벤트에 응답합니다. 구독에 대해 정의된 조건과 일치하는 이벤트가 발생하면 보고서 서버는 해당 구독을 읽고 보고서 처리 및 배달 방법을 결정합니다. 보고서 서버는 구독에 지정된 배달 확장 프로그램을 요청합니다. 배달 확장 프로그램이 실행되면 보고서 서버는 구독에서 배달 정보를 추출하고 처리를 위해 배달 확장 프로그램에 전달합니다.

배달 확장 프로그램은 보고서를 구독에 정의된 형식으로 렌더링한 다음 보고서 또는 알림을 지정된 대상에 배달합니다. 보고서를 배달할 수 없는 경우 항목이 보고서 서버 로그 파일에 기록됩니다. 재시도 작업을 지원하려면 첫 번째 시도가 실패할 경우 배달을 재시도하도록 보고서 서버를 구성할 수 있습니다.

표준 구독 처리

표준 구독은 보고서의 인스턴스 하나를 생성합니다. 보고서는 단일 공유 폴더 또는 구독에 지정된 전자 메일 주소에 배달됩니다. 보고서 레이아웃 및 데이터는 달라지지 않습니다. 보고서에서 매개 변수를 사용하는 경우 표준 구독은 보고서의 각 매개 변수에 대해 단일 값으로 처리됩니다.

데이터 기반 구독 처리

데이터 기반 구독은 여러 대상에 배달되는 많은 보고서 인스턴스를 만들 수 있습니다. 보고서 레이아웃은 달라지지 않지만 매개 변수 값이 구독자 결과 집합에서 전달되는 경우 보고서의 데이터는 달라질 수 있습니다. 보고서가 렌더링되는 방법 및 보고서가 이메일에 첨부되었는지 또는 연결되었는지에 영향을 주는 배달 옵션입니다. 이러한 옵션은 행 집합에서 값이 전달될 때 구독자마다 다를 수 있습니다.

데이터 기반 구독은 많은 수의 배달을 생성할 수 있습니다. 보고서 서버는 구독 쿼리에서 반환되는 행 집합의 각 행에 대한 배달을 만듭니다.

보고서 배달 특성

표준 구독을 통해 배달되는 보고서는 일반적으로 정적 보고서로 렌더링됩니다. 이러한 보고서는 가장 최근의 보고서 실행 스냅샷을 기반으로 하거나 배달을 완료하기 위한 정적 보고서로 생성됩니다. 요청 시 실행되는 보고서에 대한 구독에서 링크 포함 옵션을 선택하면 하이퍼링크를 선택할 때 보고서 서버가 보고서를 실행합니다.

참고 항목

URL을 통해 배달되는 보고서는 보고서 서버에 연결된 상태로 유지되며 보는 중에 업데이트하거나 삭제할 수 있습니다. 구독에 대해 선택한 배달 옵션에 따라 보고서가 URL로 배달될지, 전자 메일 메시지의 본문에 포함될지, 첨부 파일로 보내질지 여부가 결정됩니다.

데이터 기반 구독을 통해 전달되는 보고서는 구독이 처리되는 동안 다시 생성될 수 있습니다. 보고서 서버는 데이터 기반 구독을 완료하기 위해 보고서 또는 해당 데이터 세트의 특정 인스턴스를 잠그지 않습니다. 구독에서 구독자마다 다른 매개 변수 값을 사용하는 경우 보고서 서버에서는 보고서를 다시 생성하여 필요한 결과를 만듭니다. 첫 번째 보고서 복사본을 만들고 배달한 후 기본 데이터를 업데이트할 수 있습니다. 보고서를 업데이트할 때 프로세스의 뒷부분에서 보고서를 받는 사용자는 다른 결과 집합을 기반으로 하는 데이터를 볼 수 있습니다. 스냅샷으로 실행되는 보고서를 사용하여 동일한 보고서 인스턴스가 모든 구독자에게 전달되도록 할 수 있습니다. 그러나 구독을 처리하는 동안 스냅샷에 대한 예약된 업데이트가 발생하는 경우에도 사용자는 보고서에서 다른 데이터를 가져올 수 있습니다.

구독 처리 트리거

보고서 서버는 일정에 지정된 시간 기반 이벤트 또는 스냅샷 업데이트 이벤트와 같이 두 가지 종류의 이벤트를 사용하여 구독 처리를 트리거합니다.

시간 기반 트리거는 보고서별 일정이나 공유 일정을 사용하여 구독 실행 시기를 지정합니다. 요청 시 보고서 및 캐시된 보고서의 경우 일정이 유일한 트리거 옵션입니다.

스냅샷 업데이트 이벤트는 보고서 스냅샷의 예약된 업데이트를 사용하여 구독을 트리거합니다. 보고서가 새 데이터로 업데이트될 때마다 트리거되는 구독을 정의할 수 있습니다. 구독은 보고서에 설정된 보고서 실행 속성에 따라 트리거됩니다.

구독의 프로그래밍 방식 제어

Reporting Services 개체 모델을 사용하면 프로그래밍 방식으로 구독 및 구독 처리를 감사하고 제어할 수 있습니다. 예제 및 시작 정보는 다음 문서를 참조하세요.