다음을 통해 공유


참조 데이터 JOIN(Azure Stream Analytics)

일반적인 시나리오에서는 이벤트 처리 엔진을 사용하여 대기 시간이 매우 짧은 스트리밍 데이터를 컴퓨팅합니다. 사용자는 대부분의 경우 시스템과 관련하여 더욱 적합한 결정을 내리기 위해 지속형 기록 데이터 또는 느린 변경 데이터 집합(참조 데이터)과 실시간 이벤트 스트림 간의 상관 관계를 설정해야 합니다. 예를 들어 IP 주소를 위치에 매핑하는 정적 데이터 집합에 이벤트 스트림을 조인할 수 있습니다. 시간 기준 바인딩이 필요하지 않은 스트림 분석에서는 이러한 JOIN만 지원됩니다. 참조 데이터를 사용하여 디바이스별 임계값을 가질 수도 있습니다.

예제

요금소 업체에 등록된 상용차는 검사를 위해 정차할 필요 없이 요금소 창구를 통과할 수 있습니다. 여기서는 상용차 등록 조회 테이블을 사용하여 등록 기간이 만료된 모든 상용차를 식별합니다.

SELECT I1.EntryTime, I1.LicensePlate, I1.TollId, R.RegistrationId  
FROM Input1 I1 TIMESTAMP BY EntryTime  
JOIN Registration R  
ON I1.LicensePlate = R.LicensePlate  
WHERE R.Expired = '1'

참조 데이터 JOIN의 특성

  • 참조 데이터 JOIN을 사용하려면 참조 데이터의 입력 원본을 정의해야 합니다.
  • 참조 데이터 JOIN은 JOIN 연산자의 오른쪽에 참조 데이터가 있는 내부 JOIN(기본값) 및 왼쪽 외부 JOIN에 대해 지원됩니다.
  • 데이터 형식은 조인 조건자(ON 절)의 평가에서 중요한 측면입니다. 서로 다른 데이터 형식(1.0"1")의 유사한 값이 일치하지 않을 수 있습니다. 키를 일반 형식으로 명시적으로 변환하는 것이 좋습니다.
  • 참조 데이터는 정적(한 번만 로드) 또는 동적(정기적으로 새로 고침)될 수 있습니다. 그러나 동적 경우에도 참조 데이터는 시간 진행을 수행하지 않으므로 왼쪽의 스트림은 출력을 생성하기 위해 새 이벤트를 가져와야 합니다. 자세한 내용은 Azure Stream Analytics에서 시간이 어떻게 진행되는지 참조하세요 .

성능 고려 사항

성능 저하를 방지하려면 간단한 키 같음()을 통해 참조 조인 조건자(ONON s.myKey = r.myKey 절)를 정의해야 합니다. 복잡한 식 또는 불평등을 사용하면 내부적으로 교차 조인과 필터(전체 검사 및 조회)가 발생하며 이는 전체 대기 시간에 심각하게 영향을 줄 수 있습니다.

가능하면 이러한 복잡한 식을 쿼리 단계의 절로 WHERE 이동하거나 동일한 참조 데이터를 각각 더 간단한 조건으로 여러 번 조인합니다.

참고 항목