Stream Analytics 쿼리 언어 참조

Azure Stream Analytics는 이벤트 스트림에 대해 변환과 계산을 수행 하기 위한 SQL 쿼리 언어를 제공 합니다.

스트림 분석 쿼리 언어, T-SQL 구문의 하위 집합

이 문서에서는 스트림 분석 쿼리 언어의 구문과 사용법 및 사용 시의 모범 사례에 대해 설명합니다. 이 문서에서 사용하는 모든 예제에서는 아래에서 설명하는 요금소 창구 시나리오를 사용합니다.

스트림 분석 쿼리 언어는 스트리밍 계산을 수행하기 위한 표준 T-SQL 구문의 하위 집합입니다.

요금소 창구 시나리오

요금소는 전 세계의 여러 고속도로, 교량, 터널 등에서 흔히 볼 수 있습니다. 각 요금소에는 여러 창구가 있으며, 각 창구에서는 수작업으로 요금을 징수할 수도 있고(차량을 멈추고 징수원에게 요금을 지불해야 함) 자동화 방식을 사용할 수도 있습니다(창구를 통과할 때 창구 위쪽에 설치된 센서가 차량의 바람막이에 부착된 RFID 카드를 스캔함). 이러한 요금소를 통과하는 차량 흐름을 흥미로운 작업을 수행할 수 있는 이벤트 스트림으로 쉽게 시각화할 수 있습니다.

도착 시간과 적용 시간 비교

Azure 스트림 분석과 같은 일시적인 시스템에서는 시간의 경과를 이해해야 합니다. 시스템을 통해 흐르는 모든 이벤트는 timestamp ()를 통해 액세스할 수 있는 타임 스탬프와 함께 제공 됩니다. 즉, 시스템의 모든 이벤트는 특정 시점을 나타냅니다. 이 타임스탬프는 사용자가 쿼리에서 지정할 수 있는 적용 시간일 수도 있고, 시스템이 도착 시간을 기준으로 하여 타임스탬프를 할당할 수도 있습니다. 도착 시간은 입력 원본에 따라 의미가 다릅니다. 이벤트 허브 Azure Service Bus 이벤트의 경우 도착 시간은 이벤트 허브에서 제공 하는 타임 스탬프입니다. Blob 저장소의 경우 blob의 마지막 수정 시간입니다. 타임스탬프는 데이터 캡처 또는 분석과 관련된 시점입니다. 사용자가 응용 프로그램 시간을 사용 하려는 경우 TIMESTAMP BY 키워드를 사용 하 여이 작업을 수행할 수 있습니다. 위의 시나리오에서 적용 시간은 차량이 요금소 창구로 진입하는 시간입니다. 들어오는 데이터 스트림에서 "타임스탬프"를 식별해야 하며, 캡처된 시간이 이벤트 발생을 확인하도록 해야 합니다. 예를 들어 금전 출납기 모니터링 시 지불 고객의 수를 계산하려면 이벤트 타임스탬프는 "청구 건 생성" 시간이 아닌 "결제 성공" 시간이어야 합니다.

TIMESTAMP BY

Azure 스트림 분석에서 모든 이벤트에는 올바르게 정의된 타임스탬프가 있습니다. 사용자가 응용 프로그램 시간을 사용 하려는 경우 TIMESTAMP BY 키워드를 사용 하 여 이동 창, 조인 등과 같은 임시 계산을 수행 하기 위해 들어오는 모든 이벤트의 타임 스탬프를 지정 하는 데 사용 해야 하는 페이로드의 열을 지정할 수 있습니다. 최적의 방법으로 도착 시간에 따라 타임 스탬프를 사용 하는 것이 좋습니다. Datetime 형식의 모든 열에서 TIMESTAMP를 사용할 수 있으며 모든 ISO 8601 형식이 지원 됩니다. System.object ()는 Select에만 사용할 수 있습니다.

아래에는 이벤트 적용 시간으로 EntryTime 열을 사용하는 TIMESTAMP BY 예제가 나와 있습니다.

  
SELECT TollId, EntryTime AS VehicleEntryTime, LicensePlate, State, Make, Model, VehicleType, VehicleWeight, Toll, Tag   
FROM TollTagEntry TIMESTAMP BY EntryTime  
  

필드 이름 대/소문자 구분

호환성 수준 1.0을 사용 하 여 만든 작업의 필드 이름은 Azure Stream Analytics 엔진에서 처리 될 때 소문자로 변경 됩니다 (대/소문자 구분 안 함). 대/소문자 구분 스키마를 지 원하는 입력 형식의 경우 (예: JSON) 필드 이름이 대/소문자를 구분 하지 않는 방식으로 비교 될 때 중복 된 필드가 있는 이벤트를 생성할 수 있습니다. 그러한 이벤트는 잘못된 이벤트로 간주되며, 처리 중에 삭제됩니다.

호환성 수준 1.1 이상을 사용 하 여 Stream Analytics 작업을 만들 때 필드 이름에 대 한 대/소문자 구분은 유지 됩니다. 자세한 내용은 호환성 수준 구성 항목을 참조 하세요.

단원 내용

스트림 분석 쿼리 언어 사용에 대한 지침은 다음 항목을 참조하세요.

참고 항목