카테고리 없음
[요약 정리] 빅데이터를 지탱하는 기술
뚜찌지롱
2023. 7. 2. 17:49
빅데이터 기술
- Hadoop : 다수의 컴퓨터에서 대량의 데이터를 처리하기 위한 시스템, 분산 처리 시스템
- 방식 : 모여진 데이터를 나중에 집계
- 방대한 데이터를 저장해둘 스토리지와 데이터를 순차적으로 처리할 수 있는 구조가 필요하며, 수백-수천 대 단위의 컴퓨터를 관리하는 프레임워크
- java 언어로 동작되는 제한이 있어, SQL 언어를 통해 Hadoop을 실행시킬 수 있는 Hive가 개발됨.
- NoSQL : 전통적인 RDB의 제약을 제거한 데이터 베이스의 총칭
- 방식 애플리케이션에서 온라인으로 접속
- 장점 : RDB 보다 고속의 읽기, 쓰기가 가능하고 분산 처리에 뛰어남
- DB 종류
- key-value store(KVS) : 다수의 키와 값을 관련지어 저장
- document store : JSON과 같은 복잡한 데이터 구조를 저장
- wide-column store : 여러 키를 사용하여 높은 확장성을 제공
- Apache Spark : 분산 처리 시스템
데이터 디스커버리 : 대화형으로 데이터를 시각화하여 가치 있는 정보를 찾는 프로세스
- 셀프서비스용 BI 도구(Business Intelligenve tool)
빅데이터의 기술 : 분산 시스템을 활용하면서 데이터를 순차적으로 가공해 나가는 일련의 구조
- 데이터 파이프라인(data pipeline) : 데이터 수집에서 워크플로 관리까지
- 데이터 수집
- 벌크(bulk)형 : 이미 어딘가에 존재하는 데이터를 정리해 추출하는 방법, 데이터베이스와 파일 서버 등에서 정기적으로 데이터를 수집하는데 사용
- 스트리밍(streaming)형 : 차례차례로 생성되는 데이터를 끊임없이 계속해서 보내는 방법, 모바일 애플리케이션과 임베디드 장비 등에서 데이터를 수집하는데 사용
- 데이터 처리
- 스트림 처리(stream processing) : 스트리밍형 방법으로 받은 데이터를 실시간으로 처리하는 방식
- 과거 30분간 취합한 데이터를 집계하여 그래프를 만들려면, ‘시계열 데이터 베이스’와 같은 실시간 처리를 지향한 데이터베이스가 자주 사용됨
- 장기적인 데이터 분석에는 적합하지 않음
- 배치 처리(batch processing)
- 장기적인 데이터 분석(대량의 데이터)을 위해 적합
- 정리된 데이터를 효율적으로 가공하기 위해 배치 처리(batch processing)가 필요
- 스트림 처리(stream processing) : 스트리밍형 방법으로 받은 데이터를 실시간으로 처리하는 방식
- 데이터 수집
분산 스토리지(distribute storage) : 객체 스토리지, NoSQL 데이터베이스
- 수집된 데이터는 분산 스토리지에 저장
- 분산 스토리지 : 여러 컴퓨터와 디스크로부터 구성된 스토리지 시스템
- 객체 스토리지(object storage) : 한 덩어리로 모인 데이터에 이름을 부여해서 파일로 저장. 클라우드 서비스 Amazon S3 등
- NoSQL DB를 분산 스토리지로 사용 가능, 애플리케이션에서 많은 데이터를 읽고 쓰는데 우수함.
분산 데이터 처리 : 쿼리 엔진, ETL 프로세스
- 분산 스토리지에 저장된 데이터를 처리하는 데는 ‘분산 데이터 처리’의 프레임워크가 필요 → MapReduce가 등장한 배경
- 주 역할 : 나중에 분석하기 쉽도록 데이터를 가공해서 그 결과를 외부 데이터베이스에 저장
- 데이터 집계 방법
- 배치형 쿼리 엔진(query engine) : 분산 스토리지 상의 데이터를 SQL로 집계, Hive
- 현재는 Hive 보다 고속인 대화형 쿼리 엔진(interactive query engind)도 개발됨, Presto
- 외부의 데이터 웨어하우스 제품 이용 : 분산 스토리지에서 추출한 데이터를 DW에 적합한 형식으로 변환 (ETL 프로세스)
워크플로 관리(workflow management) : 전체 데이터 파이프라인의 동작을 관리
- 목적 : 매일 정해진 시간에 배치 처리를 스케줄대로 실행하고, 오류가 발생한 경우에는 관리자에게 통지하기 위해 사용
- 오류가 발생하면 시스템 오류로 이어질 수 있음. → 오류 발생 시의 처리 및 다시 처리하기 위한 기능을 만드는 것
- 워크플로 관리를 도입하면, 데이터 분석보다는 엔지니어링 작업이 많아진다. 데이터 처리를 자동화해서 장기적으로 운용해 나가기 위해서는 안정된 워크플로 관리가 필수적
데이터 웨어하우스
- 웹 서버나 업무 시스템에서 이용되는 일반적인 RDB와는 달리 ‘대량의 데이터를 장기 보존하는’ 것에 최적화
- 정리된 데이터를 한 번에 전송하는 것을 뛰어나지만, 소량의 데이터를 자주 쓰고 읽는 데는 적합하지 않음
- 전형적인 사용 방법 : 업무 시스템에서 꺼낸 데이터를 하루가 끝날 때 정리하여 쓰고, 이것을 야간 시간대에 집계해서 보고서를 작성
- 데이터 소스(data source) —ETL—> 데이터 웨어하우스(data warehouse)/데이터 마트(data mart) —ETL—> 데이터 마트(data mart) < —SQL— 시각화 도구(BI)
- ‘ETL 도구’라는 전용 소프트웨어가 이용됨
- SQL로 집계됨
데이터 레이크 : 데이터를 그대로 축적
- 모든 데이터가 데이터 웨어하우스를 가정해서 만들어지지 않음
- 데이터 웨어하우스에 넣을 수 없는 데이터(텍스트 파일, 바이너리 데이터)도 있음
- 모든 데이터를 원래의 형태로 축적해두고 나중에 필요에 따라 가공하는 구조
- 임의의 데이터를 저장할 수 있는 분산 스토리지가 데이터 레이크로 이용됨 → 단순한 스토리지
- 데이터 형식은 자유지만, 대부분의 경우 csv, json 등의 범용적인 텍스트 형식이 사용
- DW와의 가장 큰 차이점은 미가공의 원시 데이터를 그대로 저장소에 저장한 형태
데이터 마트
- 업무에 있어서 중요한 데이터 처리에 사용되기 때문에 아무때나 사용하면 시스템에 과부하를 초래
- 데이터 분석과 같은 목적에 사용해야 하는 경우, DW/DL에서 필요한 데이터만을 추출하여 데이터 마트를 구축
- SQL로 집계됨
- 시각화에 BI 도구를 사용할 경우, 집계 속도를 높이기 위해 데이터 마트가 거의 필수적
- 데이터 마트 구축은 배치 처리로 자동화되는 경우가 많기 때문에 그 실행 관리를 위해 워크플로 관리 도구를 사용