Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 테이블만들기
- Data Analysis
- HTTP
- AWS
- MySQL
- dns
- 태블로
- Linear models
- 배치파일
- SQL
- https
- Network
- SAML
- 색상코드
- map차트
- 클라우드
- SSO인증
- 선형회귀
- tableau
- 파이썬
- >>
- SQL 테이블 삭제
- 하드웨어
- 날짜 함수
- 방화벽
- batch
- SSO
- 맵차트
- SSL
Archives
- Today
- Total
SeaForest
빅데이터를 지탱하는 기술 리뷰 (2) 본문
빅데이터를 지탱하는 기술 리뷰 (1)
데이터 분야에서 너무 유명하기도 하고 추천도 받아서 이 책을 읽게 되었다. 데이터 엔지니어로 일을 하고 있는건 아니지만 데이터 엔지니어쪽 공부를 하고 싶다는 생각을 항상 하고 있었기에
seaforest76.tistory.com
3. 빅데이터의 분산 처리
3-1. 대규모 분산 처리의 프레임워크
- 구조화 데이터와 비구조화 데이터
- 스키마 : 테이블의 컬럼 명과 데이터형, 테이블 간의 관계
- 구조화된 데이터 : 스키마가 명확하게 정의된 데이터
ex. 테이블 - 비구조화 데이터 : 스키마가 없는 데이터
ex. 텍스트 데이터, 이미지 등
- Hadoop
- 분산 데이터 처리의 공통 플랫폼
- 단일 소프트웨어가 아니라 분산 시스템을 구성하는 다수의 소프트웨어로 이루어진 집합체
- 기본 구성 요소
- HDFS : 분산 파일 시스템
- YARN : 리소스 관리자
- MapReduce : 분산 데이터 처리의 기반
- Spark
- 대량의 메모리를 활용한 고속의 데이터 처리 기반
3-2. 쿼리 엔진
'Hive'에 의한 구조화 데이터의 생성과 'Presto'에 의한 대화식 쿼리에 대해 설명
- 데이터 마트 구축의 파이프라인
- Hive
- 데이터 구조화
- 분산 스토리지에 저장된 데이터를 구조화하고 열 지향 스토리지 형식으로 저장, 가공하는 부하가 큰 처리이기 때문에 Hive 이용
- 시간이 많이 걸리는 배치 처리는 Hive 사용 해야함
- Presto
- 데이터 집약
- 완성한 구조화 데이터를 결합, 집계하고 비정규화 테이블로 데이터 마트에 써서 내보냄. 열 지향 스토리지를 이용한 쿼리의 실행에는 Presto 사용
- SQL 실행에 특화된 시스템
- 실행이 빠르기 때문에 오류가 발생하면 다시 반복해서 사용함
- Hive
3-3. 데이터 마트의 구축
분산 시스템이 준비되면 시각화를 위해 데이터 마트를 만드는 절차에 들어감.
- 팩트 테이블
- 추가 (append) : 새로 도착한 데이터만을 증분으로 추가
- 치환 (replace) : 과거의 데이터를 포함하여 테이블 전체를 치환
- 테이블 파티셔닝
- 하나의 테이블을 여러 물리적인 파티션으로 나눔으로써 파티션 단위로 정리하여 데이터를 쓰거나 삭제할 수 있도록 함
- 데이터 웨어하우스 구축에 유용
- 집계 테이블
- 팩트 테이블을 어느 정도 모아서 집계하면 데이터의 양이 크게 줄어들 수 있음
- 일정 시간을 간격으로 집계하여 불필요한 정보를 제거한 테이블
- '스냅샷 테이블' 과 '이력 테이블'
- 마스터 데이터처럼 업데이트 될 가능성이 있는 테이블에 대해서는 두 가지 방안이 있음
- 스냅샷 테이블 : 정기적으로 테이블을 통째로 저장하는 방법
- 이력 테이블 : 변경 내용만을 저장하는 방법
4. 빅데이터의 추적
빅데이터를 효율적으로 집계하려면 '장기적인 데이터 분석'을 가정한 '스토리지' 마련은 필수적이다.
4-1. 벌크 형과 스트리밍 형의 데이터 수집
- 벌크 형의 데이터 전송
- 전통적인 데이터 웨어하우스에서 사용된 것은 주로 '벌크 형' 방식
- 과거에 축적된 대량의 데이터가 이미 있는 경우나 기존의 데이터베이스에서 데이터를 추출하고 싶을 경우에 벌크 형의 데이터 전송
- 스트리밍 형의 데이터 전송
- 계속해서 전송되어 오는 작은 데이터를 취급하기 위한 데이터 전송
4-2. [성능X신뢰성] 메시지 배송의 트레이드 오프
- 메시지 브로커
- 스토리지의 성능 문제를 해결하는 중간층의 설치
- 대량의 메시지를 안정적으로 받기 위해서는 성능이 매우 높고 필요에 따라 성능을 얼마든지 올릴 수 있는 스토리지 필요
- 송신자(publisher)로부터 전달받은 메시지를 수신자(subscriber)로 전달해주는 중간 역할
- 푸시 형과 풀 형
- 푸시형 : 송신 측의 제어로 데이터를 보내는 방식
- 풀 형 : 수신 측의 주도로 데이터를 가져오는 것
- 신뢰성 문제
신뢰성이 낮은 네트워크에서는 메시지의 중복이나 누락이 발생하기 때문에 대부분의 경우 아래 3가지 중 하나를 보장하도록 설계된다.
- at most once : 메시지는 한 번만 전송된다. 그러나 도중에 전송에 실패해서 사라질 가능성이 있다.
- exactly once : 메시지는 손실되거나 중복 없이 한 번만 전달된다.
- at least once : 메시지는 확실히 전달된다. 단, 같은 것이 여러 번 전달될 가능성이 있다.
- 중복 제거는 높은 비용의 오퍼레이션
- 메시지의 중복을 제거하기 위해서는 같은 메시지를 과거에 받은 것인지에 대한 여부를 판정해야함.
4-3. 시계열 데이터의 최적화
- '프로세스 시간'과 '이벤트 시간'
- 프로세스 시간(process time) : 서버가 처리하는 시간
- 이벤트 시간(event time) : 클라이언트 상에서 메시지가 생성된 시간
- 프로세스 시간에 의한 분할과 문제점
- 분산 스토리지에 데이터를 넣는 단계에서는 이벤트 시간이 아닌 프로세스 시간을 사용하는 것이 보통
- 풀 스캔(full scan) : 다수의 파일을 모두 검색하는 쿼리, 시스템 부하를 크게 높이는 요인
- 시계열 인덱스
- 이벤트 시간에 대해 인덱스를 만드는 것
- 정해진 시간에 발생한 인덱스를 조사하거나, 실시간 대시보드를 만드는 경우에 유용
- 장기간에 걸쳐서 대량의 데이터를 집계하는 경우에는 분산 데이터베이스가 효율적이지는 않음
- 조건절 푸시다운
- 조건절 푸시다운 (predicate pushdown) : 최소한의 데이터만을 읽도록 하는 최적화
4-4. 비구조화 데이터의 분산 스토리지
- 빅데이터를 위한 분산 스토리지는 (필요에 따라 얼마든지 확장할 수 있는) 확장성과 (데이터를 구조화하지 않고도 저장할 수 있는) 유연성이 필요
- 도큐먼트 스토어
- 데이터 처리의 유연성 목적
- 장점 : 스키마를 정하지 않고 데이터 처리를 할 수 있음
- MongoDB
- 오픈 소스의 분산형 도큐먼트 스토어
- 여러 노드에 데이터를 분산할 수 있지만, 대량의 데이터를 집계하는데 적합하진 않음
'Data analysis' 카테고리의 다른 글
빅데이터를 지탱하는 기술 리뷰 (1) (0) | 2023.07.02 |
---|---|
빅데이터 시대, 성과를 이끌어내는 데이터 문해력 리뷰 (0) | 2023.06.16 |
[Data Analysis] Linear Models, 선형 회귀 모델 (0) | 2022.03.14 |
[Data] 데이터 제공 사이트 리스트 (0) | 2022.01.01 |