구분 |
내용 |
데이터 플랫폼의 빌딩 블록 |
- 데이터 플랫폼의 목적
- 분석에 활용될 수 있도록 어떤 유형의 데이터든 최대한 비용 효과적인 방식으로 데이터를 수집, 저장, 처리해서 활용할 수 있도록 제공하는 것
- 계층간 느슨하게 결합돼 있는 형태의 아키텍처를 지향한다.
- 각 계층은 각가의 특정 역할을 담당하고, 잘 정의된 API를 통해 각 계층간 상호교류한다.
|
수집 계층 (Ingestion Layer) |
- 데이터를 데이터 플랫폼으로 가져오는 역할
- 관계형 데이터베이스, NoSQL 데이터베이스, 파일 스토리지, 사내 API, 타사 API 등..에 접속해 데이터를 추출하는 역할을 담당
- 유연성이 높아야 한다. >> 활용하고자 하는 데이터 소스가 다양해 지고 있음
- 대부분 오픈 소스 툴이나 사용 툴을 사용해 구현하는 경우가 많다.
- Fluentd, Logstash 등...
- 주의 사항
- 이 계층에서는 어떤 경우에도 수집되는 데이터를 수정하거나 변환해서는 안된다.
- 원시 데이터를 데이터 레이크에 보관함으로써 데이터 계통 추적 및 재처리 할 수 있도록 하기 위함
|
스토리지 계층 (Storage Layer) |
- 데이터를 저장하는 역할 >> 데이터 레이크 스토리지 계층
- 데이터의 수집 속도와 양을 언제든지 수용할 수 있도록 확장성이 뛰어나야 한다.
- 비용도 저렴해야 한다.
- 원시 데이터 형태의 데이터를 저장할 수 있어야 한다. >> 다양한 데이터 유형 대응이 가능해야 한다.
- CSV, JSON, 아브로, 파케이, 이미지, 비디오 등... 거의 모든 파일 형식 지원이 가능해야함
|
처리 계층 |
- 활용 목적에 맞게 저장된 데이터를 처리하는 역할
- 데이터 과학자 같은 전문 분석가들이 좀 더 사용하기 쉽게 원시 데이터를 어느 정도 미리 변환 >> 생산성 및 효율성 측면
- 활용 가능한 기술 프레임 워크 : 상위 수준에서 현대 프로그래밍 언어를 사용해 데이터 변환, 유효성 검사, 정제 작업을 흐름 수준으로 쉽게 프로그래밍 할 수 있도록 지원
- 아파크 스파크
- 아파치 빔
- 아파치 플링크
- 위 프레임 워크를 통해, 클라우드 스토리지로부터 데이터 읽고, 더 작은 청크로 분할(데이터 규모에 따라 필요한 경우), 유연한 클라우드 컴퓨팅 리소스들을 사용해 데이터 청크 처리를 한다.
- 데이터 처리 방식
- 배치 처리
- 데이터 수집 후 스토리지에 저장 후 처리
- 데이터의 규모가 크고 처리 시간에 민감하지 않을 경우
- 스트림 처리
- 데이터 수집 후 스토리지를 거치지 않고 처리 부터 진행
- 처리 시간 요구 사항이 초단위인 경우
|
서비스 계층 (Serving Layer) |
- 사용자나 다른 시스템에서 데이터를 활용할 수 있도록 준비
- 연계되는 시스템이 다양화 되고 각 조직별로 다른 기술 배경을 가진 경우가 많음
- 다양한 요구 사항을 대응하기 위해서 별도의 Layer 필요
- 데이터 분석가, 인공지능 연구자 : 다양한 프로그래밍 언어로 데이터에 접근 가능하도록 지원해야함
- BI Tool에서는 SQL 언어 지원이 가능해야함
|