상태 백엔드

상태 백엔드 (State Backends)

Flink는 상태(state)가 저장되는 방식과 위치를 지정하는 여러 상태 백엔드를 제공합니다. 상태는 Java 힙(heap) 또는 off-heap에 위치할 수 있습니다. 상태 백엔드에 따라 Flink는 애플리케이션의 상태를 직접 관리할 수도 있는데, 이 경우 Flink가 메모리 관리를 처리(필요하면 디스크로 spill할 수도 있음)하여 애플리케이션이 매우 큰 상태를 보유할 수 있게 합니다.

출처: 문서

본문

Flink는 상태가 저장되는 방식과 위치를 지정하는 여러 상태 백엔드를 제공합니다.

상태는 Java의 힙 또는 off-heap에 위치할 수 있습니다. 상태 백엔드에 따라 Flink가 애플리케이션의 상태를 직접 관리할 수도 있습니다. 즉 Flink가 메모리 관리를 처리(필요에 따라 디스크로 spill)하여 애플리케이션이 매우 큰 상태를 보유할 수 있게 합니다. 기본적으로 Flink 구성 파일이 모든 Flink 작업의 상태 백엔드를 결정합니다.

하지만 아래와 같이 기본 상태 백엔드를 작업별로 오버라이드할 수 있습니다.

사용 가능한 상태 백엔드, 장점, 한계, 구성 파라미터에 대한 자세한 내용은 배포 및 운영 (Deployment & Operations)의 해당 섹션을 참조하세요.

Java

Configuration config = new Configuration();
config.set(StateBackendOptions.STATE_BACKEND, "hashmap");
env.configure(config);

Python

config = Configuration()
config.set_string('state.backend.type', 'hashmap')
env = StreamExecutionEnvironment.get_execution_environment(config)

더 알아보기 (Learn more)