본문 바로가기

책/Streaming System

Chapter 1 . Streaming 101 (1)

반응형

ㅇ...ㅇ.여연어!!

 

 

 

Streaming 101 

스트리밍 데이터 처리 (Streaming data. precessing) 이 주목받는 이유는 다음과 같다 

  • 기업의 입장에서는 데이터에 대한 좀 더 시기적절한 통찰력이 중요한 때이고, 스트리밍으로 전환해 이런 통찰력을 빠르게 얻을 수 있다 
  • 현대에서는 대규모의 무한 데이터셋이 점점 더 보편화되고 있으며, 이러한 데이터는 끝없이 입력되는 데이터를 다룰 수 있도록 설계된 시스템을 사용하면 더욱 쉽게 처리할 수 있다.
  • 데이터가 도착하는 시점에 처리될 수 있다면 시스템의 작업 부하가 고르게 분산 돼 좀 더 일관되고 예측 가능한 형태로 시스템 자원을 소비할 수 있다 

 

결국 기업이 데이터를 다룰 수 있는 수단이 증가하고 데이터가 나오는 곳이 정해져 있지 않으니
스트리밍으로 전환하여 좀 더 능동적인 통찰력을 발휘할 수 있는 게 스트리밍이다
현대에서는 무한 데이터셋이 보편화되고 있다는점이 포인트다

 

 

 

 

용어: 스트리밍이란?

과연 스트리밍이란 무엇일까?

오늘날 스트리밍이란 용어를 다양하게 사용하고 있고, 결과적으로 스트리밍이 실제로 무엇인지, 또는 스트리밍으로 무엇을 할 수 있는지 대한 오해만 커지게 된다 이 용어부터 분명히 할 필요가 있다 

 

문제의 핵심은

무한 데이터 처리(unbounded data processing) 또는

근사치 결과(approximate reault) 처럼

원래 이름으로 설명했어야 할 것들을 

역사적(즉, 스트리밍 실행 엔진을 통해)으로 그것들을 어떻게 얻어왔는지로 설명해왔다는 것이다

 

이렇게 용어를 부정확하게 사용함에 따라 스트리밍 본연의 의미가 흐릿해졋고,
경우에 따라 사람들은 근사치나 예측결과처럼 역사적으로 스트리밍이라는 이름으로
설명해 온 특성으로 스트리밍의 시스템의 능력이 제한됐다고 오해하게 됐다.  

 

잘 설계된 스트리밍 시스템이 기존의 모든 배치 시스템과 마찬가지로 정확하고 일관적이며 반복 가능한 결과를 생성할 수 있고

기술적으로 더 다음을 감안할 때, 이 용어를 구체적인 뜻으로 분리해 사용을 추천한다는 저자의 생각이 담겨 있다 

 

 

스트리밍 시스템

  • 무한 데이터셋을 염두에 두고 설계된 데이터 처리 엔진의 유형 

낮은 대기 시간, 근사치 또는 예측 결과에 대해 이야기하고 싶다면

부정확하게 스트리밍이라고 부르지 않고 해당 단어를 직접 사용할 필요가 있음

 

 

다양한 데이터 유형을 논의할 때도 용어를 정확하게 해야 할 필요가 있다 

데이터셋의 모양을 정의하는 두 가지 중요한 차원이 있는데 

  1. 기수 (cardinality)
    1. 데이터셋의 크기를 뜻하며, 기수의 가장 두드러진 측면은 지정된 데이터 집합이 유한인지 무한인지를 결정하는 것
  2. 구성 (constitution)
    1. 데이터의 특성, 형식, 그리고 데이터가 어떻게 구성되어 있는지에 대한 정보

 

이 두 속성은 직교적(orthogonal)[독립적이다]이다

- 이게 수학적으로 직교적이라는 말을 쓰면 두 개의 차원이나 속성이 서로 수직 하거나 독립적인 관계 

   - 즉 서로 관여를 하지 않는다라고 정의할 수 있고 

