1️⃣ 빅데이터(Big Data) 의 개념과 특징
✨ 빅데이터란?
- 기존 기술로는 처리할 수 없을 정도로 크고 다양한 데이터를 의미
- 단순히 양만 많은 게 아니라 다양성, 속도, 가변성이 높아진 데이터
✨ 빅데이터의 특징 (3V)
- Volume (양) : 데이터의 크기
- Velocity (속도) : 데이터가 빠르게 생성되고 처리되는 속도
- Variety (다양성) : 데이터 형태의 다양성 (텍스트, 이미지, 동영상 등)
2️⃣ 빅데이터 분석을 위한 기술적 요소들
✨ 프론트엔드 기술
- 경량 스크립트 및 캐시(Cache) 를 통해 사용자에게 빠른 응답을 제공하는 기술
- 자주 사용하는 데이터를 미리 메모리에 올려 성능 향상
✨ 백엔드 기술
- 분산 파일 시스템과 분산 데이터베이스를 통해 데이터를 나누어 저장하고 처리하는 기술
- 수많은 데이터를 여러 서버로 쪼개어 처리하는 방식
✨ 시스템 관리 및 모니터링
- 시스템의 성능과 안정성을 실시간으로 모니터링하고, 문제가 발생하면 즉시 대응할 수 있는 체계를 구축
- 데이터를 통해 문제 발생을 미리 예측하고 대응하는 방식
3️⃣ 빅데이터 분석 기법들
| 분석 기법 | 내용 |
|---|
| 텍스트 마이닝 | 비정형 텍스트에서 의미 있는 정보를 추출 (자연어 처리 활용) |
| 소셜 오피니언 마이닝 | SNS 등에서 사용자의 감정, 의견 분석 |
| 소셜 네트워크 분석 | 사용자 간의 연결 구조와 영향력 분석 |
| 군집 분석 | 유사한 데이터를 묶어서 특정 분석 |
4️⃣ 빅데이터 생태계 (Big Data Ecosystem)
- 데이터 소스 : 웹페이지, SNS, 위치 정보, 블로그 등
- 데이터 분석 : ICT 기술을 활용한 저장, 관리, 분석
- 가치 창출 : 경제, 의료, 금융 등 다양한 산업에서 활용
예시: 의료 분야
의료 데이터 수집 → 빅데이터 분석 플랫폼 → 분석된 정보를 바탕으로 의료인, 일반인에게 제공하여 안전한 의약품 사용 지원
예시: 금융 분야
금융기관 및 핀테크 기업이 빅데이터를 활용하여 신용평가, 금융 상품 추천, 사기 방지 등의 서비스 제공
5️⃣ 하둡(Hadoop) 개념 및 구성 요소
✨ 하둡이란?
- 방대한 양의 데이터를 여러 컴퓨터에 분산 저장하고 처리하는 오픈소스 프레임워크
- 핵심 개념 : 분산 저장과 분산 처리
✨ 하둡 주요 구성 요소
| 구성 요소 | 기능 |
|---|
| HDFS | 하둡 분산 파일 시스템 (Hadoop Distributed File System) 으로, 큰 파일을 여러 서버에 나누어 저장 |
| MapReduce | 데이터를 쪼개서 병렬로 처리하는 기술 (Map: 나누기, Reduce: 합치기) |
✨ 하둡에서의 데이터 저장 방식
- 큰 데이터를 블록 (Block) 단위로 나누고, 각 블록을 여러 서버에 복제하여 저장
- 블록은 기본적으로 64MB 씩 나누어 저장
- 복제본을 여러 개 만들어 장애가 발생해도 데이터를 안전하게 보호
✨ 하둡에서의 파일 읽기 과정
- 애플리케이션이 클라이언트에 데이터 요청
- 클라이언트가 네임노드(NameNode) 에서 데이터 위치 확인
- 네임노드가 데이터노드(DataNode) 위치를 클라이언트에 전달
- 클라이언트가 데이터노드에서 실제 데이터 가져오기
- 애플리케이션에게 전달
✨ 하둡 에코시스템 (Hadoop Ecosystem)
| 구성 요소 | 기능 |
|---|
| HDFS | 분산 파일 저장 |
| MapReduce | 분산 데이터 처리 |
| Hive | SQL 문법을 사용하여 하둡 데이터를 쉽게 조회 |
| HBase | 하둡을 위한 데이터베이스 |
| Zookeeper | 분산 환경에서 서버를 관리, 조정하는 서비스 |
6️⃣ 하이브(Hive)
- 하둡 기반 데이터 웨어하우징(DW) 솔루션
- SQL과 유사한 HiveQL을 통해 데이터를 조회
✨ 하이브 데이터 처리 과정
- 사용자가 HiveQL(SQL 과 유사) 을 이용해 쿼리를 실행
- Hive의 드라이버(Driver) 가 쿼리를 받아 처리 준비
- 컴파일러(Compiler) 가 쿼리 분석 및 실행 계획 생성
- 실행 엔진이 하둡(MapReduce, HDFS) 에서 실제 데이터를 가져와서 처리
- 처리 결과를 사용자에게 전달