새로운 기능(StreamInsight)

 

Microsoft StreamInsight에는 개발자 및 관리자를 위해 CEP(복합 이벤트 처리) 기능과 생산성을 개선하는 여러 가지 새로운 기능과 향상된 기능이 도입되었습니다.

이전 버전과의 호환성에 대한 자세한 내용은 이전 버전과의 호환성(StreamInsight)을 참조하십시오.

StreamInsight 2.1의 새로운 기능

StreamInsight 2.1은 버전 2.0의 중요 업데이트입니다. StreamInsight 2.0 및 이전 버전에 기록된 코드가 여전히 지원될 경우 2.1 업데이트는 새 기능을 제공함으로 사용자 의견을 다룹니다.

  • 새 개체 모델이 더 명확하고 일관성 있게 도입되었습니다.

  • 서버에 있는 데이터 원본과 싱크를 구축, 명명 및 관리할 수 있습니다.

  • StreamInsight, Reactive Framework(Rx) 또는 기타 LINQ 식을 포함하는 계산을 실행할 수 있으며 단일 단위로 관리할 수 있습니다.

  • 더 이상 복잡한 입력 및 출력 어댑터가 필요하지 않습니다. 대신 원본 및 싱크는 Observable/Observer 및 열거/열거자 모델을 사용하여 구현할 수 있습니다. 어댑터는 그대로 완벽하게 지원되지만 새 모델은 대부분의 데이터 스트리밍 시나리오를 처리하는 더욱 간단한 대체 항목을 제공합니다.

  • 이제 공유 계산으로 임시 데이터 스트림과 여러 프로세스 간의 검사점을 실행할 수 있습니다.

StreamInsight 2.0의 새로운 기능

StreamInsight 2.0에 대한 자세한 내용은 MSDN 라이브러리에서 Microsoft StreamInsight 2.0 설명서를 참조하십시오.

StreamInsight 2.0을 설치하려면 SQL Server 2012 라이선스와 .NET Framework 4.0이 필요합니다. 약간의 버그 픽스와 함께 다음과 같은 향상된 성능이 포함되어 있습니다.

성능 향상

이 버전에서는 StreamInsight 응용 프로그램의 성능을 떨어뜨리는 다음 문제가 수정되었습니다.

  • 조인 연산자에 공통 원본에서 생성되는 입력 스트림이 있는 경우 쿼리에 교착 상태가 발생할 수 있습니다.

  • 왼쪽 참조 스트림의 수명이 Left Anti Semi Join 연산자의 오른쪽 실시간 연속 스트림과 겹치면 StreamInsight 응용 프로그램에서 사용되는 메모리가 무한대로 커질 수 있습니다.

StreamInsight 1.2의 새로운 기능(2011년 6월)

StreamInsight 1.2에 대한 자세한 내용은 MSDN 라이브러리에서 Microsoft StreamInsight 1.2 설명서를 참조하십시오.

새로운 복구 기능

StreamInsight 1.2에서는 데이터 스트림 처리 중 발생한 시스템 오류에 대해 사용할 기본 제공 복구 기능을 도입했습니다. 이러한 기능은 StreamInsight Premium 버전에서만 사용할 수 있습니다.

이러한 새로운 복구 기능을 통해 업계 선두의 총 소유 비용으로 선택한 Windows 플랫폼에서 시스템 오류를 정확하게 파악하고 작동 중단 시간을 최소화하면서 중요한 응용 프로그램을 실행할 수 있습니다.

새로운 복구 기능에서는 다음과 같은 새 쿼리 상태도 도입했습니다.

  • 초기화하는 중. 이 상태는 일반적으로 다음 이벤트 중 하나가 발생한 후에 발생합니다.

    • 쿼리가 중지되었으며 사용자가 쿼리의 Start 메서드를 호출했습니다.

    • 복구 가능한 쿼리가 실행 중이었으며 서버에서 오류를 복구하고 있습니다. 쿼리 상태를 변경하려면 사용자가 Start 메서드를 호출해야 합니다.

  • 검사점 설정 중. 쿼리가 실행 중이며 검사점을 설정하는 중입니다.

새로운 개발자 기능

StreamInsight API에 대해 다음과 같은 기능이 향상되었습니다.

사용자 정의 스트림 연산자

