Skip to content

Big data

빅 데이터(영어: big data)란 기존 데이터베이스 관리도구로 데이터를 수집, 저장, 관리, 분석할 수 있는 역량을 넘어서는 대량의 정형 또는 비정형 데이터 집합 및 이러한 데이터로부터 가치를 추출하고 결과를 분석하는 기술을 의미한다.

다양한 종류의 대규모 데이터에 대한 생성, 수집, 분석, 표현을 그 특징으로 하는 빅 데이터 기술의 발전은 다변화된 현대 사회를 더욱 정확하게 예측하여 효율적으로 작동케 하고 개인화된 현대 사회 구성원 마다 맞춤형 정보를 제공, 관리, 분석 가능케 하며 과거에는 불가능했던 기술을 실현시키기도 한다.

이같이 빅 데이터는 정치, 사회, 경제, 문화, 과학 기술 등 전 영역에 걸쳐서 사회와 인류에게 가치있는 정보를 제공할 수 있는 가능성을 제시하며 그 중요성이 부각되고 있다.

하지만 빅데이터의 문제점은 바로 사생활 침해와 보안 측면에 자리하고 있다. 빅데이터는 수많은 개인들의 수많은 정보의 집합이다. 그렇기에 빅데이터를 수집,분석할 때에 개인들의 사적인 정보까지 수집하여 관리하는 빅브라더의 모습이 될 수도 있는 것이다. 그리고 그렇게 모은 데이터가 보안 문제로 유출된다면, 이 역시 거의 모든 사람들의 정보가 유출되는 것이기에 큰 문제가 될 수 있다.

세계 경제 포럼은 2012년 떠오르는 10대 기술 중 그 첫 번째를 빅 데이터 기술로 선정했으며 대한민국 지식경제부 R&D 전략기획단은 IT 10대 핵심기술 가운데 하나로 빅 데이터를 선정하는 등 최근 세계는 빅 데이터를 주목하고 있다.

Categories

실시간 데이터 개념 이해

스트리밍 데이터 처리를 위한 내용을 알기 앞서 몇 가지 용어와 개념을 미리 알아두자.

  • 한정 데이터(Bounded data) 처리 : 이미 저장된 데이터를 처리하는 것, 별도의 처리 패턴 없음
  • 무제한 데이터(Unbounded data) : 스트리밍 데이터로 배치(batch)와 스트리밍(streaming)의 두가지 패턴으로 처리한다.
    • Batch : 스트리밍 데이터를 일정 시간 단위로 모아 처리하는 방식. 구현이 간단하나 데이터 수집 후 처리가 되므로 실시간 처리에서 떨어진다.
    • Streaming : 스트리밍 처리에는 Time agnostic, Filtering, Inner join, Windowing 방식 등이 있고, 배치에 비해 복잡하다. Skew가 환경에 따른 변화가 심해 데이터가 시스템에 도착하는 순서 역시 순차적이지 않기 때문이다.
      • Time agnostic : 시간 속성이 없는 데이터로 들어오는 순서대로 처리한다.
      • Filtering : 들어오는 데이터 중 특정 데이터만 필터링 후, 저장한다.
      • Inner join : 교집합이라는 말처럼, 두개의 무제한 데이터에서 들어오는 값을 비교, 매칭시켜 값을 구별한다.
      • Windowing : 스트리밍 데이터를 일정한 시간 간격으로 처리한다.

빅 데이터는 죽었다

이 글을 쓴 회사는 MotherDuck 으로 DuckDB를 만드는 회사라는 걸 감안하고 봐야합니다.

  • 나는 누구이고 왜 관심을 갖는가 → BigQuery의 초기 엔지니어
  • 필수 소개 슬라이드 → 모두들 참조하는 "시간이 지날수록 데이터는 폭증한다" 그래프
  • 대부분의 사람들은 그렇게 많은 데이터를 가지고 있지 않음
  • 스토리지와 컴퓨팅이 분리, 스토리지에 편향성을 가짐
  • 워크로드 크기가 전체 데이터 크기보다 작음
  • 대부분의 데이터는 거의 쿼리되지 앟음
  • 빅 데이터 프론티어는 계속해서 후퇴하는 중
  • 데이터는 책임(Liability)
    • 빅 데이터의 또 다른 정의는 "데이터를 유지하는 비용이 무엇을 버릴지 알아내는 비용보다 적을 때"
  • 당신은 빅데이터 1퍼센트에 속해있나요?
    • 정말 엄청난 양의 데이터를 생성하고 있나요?
    • 만약 그렇다면 정말 한 번에 엄청난 양의 데이터를 사용해야 하나요?
    • 만약 그렇다면 데이터가 너무 커서 하나의 시스템에 맞지 않습니까?
    • 만약 그렇다면, 당신은 단순한 데이터 수집가(Hoarder)가 아니라고 확신합니까?
    • 만약 그렇다면 요약하는 것이 더 좋지 않을까요?
  • 위 리스트중 하나의 질문에라도 노 라고 대답한다면,
  • 언제 가지게 될지도 모를 "무서운 규모의 빅 데이터"가 아닌
  • "실제 가진 데이터 규모를 핸들링하게 해주는 차세대 데이터 도구"를 사용하는게 좋을 수도 있음

Solutions

데이터를 수집해서 처리하고 이를 이용해 수익을 내는 일련의 과정에는 복잡하고 번거로운 단계들이 있는데, 이를 좀 더 빠르게 처리할 수 있는 실시간 데이터 분석을 위한 새로운 기술이 생겨났다. 간단하게 정리하면 아래와 같다.

큐잉 시스템 (Queuing system)

스트림 처리

  • 스톰 (Storm)
  • 스파크 스트리밍 (Spark Streaming)
  • 삼자 (Samza)

고속 스토리지

See also

  • DuckDB - Embedded OLAP DB 오픈소스

Favorite site