Apache Spark 구조적 스트리밍은 친숙한 Spark API를 사용하여 정확히 한 번만 처리할 수 있는 엔드투엔드 내결함성을 제공하는 거의 실시간 처리 엔진입니다. 구조적 스트리밍을 통해 정적 데이터에 대한 일괄 처리 계산을 표현하는 것과 동일한 방식으로 스트리밍 데이터에 대한 계산을 표현할 수 있습니다. Structured Streaming 엔진은 계산을 증분 방식으로 수행하고 스트리밍 데이터가 도착할 때 결과를 지속적으로 업데이트합니다.
단계별 자습서는 첫 번째 구조적 스트리밍 워크로드 실행을 참조하세요.
데이터 스트림에서 읽기
구조적 스트리밍을 사용하여 지원되는 데이터 원본에서 데이터를 증분 방식으로 수집합니다.
| 특징 | 설명 |
|---|---|
| 자동 로더 | 클라우드 스토리지에 새 데이터 파일이 도착할 때마다 점진적으로 효율적으로 처리합니다. |
| 델타 테이블 스트리밍 읽기와 쓰기 | 정확히 한 번의 처리 보장을 통해 Delta Lake 테이블을 스트리밍 원본 및 싱크로 사용합니다. |
| 표준 커넥터 | 표준 커넥터를 사용하여 메시지 버스, 큐 및 엔터프라이즈 애플리케이션에 연결합니다. |
| 마이크로 일괄 처리 크기 | 일관된 일괄 처리 크기를 유지하고 처리 지연을 방지하도록 입력 속도를 제한합니다. |
데이터 싱크에 쓰기
구조적 스트리밍이 대상 시스템에 데이터를 제공하는 방법을 구성합니다.
| 특징 | 설명 |
|---|---|
| 검사점 | 처리 상태를 저장하여 내결함성을 제공하고 단 한 번의 배달 의미 체계를 실현합니다. |
| 출력 모드 | 상태 저장 스트리밍 쿼리에 대한 추가, 업데이트 및 전체 모드 중에서 선택합니다. |
| 트리거 간격 | 처리 요구 사항에 대한 대기 시간과 비용의 균형을 맞추기 위해 트리거 간격을 설정합니다. |
| 구조적 스트리밍의 실시간 모드 | 종단 간 대기 시간이 5밀리초 이하인 실시간 워크로드에 대한 데이터를 처리합니다. |
상태 저장 및 상태 비저장 처리
무상태 쿼리는 상태를 유지하지 않고 행을 처리합니다. 상태 저장 쿼리는 집계, 조인 및 중복 제거에 대한 중간 상태를 유지합니다.
| 특징 | 설명 |
|---|---|
| 상태 비저장 스트리밍 쿼리 | 중간 상태를 유지하지 않고 데이터를 처리하는 쿼리를 최적화합니다. |
| 워터 마크 | 상태 저장 작업에서 Structured Streaming이 늦게 도착하는 데이터를 기다리는 시간을 제어합니다. |
| 상태 저장 스트리밍 | 상태 저장 연산자를 사용하여 집계, 스트림 스트림 조인 및 중복 제거를 관리합니다. |
모니터링 및 관리
쿼리 성능을 추적하고, 최적화를 적용하고, 프로덕션 구조적 스트리밍 워크로드에 대한 데이터 액세스를 제어합니다.
| 특징 | 설명 |
|---|---|
| StreamingQueryListener를 사용하여 모니터링 | Spark UI 및 수신기 API를 사용하여 쿼리 진행률 및 성능 메트릭을 추적합니다. |
| Unity 카탈로그를 사용하여 관리 | 거버넌스 및 액세스 제어를 사용하여 스트리밍 워크로드에 대한 Unity 카탈로그를 구성합니다. |