이제 입력 스트림의 사용자 지정 처리에 사용자 정의 스트림 연산자를 제공할 수 있습니다. 창과 상호 작용할 수 있는 환경을 제공하는 사용자 정의 연산자 및 사용자 정의 집계와 달리 사용자 정의 스트림 연산자를 사용하면 스트림 내용과 직접 상호 작용하고, 결과를 증분식으로 계산 및 생성하고, 상태를 관리할 수 있습니다.

LINQ의 향상된 기능

  • 이벤트 페이로드, 어댑터 및 LINQ 쿼리에 중첩 유형을 사용할 수 있습니다.

  • LINQ "let" 절을 사용할 수 있습니다. 자세한 내용은 let 절(C# 참조)을 참조하십시오.

  • 하나의 쿼리에 여러 스트림을 조인할 수 있습니다. 더 이상 2개의 스트림만 조인하도록 제한되지 않습니다.

  • 조인 시 첫 번째 "from" 절만이 아닌 모든 "from" 절에서 확장 메서드 인라인을 호출할 수 있습니다.

  • 복합 조인 키에 대한 스트림을 조인할 수 있습니다. 예: where {x.a, x.b} equals {y.a, y.b}.

  • 익명 유형을 새로 만들지 않고 단일 필드를 프로젝션할 수 있습니다. 예: from x in xs select new { x.A } 대신 from x in xs select x.A입니다.

  • 하나의 식에 여러 집계를 사용할 수 있습니다. 예를 들면 select new {ratio = (double)win.Sum(e => e.good) / (double)win.Count()}입니다.

  • 새 익명 유형을 "group by" 절로 그룹화할 수 있습니다. 예를 들면 from x in xs group new { x.A, x.B } by new { x.C, x.D } into g입니다. 여기서 group new { x.A, x.B }는 새 기능을 나타냅니다. 이전에는 "group by" 절의 선택기가 들어오는 유형이었습니다. 예를 들면 from e in input group e by …입니다.

  • 이제 Take 절에 프로젝션을 포함할 수 있습니다. 예를 들면 … select new { myAvg = r.Value / 10, r.SourceId }).Take(2, …)입니다. 이전에는 Take 절의 선택기가 들어오는 유형이었습니다. 예를 들면 from win in input.window(…) from e in … select e).Take(…)입니다.

API의 향상된 기능

  • 메서드 이름이 의미하는 대로 동작하는 ShiftEventTime 메서드에 대한 새 오버로드가 있습니다. 즉, 새 오버로드는 이벤트 시간을 제공된 시간 범위만큼 이동합니다. 이 메서드의 원래 버전에서는 이벤트 시간을 이동하기 위해 현재 이벤트 시간과 시간 범위를 모두 지정해야 했습니다. 이제는 ShiftEventTime(e => e.StartTime + TimeSpan.FromMinutes(15)) 대신 ShiftEventTime(e => TimeSpan.FromMinutes(15))를 작성할 수 있습니다. 그러나 여전히 원래 버전의 메서드를 통해 날짜/시간 값을 제공하여 이벤트 시간을 특정 시간으로 설정할 수 있습니다. 원래 버전이 이전 버전과의 호환성을 위해 유지되었습니다.

  • 도약 창에 사용할 수 있는 새 출력 정책인 PointAlignToWindowEnd가 있습니다. 기존 정책인 ClipToWindowEnd는 집합 기반 연산의 수명에 해당하는 창 크기를 생성합니다. 새 정책은 창의 시작 시간이 창의 종료 시간인 시점 이벤트를 생성합니다. 이 새 출력 정책을 사용할 경우 시점마다 해당 시점의 가장 최신 집계 결과를 나타내는 유효한 결과가 하나 뿐이므로 결과를 다른 스트림과 결합하려는 경우에 유용합니다.

  • 이제 모든 창에는 스냅숏 창의 경우 ClipToWindowEnd, 도약 또는 연속 창 및 개수 창의 경우 PointAlignToWindowEnd인 기본 출력 정책이 있습니다.

새로운 관리 효율 및 도구 기능

이제 기존의 진단 인프라를 사용하여 성능 모니터 및 이벤트 뷰어를 통해 StreamInsight 프로세스 및 쿼리를 모니터링하고 문제 해결할 수 있습니다. 또한 진단 속성의 확장된 목록에 액세스할 수 있습니다.

성능 카운터

이제 성능 카운터를 사용하여 StreamInsight 서버 프로세스, 쿼리 및 입력 스트림에 대한 카운터를 볼 수 있습니다.

Windows 이벤트 로그에 대한 관리 로깅

