Glossary

Glossary (용어집)

Flink 문서에서 자주 등장하는 핵심 용어를 정리해요. 각 용어는 실행 환경과 API 개념에서 쓰는 의미를 간결하게 설명해요.

출처: Glossary

본문

Checkpoint Storage (체크포인트 저장소)

State Backend가 체크포인트 동안 스냅샷을 저장하는 위치예요 (JobManager의 Java Heap 또는 Filesystem).

Flink Application Cluster (플링크 애플리케이션 클러스터)

Flink Application Cluster는 하나의 Flink Application에서 제출된 Flink Jobs만 실행하는 전용 Flink Cluster예요. Flink Cluster의 수명은 Flink Application의 수명에 묶여 있어요.

Flink Job Cluster (플링크 잡 클러스터)

Flink Job Cluster는 단일 Flink Job만 실행하는 전용 Flink Cluster예요. Flink Cluster의 수명은 Flink Job의 수명에 묶여 있어요. 이 배포 모드는 Flink 1.15부터 더 이상 사용되지 않아요.

Flink Cluster (플링크 클러스터)

일반적으로 하나의 JobManager와 하나 이상의 Flink TaskManager 프로세스로 구성된 분산 시스템이에요.

Event (이벤트)

이벤트는 애플리케이션이 모델링하는 도메인의 상태 변화에 대한 서술이에요. 이벤트는 스트림 또는 배치 처리 애플리케이션의 입력이자 출력이 될 수 있어요. 이벤트는 records의 특별한 유형이에요.

ExecutionGraph

Physical Graph를 참고하세요.

Function (함수)

Function은 사용자가 구현하며 Flink 프로그램의 애플리케이션 로직을 담아요. 대부분의 Function은 대응하는 Operator에 의해 감싸져 있어요.

Instance (인스턴스)

인스턴스라는 용어는 런타임 중 특정 유형(보통 Operator 또는 Function)의 특정 인스턴스를 설명하는 데 사용돼요. Apache Flink는 대부분 Java로 작성되기 때문에, 이는 Java의 Instance 또는 Object 정의에 해당해요. Apache Flink 맥락에서는 같은 Operator 또는 Function 유형의 여러 인스턴스가 병렬로 실행된다는 점을 강조하기 위해 parallel instance(병렬 인스턴스) 용어도 자주 사용돼요.

Flink Application (플링크 애플리케이션)

Flink Application은 main() 메서드(또는 다른 방식)에서 하나 이상의 Flink Jobs를 제출하는 Java Application이에요. 잡 제출은 보통 실행 환경에서 execute()를 호출하여 수행해요.

Operator Chain (오퍼레이터 체인)

Operator Chain은 중간에 repartitioning 없이 이어진 두 개 이상의 연속된 Operators로 구성돼요. 같은 Operator Chain 내의 Operator는 직렬화나 Flink의 네트워크 스택을 거치지 않고 레코드를 서로 직접 전달해요.

Partition (파티션)

파티션은 전체 데이터 스트림 또는 데이터 세트의 독립적인 부분 집합이에요. 각 record를 하나 이상의 파티션에 할당함으로써 데이터 스트림이나 데이터 세트가 파티션으로 나뉘어요. 데이터 스트림 또는 데이터 세트의 파티션은 런타임 중 Tasks에 의해 소비돼요. 데이터 스트림이나 데이터 세트가 파티셔닝되는 방식을 변경하는 변환을 repartitioning이라고 부르기도 해요.

Physical Graph (물리 그래프)

물리 그래프는 분산 런타임에서 실행하기 위해 Logical Graph를 변환한 결과예요. 노드는 Tasks이고, 엣지는 데이터 스트림 또는 데이터 세트의 입력/출력 관계나 partitions을 나타내요.

Record (레코드)

Record는 데이터 세트 또는 데이터 스트림의 구성 요소예요. OperatorsFunctions는 레코드를 입력으로 받고 레코드를 출력으로 방출해요.

(Runtime) Execution Mode (런타임 실행 모드)

DataStream API 프로그램은 BATCH 또는 STREAMING 두 실행 모드 중 하나로 실행될 수 있어요. 자세한 내용은 [Execution Mode]({{< ref "/docs/dev/datastream/execution_mode" >}})를 참고하세요.

Flink Session Cluster (플링크 세션 클러스터)

여러 Flink Jobs를 수용하여 실행하는 장기 실행 Flink Cluster예요. 이 Flink Cluster의 수명은 어떤 Flink Job의 수명에도 묶이지 않아요. 이전에는 Flink Session Cluster를 session mode의 Flink Cluster라고도 불렀어요. Flink Application Cluster와 비교하세요.

State Backend (상태 백엔드)

스트림 처리 프로그램에서 Flink Job의 State Backend는 각 TaskManager에서 state가 어떻게 저장되는지 결정해요 (TaskManager의 Java Heap 또는 (임베디드) RocksDB).

Sub-Task (서브 태스크)

Sub-Task는 데이터 스트림의 partition을 처리하는 Task예요. "Sub-Task"라는 용어는 같은 Operator 또는 Operator Chain에 대해 여러 병렬 Task가 존재한다는 점을 강조해요.

Table Program (테이블 프로그램)

Flink의 관계형 API(Table API 또는 SQL)로 선언된 파이프라인을 가리키는 일반적인 용어예요.

Task (태스크)

Physical Graph의 노드예요. Task는 Flink 런타임이 실행하는 기본 작업 단위예요. Task는 정확히 하나의 Operator 또는 Operator Chain의 병렬 인스턴스를 캡슐화해요.

Flink TaskManager (플링크 태스크매니저)

TaskManager는 Flink Cluster의 워커 프로세스예요. Tasks는 실행을 위해 TaskManager에 스케줄링돼요. TaskManager는 서로 통신하여 이후 Task 간에 데이터를 교환해요.

Transformation (변환)

Transformation은 하나 이상의 데이터 스트림 또는 데이터 세트에 적용되어 하나 이상의 출력 데이터 스트림 또는 데이터 세트를 만들어요. 변환은 레코드 단위로 데이터 스트림이나 데이터 세트를 변경할 수도 있지만, 파티셔닝만 변경하거나 집계를 수행할 수도 있어요. OperatorsFunctions가 Flink API의 "물리적" 부분인 반면, Transformation은 API 개념에 불과해요. 구체적으로, 대부분의 변환은 특정 Operators에 의해 구현돼요.

UID

Operator의 고유 식별자로, 사용자가 제공하거나 잡의 구조에서 결정돼요. Application이 제출되면 UID hash로 변환돼요.

UID hash

런타임에서 Operator의 고유 식별자로, "Operator ID" 또는 "Vertex ID"라고도 하며 UID에서 생성돼요. 일반적으로 로그, REST API 또는 메트릭에 노출되며, 가장 중요한 것은 [savepoints]({{< ref "docs/ops/state/savepoints" >}}) 안에서 operator를 식별하는 방식이라는 점이에요.

더 알아보기 (Learn more)