stream

스트림

스트림은 일련의 발생 사실을 나타내는 컬렉션입니다. 분할되고 변경 불가능하고 추가만 가능합니다.

이벤트의 집합으로 생각하면 됩니다.

 

예를 들어, 스트림의 행은 "Alice가 Bob에게 $100를 보냈습니다", "Charlie가 Bob에게 $50를 보냈습니다"와 같은 일련의 금융 거래를 모델링할 수 있습니다.

 

이벤트가 스트림에 입력되면 절대 변경할 수 없습니다. 스트림 끝에 새 행을 추가할 수 있지만 기존 행은 업데이트하거나 삭제할 수 없습니다.

 

각 행은 특정 파티션에 저장됩니다. 모든 행에는 암시적이든 명시적이든 해당 ID를 가르키는 키가 있습니다. 

동일한 키를 가진 모든 행은 동일한 파티션에 있습니다.

 

'ksqlDB' 카테고리의 다른 글

ksql - 쿼리  (0) 2022.01.13
ksql - 테이블  (0) 2022.01.13
ksql - Materialized Views  (0) 2022.01.12
ksqlDB - stream vs table  (0) 2022.01.12
ksqlDB - Stream Processing  (0) 2022.01.12

이벤트란?

ksqlDB는 스트림 처리 애플리케이션을 위해 만들어진 데이터베이스입니다. 스트림 처리의 주요 초점은 이벤트의 무제한 스트림에 대한 계산을 모델링하는 것입니다.

발생하고 기록된 모든 것이 이벤트입니다. 품목 판매 또는 송장 제출과 같이 비즈니스에서 발생하는 일이 될 수 있습니다. 또는 요청이 수신될 때 웹 서버에서 내보내는 로그일 수 있습니다. 특정 시점에서 발생하는 모든 것이 이벤트입니다.

이벤트는 스트림 처리에 기본적이기 때문에 ksqlDB의 핵심 데이터 단위입니다. ksqlDB의 모든 기능은 이벤트를 사용하여 문제를 쉽게 해결할 수 있도록 하는 데 중점을 두고 있습니다. 개별 이벤트에 대해 생각하기는 쉽지만 관련 이벤트를 함께 저장하는 방법을 알아내는 것은 조금 더 어렵습니다. Apache Kafka® 위에 ksqlDB가 구축됩니다.

Kafka는 이벤트 작업을 위한 분산 스트리밍 플랫폼입니다. 수평으로 확장 가능하고 내결함성이 있으며 매우 빠릅니다. 직접 작업하는 것은 낮은 수준일 수 있지만 개별 이벤트와 저장된 이벤트를 모두 모델링하기 위한 강력하고 독단적인 접근 방식이 있습니다.

 

"바퀴를 다시 발명하지 마라 - Don't reinvent the wheel"

 

ksqlDB는 Kafka의 레코드 개념과 매우 유사한 키/값 모델을 사용하여 이벤트를 나타냅니다. 키는 이벤트에 대한  ID를 나타냅니다. 값은 발생한 이벤트에 대한 정보를 나타냅니다. 키와 값의 이러한 조합을 이용하면 저장된 이벤트를 모델링할 수 있습니다. 동일한 키를 가진 여러 이벤트는 값에 관계없이 동일한 ID를 나타내기 때문입니다.

 

ksqlDB의 이벤트는 키와 값보다 더 많은 정보를 전달합니다. Kafka와 유사하게 이벤트가 발생한 시간도 설명합니다.

ksqlDB는 하위 수준의 스트림 프로세서로 작업하는 추상화를 높이는 것을 목표로 합니다. 일반적으로 이벤트는 마치 관계형 데이터베이스의 행인 것처럼 "행"이라고 합니다. 각 행은 일련의 열로 구성됩니다. 열은 이벤트의 키 또는 값에서 데이터를 읽습니다.

 

ksqlDB은 몇 개의 의사 컬럼을 지원합니다.

  • ROWTIME : 이벤트의 시간을 나타냅니다.
  • ROWPARTITION및 : 소스 레코드의 파티션을 나타냅니다.
  • ROWOFFSET : 소스 레코드의오프셋을 나타냅니다.

windowed sources 에는  WINDOWSTART및 WINDOWEND 시스템 열이 있습니다.

'ksqlDB' 카테고리의 다른 글

ksql - Materialized Views  (0) 2022.01.12
ksqlDB - stream vs table  (0) 2022.01.12
ksqlDB - Stream Processing  (0) 2022.01.12
도커로 ksqlDB 설치하기  (0) 2022.01.11
ksqlDB  (0) 2022.01.11

+ Recent posts