이제 Windows 이벤트 뷰어를 사용하여 응용 프로그램 이벤트 로그의 StreamInsight 서버 프로세스, 어댑터, 쿼리 및 덤퍼와 관련된 관리 이벤트를 볼 수 있습니다.

추가 진단 속성

모니터링 및 문제 해결을 위해 몇 가지 새로운 진단 속성을 사용할 수 있습니다. 새로운 속성은 다음과 같습니다.

  • AdapterNumberOfRunningWorkers, AdapterNumberOfRunningWorkers 및 AdapterNumberOfSuspendedWorkers

  • AdapterFirstCtiTimestamp

  • OperatorNumberOfWorkers

  • OperatorGroupIdField

  • QueryInstanceGroupId

  • StreamNumberOfWorkers

  • StreamMinInputEventCountAcrossWorkers 및 StreamMaxInputEventCountAcrossWorkers

  • StreamMinMemoryIncludingEventsAcrossWorkers 및 StreamMaxMemoryIncludingEventsAcrossWorkers

또한 이전에 사용할 수 있었던 몇 가지 보기가 제거되었습니다. 이러한 보기에는 스케줄러와 관련된 보기가 모두 포함됩니다.

StreamInsight 1.1의 새로운 기능(2010년 10월)

StreamInsight 1.0 Refresh 1 이후에 다음과 같은 변경 및 추가 내용이 구현되었습니다. 이러한 내용은 StreamInsight 1.1(2010년 10월)에서 발표되었습니다.

  • IObservable 또는 IEnumerable 인터페이스를 구현하는 이벤트 원본 및 싱크에 대한 지원. 일반 입력 및 출력 어댑터 대신 입력 및 출력용의 새로운 이 프로그래밍 모델을 지원하는 새 클래스 및 멤버가 StreamInsight API에 추가되었습니다.

  • Adapter 클래스의 Stop 메서드. 이 메서드는 쿼리 중지 또는 중단의 결과로 중지하도록 어댑터에 알립니다.

  • 새 버전의 StreamInsight는 이전 버전과 함께 설치 가능.

StreamInsight 1.0 Refresh 1의 새로운 기능(2010년 6월)

StreamInsight 1.0 RTM 이후에 다음과 같은 변경 및 추가 내용이 구현되었습니다. 이러한 내용은 SQL Server 2008 R2 누적 업데이트 2와 동시에 StreamInsight 1.0 Refresh 1(2010년 6월)에서 발표되었습니다.

  • ClipEventDuration API. CepStream 클래스의 이 새 메서드를 사용하면 보조 스트림을 통해 기본 스트림에서 이벤트 기간이 잘리는 위치를 확인할 수 있습니다.

  • StreamInsight 응용 프로그램 개발에 Microsoft .NET Framework 4 지원

이러한 변경 사항에 대한 자세한 내용을 보거나 StreamInsight 1.0 Refresh 1을 다운로드하려면 기술 자료 문서 SQL Server 2008 R2용 누적 업데이트 패키지 2와 함께 출시된 StreamInsight 1.0 업데이트를 참조하십시오.

StreamInsight 1.0 RTM의 새로운 기능(2010년 4월)

다음과 같은 변경 및 추가 내용이 SQL Server 2008 R2와 동시에 StreamInsight 1.0(2010년 4월)에서 발표되었습니다.

디자인 및 개발

이제는 StreamInsight 쿼리를 응용 프로그램 빌딩 블록으로 사용할 수 있습니다. 쿼리는 현재 실행 중인 기존 쿼리를 기반으로 작성할 수 있습니다.

동기화된 입력 스트림 지원이 추가되었습니다.

StreamInsight에서 단일 이벤트의 최대 크기가 16K로 늘어났습니다. 시스템 필드 및 이벤트 메타데이터를 고려할 때 안전하며 적절한 제한은 14K입니다.

연산자

개수 창 지원이 추가되었습니다.

Left-Anti-Semi-Join 연산 지원이 추가되었습니다.

API

AdapterFactory 클래스는 AdvanceTimeSettings 인스턴스를 반환하는 새 인터페이스 정의인 IDeclareAdvanceTimePolicy를 가집니다. 이 정의는 어댑터 팩터리에서 고급 시간 설정을 지정하는 데 사용할 수 있는 메커니즘입니다.

관리

진단 보기

새로운 진단 보기를 사용하여 서버, 연산자, 스케줄러, 어댑터와 같은 구체화 수준으로 시스템을 모니터링할 수 있습니다.

샘플

예제는 StreamInsight 샘플에서 다운로드할 수 있습니다.