그냥 말을 편하게 하면 서로 독립적이고 한 속성이 다른 속성을 관여하지 않는다 라고 한 줄 요약 가능 ㅋ 


데이터셋에서 기수를 설명할 때 사용하는 2가지 용어가 있다 
  1. 유한 데이터(bounded data)
    1. 크기가 유한한 데이터셋 유형 
  2. 무한 데이터(unbounded data)
    1. (최소한 이론적으로) 크기가 무한한 데이터셋 유형 

 

기수가 중요한 이유는 무한 데이터셋의 무한함이라는 특성으로 인해

데이터를 처리하는 데이터 처리 프레임워크가 갖게 되는 부담이 발생하기 때문이다. 

 

반면 데이터셋의 구성은 데이터의 물리적 표현을 나타내며,

결국 해당데이터셋과 상호 작용할 수 있는 방법을 정의해준다.

 

간략히 살펴보면 크게 두 가지 형태의 구성이 있다 

  1. 테이블(Table)
    1. 특정 시점의 데이터셋의 대한 전체적인 뷰를 의미하며, SQL 시스템은 전통적으로 테이블을 바탕으로 동작해옴 
  2. 스트림(Stream)
    1. 시간이 따라 변화하는 데이터셋의 요소 단위 뷰, 맵리듀스 계통의 데이터 처리 시스템은 전통적으로 스트림 바탕으로 동작해왔다 

 

 

심하게 과장된 스트리밍의 한계 

스트리밍 시스템이 할수 있는 것과 할 수 없는 것에 대해 이야기 해보자 

1장에서 다룰 중요한 내용 중 하나가 바로 잘 설계된 스트리밍 시스템이 무엇을 할 수 있는가이다.

 

역사적으로 볼 때 스트리밍 시스템은
종국에는 올바른 결과를 내는 배치 시스템과 함께 동작하며 낮은 지연 시간으로 
부정확한 예측 결과를 제공하는 틈새 시장으로 밀려나 있었다 이를 람다 아키텍처 라고 한다 

 

 

람다 아키텍처 

동일한 계산을 수행하는 배치 시스템과 스트리밍 시스템을 함께 운영하는 것 

스트리밍 시스템은
(근사 알고리즘을 사용하거나 혹은 시스템 자체가 정확성을 보장하지 못하기 때문에)
낮은 지연 시간으로 부정확한 결과를 제공하며,
얼마 후 배치 시스템이 최종적으로 정확한 결과를 보여주는 식이다 

 

이때 당시에는 스트리밍 엔진 정확성 면에서 다소 실망스러웠고 

반면 배치 엔진은 본질적으로 다루기 힘들었기 때문에 

 

람다는 이를 해결하는 좋은 방법 
하지만 독립된 두 버전의 파이프라인을 구축해야하고 유지해야하며 
나중에는 병합해야하기 때문에 람다 시스템을 유지하는 것은 번거로울 수 밖에 없었다.. 


 

 카프카 처럼 재현 가능한 시스템을 사용하는 상황에서 반복 가능성 에 대한 문제를 이야기 하고있었다는데 

주어진 작업을위해 잘 설계된 단일 파이프라인을 적절히 구축해 실행하는 카파 아키텍처를 제안했다고 한다.. 

 

배치 시스템은 기능상 잘 설계된 스트리밍 시스템의 엄격한 부분집합에 불과하다고 생각한다고 하는데...... 
효율성 면에서 발생하는 차이를 제외하면 오늘날 배치 시스템은 더 이상 쓸이유가 없다.....?
허 이건 좀 논란이 있을꺼같은데... 

 

 

결론

무한 데이터 처리를 위해 강력한 프레임워크와 결합된 스트리밍시스템이 광범위하게 성숙해 감에 따라 

람다 아키텍처는 역사에서 유물로 전락해갈 것 

반응형

' > Streaming System' 카테고리의 다른 글

Chapter 1. Streaming 101 (2)  (0) 2024.02.22
chapter 1. 빅데이터의 기초 지식  (0) 2023.05.09