Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

스트리밍과 배치의 기능 및 운영 차이

스트리밍은 짧은 종단 간 지연이 필요한 업무에 적합합니다. 10분보다 긴 지연을 허용한다면 일반 배치나 증분 데이터셋도 검토할 수 있습니다. 선택할 때는 지연뿐 아니라 지원 언어, 소비 애플리케이션, 상태 크기와 상시 연산 비용을 함께 비교합니다.

지원 기능

기능스트리밍배치
모든 Foundry 제품에서 비교적 높은 지연으로 데이터 이용지원지원
트랜잭션지원지원
원자성지원지원
브랜치지원지원
보안 표지와 보안 분류지원지원
데이터 출처 추적지원지원
온톨로지지원지원
시계열지원지원
Java 변환지원지원
Pipeline Builder지원지원
Python 변환미지원지원
낮은 지연의 데이터 접근지원미지원

Python 변환의 지원 여부는 Foundry 스트리밍 변환 실행을 뜻합니다. 외부 Python 프로그램이 수집 API로 레코드를 보내는 방식과는 구분합니다.

소비 애플리케이션

Ontology, Pipeline Builder, Quiver, Dataset Preview와 Foundry Rules는 스트림을 직접 소비하여 그래프 등을 실시간으로 갱신할 수 있습니다.

Contour 같은 다른 애플리케이션은 스트림의 아카이브 데이터셋을 읽습니다. 아카이브는 새 데이터를 주기적으로 반영하는 일반 배치 데이터셋이므로 실시간 스트림과 같은 지연으로 보이지 않을 수 있습니다. 애플리케이션에서 스트리밍 데이터셋을 선택하면 Foundry가 적합한 읽기 모드를 사용합니다.

상태와 확장성

배치는 한 번에 처리할 입력 크기가 제한되어 있고 사전에 규모를 파악하기 쉽습니다. 스트리밍의 상태는 실행 중 계속 늘어날 수 있습니다. 예를 들어 계속 새로운 키가 들어오는 집계를 무한히 유지하면 언제 메모리 한도에 도달할지 예측하기 어렵습니다.

상태를 보관하는 변환에는 만료나 제한된 윈도를 사용하여 증가 범위를 정해야 합니다. 키 개수와 분포도 연산 자원 요구에 영향을 줍니다. 키 설계와 상태 만료를 함께 검토합니다.

종단 간 지연과 중단 영향

낮은 지연을 얻으려면 원천 데이터 생성부터 네트워크, 변환과 최종 소비까지 모든 단계가 목표를 충족해야 합니다. 빠른 변환 하나만으로 느린 원천이나 소비 시스템의 지연을 없앨 수는 없습니다.

배치는 정해진 실행이 한 번 실패해도 재시도할 수 있으며 일반적으로 중단을 더 오래 허용합니다. 반면 스트리밍은 종료 시점이 정해지지 않은 상시 프로세스입니다. 실시간 업무의 10분 중단은 하루 한 번 갱신하는 데이터의 10분 중단보다 영향이 클 수 있습니다.

스트리밍의 소비 계층은 빠르고 빈번한 쓰기를 받아들일 수 있어야 합니다. Pipeline Builder, 시계열, Foundry Rules와 온톨로지는 이런 사용을 지원하며 외부 시스템으로 낮은 지연의 쓰기를 수행하는 연결도 사용할 수 있습니다. 외부 목적지를 선택하면 그 시스템의 수신 성능도 전체 지연에 포함됩니다.

비용 판단

스트리밍은 항상 연산 자원을 준비하므로 평균 비용이 배치보다 높을 수 있습니다. 다만 아주 짧은 지연을 얻기 위해 배치를 사실상 계속 실행해야 한다면 스트리밍이 더 경제적일 수도 있습니다.

몇 분 단위 갱신으로 충분한 업무는 작은 마이크로배치를 검토합니다. 반대로 초 단위 지연이 필요하면 지연과 처리량을 확인하고, 실제 프로필 및 실행 시간을 연산 사용량 산식에 적용하여 비교합니다.