스트림SQl
StreamSQ이 문서의 주제는 위키피디아의 일반적인 알림 가이드라인을 충족하지 못할 수 있습니다. – · · · · JSTOR (2018년 10월 (이메시지 및 ) |
StreamSQL은 실시간 데이터 스트림을 처리하는 기능으로 SQL을 확장하는 쿼리 언어입니다.SQL은 주로 관계(테이블이라고도 함)를 조작하기 위한 것으로, 한정된 튜플(행)의 가방입니다.StreamSQL에는 스트림을 조작하는 기능이 추가되어 있습니다.스트림을 조작하는 기능은 동시에 사용할 수 있는 모든 튜플의 무한 시퀀스입니다.스트림은 무한하므로 스트림 상에서의 동작은 단조로워야 합니다.스트림에 대한 쿼리는 일반적으로 "연속적"이며, 장시간 실행되며 증분 결과를 반환합니다.
더 스트림SQL 언어는 일반적으로 시장 데이터 분석, 네트워크 모니터링, 감시, 전자 사기 탐지 및 방지, 클릭스트림 분석 및 실시간 컴플라이언스(자금 세탁 방지, RegNMS, MiFID) 등의 애플리케이션에 대해 데이터 스트림 관리 시스템(DSMS) 컨텍스트에서 사용됩니다.
기타 스트리밍 및 연속적인 SQL 변형으로는 StreamSQL.io, Kafka KSQL, SQLStreamBuilder, WSO2 Stream Processor, SQLTreams, Samza 등이 있습니다.SQL 및 Storm SQL입니다.
기술적 세부사항
StreamSQL은 SQL 유형 시스템을 확장하여 테이블뿐만 아니라 스트림을 지원합니다.스트림을 조작하기 위해 몇 가지 새로운 조작이 도입되었습니다.
스트림에서 선택 - 표준SELECT스트림에 대해 명령어를 발행하여 함수를 계산하거나(타깃 리스트를 사용하여) 불필요한 튜플을 필터링할 수 있습니다(타깃 리스트를 사용하여).WHERE(조항).그 결과 새로운 스트림이 생성됩니다.
Stream-Relation Join - 스트림을 관계와 결합하여 새 스트림을 생성할 수 있습니다.스트림 상의 각 태플은 술어에 기초한 관계의 현재 값과 결합되어 0 이상의 태플을 생성한다.
결합 및 병합 - 두 개 이상의 스트림을 결합 또는 병합하여 결합할 수 있습니다.유니언은 엄격한 FIFO 순서로 튜플을 결합합니다.병합은 정렬 키에 따라 스트림을 결합하므로 보다 결정적입니다.
Windowing and Aggregation - 스트림을 Windowing으로 설정하여 한정된 튜플 세트를 만들 수 있습니다.예를 들어 크기가 5분인 창에는 5분 동안 모든 튜플이 포함됩니다.창 정의에서는 태플 필드 값에 따라 메시지를 복잡하게 선택할 수 있습니다.한정된 배치의 튜플이 생성되면 카운트, 평균, 최대 등의 분석을 적용할 수 있습니다.
Windowing and Joining - 한 쌍의 스트림을 창으로 만든 다음 결합할 수도 있습니다.결합 창 내의 튜플이 술어를 충족하면 결합되어 결과 튜플이 생성됩니다.
역사
StreamSQL은 복잡한 이벤트 처리와 밀접하게 관련된 이벤트 스트림 처리에 대한 학술적 연구로부터 파생되었습니다.마이클 스톤브레이커가 이끄는 프로젝트 Aurora의 교수와 학생 30명으로 구성된 팀은 2001년부터 2003년까지 공동으로 StreamSQL의 핵심 원리를 개발했습니다.
오로라 프로젝트는 보렐리스 프로젝트로 대체되었다.Borealis는 Aurora의 분산형 멀티프로세서 버전입니다.