Recent Posts
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 |
Tags
- 티스토리챌린지
- JanusWebRTCServer
- tolerated
- 코루틴 빌더
- preemption #
- JanusGateway
- taint
- 겨울 부산
- 자원부족
- VARCHAR (1)
- 깡돼후
- Spring Batch
- 오블완
- JanusWebRTCGateway
- terminal
- kotlin
- vfr video
- k8s #kubernetes #쿠버네티스
- 달인막창
- 헥사고날아키텍처 #육각형아키텍처 #유스케이스
- Value too long for column
- table not found
- python
- pytest
- 개성국밥
- mp4fpsmod
- JanusWebRTC
- 코루틴 컨텍스트
- PytestPluginManager
- PersistenceContext
Archives
너와 나의 스토리
대용량 실시간 데이터 처리 - BigData/BigTable/MapReduce 본문
반응형
BigQuery와 BigTable 차이
BigQuery
- BigQuery는 데이터셋의 쿼리 엔진. -> 변화 거의 없고 조회만 할 때, 사용하기 좋음
- Relational DBMS
BigTable
- BigTable은 데이터베이스.
- Google의 NoSQL 빅데이터 데이터베이스 서비스
- 방대한 데이터 저장 가능.
- 여러 서버의 시간별 CPU 사용량 같은 시계열 데이터 쿼리 가능
- rowkey, column family, timestamp로 구성됨
- RDB같은 느낌인데 친절한 인터페이스가 없음
- 크롤러가 수집한 방대한 웹 페이지를 저장하기 위한 목적
- 구글 표준 데이터 포맷인 '프로토콜 버퍼'를 사용하며, 필요에 따라 외부에서 정의하는 구조화된 데이터를 읽고 씀
OLTP vs OLAP
OLTP(Online Transaction Processing)
트랜잭션 지향 애플리케이션을 손쉽게 관리할 수 있도록 도와주는 저보 시스템의 한 계열. 일반적으로 데이터 기입 및 트랜잭션 처리를 위해 존재.
OLAP(Online Analytical Processing)
의사결정 지원 시스템 가운데 대표적인 예로, 사용자가 동일한 데이터를 여러 기준을 이용하는 다양한 방식으로 바라보면서 다차원 데이터 분석을 할 수 있도록 도와준다.
대용량 데이터 처리 기술
- 기존에 데이터가 커졌을 때 사용하던 방식
- 샤딩: 데이터의 키를 hash해서 여러 db로 분산
- 문제점: 시스템의 복잡도가 증가하여 유지보수가 힘들다
- 샤딩: 데이터의 키를 hash해서 여러 db로 분산
- GFS(Ggoogle File System)
- 하둡의 원조
- 구글이 사내에서 사용하려고 만든 분산 파일 시스템
- GFS는 방대한 양의 데이터를 보유하는 핵심 스토리지 & 검색 엔진을 위해 최적화 됨
- 대량의 서버를 연결해서 데이터에 대한 접근이 효율적이고 안정적
- Failure tolerance, 물리적으로 서버 중 하나가 고장나도 정지하지 않고 잘 돌아가는 시스템
- MapReduce
- 대용량 데이터를 분산 처리하는 기법
- Map과 Reduce 함수를 조합해 분산 환경에서 다양한 계산
- Map 단계: 대규모 데이터를 여러대의 컴퓨터에 분산해서 병렬적으로 처리해 새로운 데이터(중간 결과)를 만들어낸다.
- Reduce 단계: 중간 결과물을 결합해 최종 결과를 만든다.
- Shuffle (SQL의 GroupBy와 유사한 연산)
빅데이터
- Background
- 1. 데이터는 원래 중요한 것. 데이터 양이 많아져서 기존의 소프트웨어로는 처리하기 어려워진 것.
- 2. 데이터와 기술적인 요소는 이를 분석/사용하고 판단하는 사람과의 상호 작용이 이루어질 때에만 의미 있는 결과를 낼 수 있다.
- 어떤 분석 알고리즘을 사용할 것인지, 어떤 처리 시스템을 사용하고 결과를 해석할 것인지 등 이 모든 것을 자동화해주는 시스템은 없다.
- 빅데이터의 3가지 측면
- 양(Volume): 저장할 데이터의 양과 처리 요구량
- 속도(Velocity): 저장 속도와 처리 속도
- 다양성(Variety): RDBMS에서 사용하는 테이블의 레코드같이 정형화된 형태 뿐만이 아니라 텍스트, 이미지와 같은 비정형 데이터
- 빅데이터 왜 중요해졌나?
- 검색과 포털 위주였던 과거와 달리 최근에는 인터넷 웹 서비스 환경에서 통신, 게임, 쇼핑 등 개인화 서비스와 소셜 서비스를 제공한다.
- 그렇기 때문에 저장소의 수직적 확장보다는 수평적 확장 기술이 중요해지고 있다.
- 또한 개인 간의 관계 분석이나 개인의 취향을 분석하는 복잡한 기능과 저장 크기와 처리 요구량에 있어서 OLTP 범위를 넘어서는 데이터 처리 기술이 중요해지고 있다.
빅데이터를 위한 플랫폼
- 저장 시스템
- 병렬 DBMS와 NoSQL은 모두 대량의 데이터를 저장하기 위해 수평 확장 접근 방식을 취하고 있다는 점에서 동일.
실시간 빅데이터 분석
- 빅데이터 처리 플랫폼으로 Hadoop MapReuce를 사용하여 데이터를 병렬 처리
- MapReduce는 대량의 데이터를 분산 처리할 수 있는 좋은 기법이지만, 배치 방식으로 데이터를 처리하기 때문에 실시간으로 데이터를 조회하기 어렵다.
- 실시간 분산 쿼리
- 클러스터를 구성하는 노드가 각자 쿼리를 처리하도록 해서, 한 번에 처리할 데이터의 크기는 작게 하면서 이를 병렬 처리해 응답 시간을 실시간 수준으로 높이는 방식.
출처:
- 빅데이터를 위한 플랫폼: https://d2.naver.com/helloworld/29533
- 실시간 빅데이터 분석: https://d2.naver.com/helloworld/694050
- 대용량 데이터 처리 기술: https://zzsza.github.io/data/2018/05/26/bigdata-preprocessing-skills/
반응형
'Data Analysis' 카테고리의 다른 글
생성 모델, AI, ML, DL 언어 모델 키워드 구별하기 (1) | 2024.07.06 |
---|
Comments