빅데이터 저장 기술
IT 위키
더 많은 작업
- Big Data Storage Technology; 빅데이터 저장 기술
- 수집한 대용량 데이터를 저장소에 옮겨 넣고(적재) 분산 환경에 보관하는(저장) 기술
데이터가 한 서버에 담기지 않을 만큼 커지면 여러 서버에 나눠 저장하고, 일부 서버가 고장 나도 데이터를 잃지 않게 복제해야 한다. 관계형 DB만으로는 이 요구를 맞추기 어려워 분산 파일 시스템과 NoSQL이 쓰인다.
| 도구 | 설명 |
|---|---|
| Flume | Source → Channel → Sink 구조로 로그·이벤트를 모아 HDFS 등에 적재하는 아파치 프로젝트 |
| Kafka | 토픽(topic)과 파티션 단위로 메시지를 저장·중계하는 분산 발행/구독 플랫폼. 생산자와 소비자를 분리한다 |
| Sqoop | RDBMS와 HDFS 사이에서 대량 데이터를 가져오고(import) 내보낸다(export). 2021년 아파치 프로젝트 활동이 종료됐다 |
| Logstash | Elastic Stack의 수집·가공 파이프라인. 입력 → 필터 → 출력 구조로 엘라스틱서치 등에 적재한다 |
| 벌크 로딩(Bulk Loading) | 한 건씩 넣지 않고 대량 데이터를 한 번에 적재한다. 로그·인덱스 처리를 줄여 속도를 높인다 |
관계형 스키마와 조인을 포기하는 대신 수평 확장(scale-out)과 유연한 스키마를 택한 DB이다.
| 유형 | 저장 구조 | 예 |
|---|---|---|
| 키-값(Key-Value) | 키 하나에 값 하나. 가장 단순하고 빠르다 | Redis, DynamoDB, Riak |
| 컬럼(Column-family) | 행 키 아래 컬럼 패밀리 단위로 저장한다 | HBase, Cassandra |
| 문서(Document) | JSON·BSON 같은 문서 단위로 저장한다 | MongoDB, CouchDB |
| 그래프(Graph) | 노드와 관계(엣지)로 저장한다 | Neo4j |
그래프 DB는 그래프 데이터베이스를 참고한다.
RDB의 ACID와 대비되는 NoSQL의 성질이다(BASE).
- Basically Available : 부분 장애가 있어도 기본적으로 응답한다
- Soft state : 외부 입력이 없어도 상태가 바뀔 수 있다
- Eventually consistent : 시간이 지나면 결국 일관된 상태가 된다
- 객체 스토리지 : 파일을 메타데이터와 함께 객체로 저장한다. 예) Amazon S3, Azure Blob Storage. 데이터 레이크의 저장소로 많이 쓰인다
- 블록 스토리지 : 가상 디스크처럼 블록 단위로 제공한다. DB 저장소에 쓴다
- 파일 스토리지 : 계층형 디렉터리로 여러 서버가 공유한다
- NoSQL 4유형과 제품 짝짓기(HBase·Cassandra = 컬럼, MongoDB = 문서, Redis = 키-값, Neo4j = 그래프)
- CAP의 세 요소와 "셋을 동시에 만족할 수 없다"는 내용, BASE와 ACID 대비
- HDFS 네임노드·데이터노드 역할, 데이터 웨어하우스와 데이터 레이크의 차이