데이터 스트리밍의 떠오르는 샛별!!!!!!
플링크란?
독일어로, 빠르고 재빠르다는 뜻(quick and nimble)
스톰과 유사하지만 스톰보다 좋음
1000 대 이상의 노드까지도 확장할 수 있음.
Flink vs. Spark Streaming
- Flink는 스톰보다 빠름!
- Flink는 실시간 처리를 함. 스파크 서터리밍의 마이크로 배치 방식과는 다름.
- Flink도 Trident나 Spark와 같은 고수준 API를 제공하고 있음. 그러면서도 실시간 처리를 하고 있음.
- Flink는 Spark Streaming과 마찬가지로 Scala를 잘 지원하고 있음.
- Flink도 스파크처럼 그 자체의 에코시스템을 갖추고 있음.
- Flink로는 이벤트 시간대를 기반으로 한 데이터 처리를 할 수 있음. 즉, 데이터가 도착한 시간대가 아니라 실제 그 이벤트가 실행된 시간대를 의미.
- 엄청난 윈도잉 시스템
- 더불어서 실시간 처리도 잘 되고, 금융 애플리케이션에서 꼭 필요한 exactly-once도 지원함.
플링크 아키텍처
- 스파크처럼 Flink는 그저 런타임 엔진일뿐.
- 스파크처럼 하둡과 별개로 다른 클러스터에 독립적으로 실행할 수 있음. Hadoop의 YARN 위에서 실행할 수도 있음.
- 플링크는 스트리밍 뿐만 아니라, 배치 데이터도 처리할 수 있음
- 두 개의 API가 있는데,
- ‘DataStream’ API 는 ‘CEP’를 이용해서 이벤트를 처리하고, ‘Table’ 기반의 처리로 들어오는 데이터에 SQL 같은 쿼리를 날릴 수도 있음.
- ‘DataSet’ API는 스트리밍 대신에 배치 데이터를 처리하는 API.
- Bounded Data → 요건 마치 라잌 스파크 서터리밍과 비슷.