구조화 데이터와 비구조화 데이터
SQL로 데이터를 집계하는 경우 테이블의 컬러명, 데이터형태, 테이블의 관계를 스키마로 정하게 됩니다.
이때 스키마가 명확하게 정의된 데이터를 구조화 데이터(structured data : 정형데이터)라고 합니다.
빅데이터는 반드시 구조화된 데이터만 존재하지 않습니다. 텍스트 데이터, 동영상 데이터, 음성 데이터 등등 스키마가 없는 데이터를 비구조화 데이터(unstructed data : 비정형데이터)라고 합니다.
비구조화된 원시데이터를 분산 스토리지에 저장하고 그것을 분산시스템으로 처리하는 것이 데이터 레이크의 개념이고 이런 비구조화된 데이터를 데이터 가공, 스키마 정의를 통하여 구조화된 데이터로 바꾸어 데이터 웨어하우스로 옮겨 데이터 분석작업을 할 수 있습니다.
스키마리스 데이터(반구조화 데이터, 반정형 데이터)
구조화 데이터, 비구조화 데이터뿐만 아니라 CSV, JSON, XML 등과 같이 데이터의 서식은 정해져 있지만, 칼럼 수, 데이터형태가 명확하지 않은 데이터를 스키마리스 데이터(schemaless data, : 반구조화, 반정형 데이터)라고 합니다.
MongoDB, Hbase, Redis와 같은 NoSQL 데이터베이스는 스키마리스 데이터를 효과적으로 다룰 수 있습니다.
데이터 구조화의 파이프라인
각 데이터 소스인 웹 서버, 데이터베이스 등에서 추출된 원시데이터들은 비구조화 데이터 혹은 스키마리스 데이터로 분산스토리지에 저장됩니다.
분산스토리지에 수집된 데이터는 스키마를 명확하게 정의하여 구조화 데이터로 변환합니다.
구조화된 데이터는 데이터분석을 위하여 열 지향 스토리지(MPP 데이터베이스)로 저장합니다. 이때 시간에 따라 증가하는 데이터는 팩트 테이블, 그에 참고되는 데이터는 디멘전 테이블로 취급하며 여기서는 JOIN하지 않습니다.
먼저 데이터를 구조화하여 SQL로 집계가능한 상태로 만들고 이후에 데이터 마트를 구축하게 됩니다.
열 지향 스토리지의 작성
비구조화 데이터를 읽어서 데이터를 구조화하고 열 지향 스토리지로 변환하는 과정에서는 데이터 가공과 압축에 많은 컴퓨터 리소스가 사용됩니다. 이 작업을 효율적으로 진행하기 위해 사용되는 것이 Hadoop과 Spark입니다.
Hadoop에서는 사용자가 직업 열 지향 스토리지의 형식을 선택하고 자신이 원하는 쿼리 엔진에서 그것을 집계할 수 있습니다.
'Apache ORC'는 구조화 데이터를 위한 열 지향 스토리지로 처음에 스키마를 정한 후 데이터를 저장합니다.
'데이터 엔지니어링' 카테고리의 다른 글
[빅데이터를 지탱하는 기술] 대규모 분산 처리의 프레임워크 # 3 (1) | 2023.05.22 |
---|---|
[빅데이터를 지탱하는 기술] 대규모 분산 처리의 프레임워크 # 2 (0) | 2023.05.19 |
[빅데이터를 지탱하는 기술] 빅데이터의 탐색 # 3 (0) | 2023.05.17 |
[빅데이터를 지탱하는 기술] 빅데이터의 탐색 # 2 (0) | 2023.05.17 |
[빅데이터를 지탱하는 기술] 빅데이터의 탐색 # 1 (0) | 2023.05.16 |