주요 컨텐츠로 이동

Structured Streaming이란 무엇인가요?

Databricks 무료로 시작하기

Structured Streaming은 스트림 처리용 고차원 API의 일종으로, Spark 2.2에서는 바로 프로덕션에 적용할 수 있게 되었습니다. Structured Streaming을 사용하면 Spark의 구조적 API를 사용해 배치 모드로 수행하는 것과 같은 연산을 스트리밍 방식으로 실행할 수 있습니다. 이렇게 하면 레이턴시를 줄이고 증분식으로 처리할 수 있게 됩니다. Structured Streaming의 가장 좋은 점은 코드를 사실상 전혀 변경하지 않고도 스트리밍 시스템에서 신속하게 값을 얻을 수 있다는 사실입니다. 또한 추론도 한결 쉬운데, 프로토타이핑의 한 가지 방안으로서 배치 작업을 작성한 다음 이를 스트리밍 작업으로 변환하면 되기 때문입니다. 이 모든 작업은 해당 데이터를 증분식으로 처리하여 수행합니다. Structured Streaming Processing Model

 

Structured Streaming 관련 FAQ

Structured Streaming은 기존 Spark Streaming과 어떻게 다른가요?
Structured Streaming은 DStream 대신 DataFrame과 Dataset API를 사용하여 데이터를 구조적으로 처리합니다. 이벤트 기반 처리, 자동 복구, 정확한 단일 실행(Exactly-once semantics)을 지원하며, 기존 Spark Streaming보다 더 단순하고 유지보수가 용이합니다.

Structured Streaming의 주요 장점은 무엇인가요?
배치와 스트리밍을 동일한 코드 구조로 실행할 수 있어 개발 효율이 높습니다. 또한 레이턴시가 낮고, 증분 처리 및 파이프라인 재사용이 용이하며, SQL, 머신러닝, 그래프 분석 등 Spark의 다른 라이브러리와 네이티브 통합이 가능합니다.

기존 배치 파이프라인을 Structured Streaming으로 전환하려면 어떻게 해야 하나요?
배치용 DataFrame API 코드에서 입력 소스를 스트리밍 소스로 변경하고, 출력 모드를 지정(writeStream)하면 됩니다. 대부분의 경우 코드 변경 없이 스트리밍 환경으로 전환이 가능하며, 구조적 API를 그대로 활용해 실시간 데이터 파이프라인을 구축할 수 있습니다.

추가 자료

용어집으로 돌아가기