현재 빅데이터는 우리 삶에 깊이 녹아들게 되었고 이와 함께 데이터가 무엇인지에 대한 정의와 이해의 중요성이 더 크게 대두되고 있다. 이는 과거 해석의 어려움으로 인해 방대한 양의 비정형 데이터(Unstructured data)가 제대로 활용되지 못하던 상황이 새로운 기법과 방법의 등장으로 까다로웠던 비정형 데이터를 읽고, 저장하고, 분석할 수 있게 되었기 때문이다. 따라서 우리는 새로운 기술들을 통해 이전보다 비정형 데이터를 더 쉽게 이해할 수 있을 뿐만 아니라 분석을 통해 인사이트를 도출해낼 수 있다.
IDC에 따르면, 2024년까지 전 세계에서 생성, 캡처, 복사 및 소비되는 데이터의 총량은 매년 149 제타바이트를 넘어설 것이며 그중 상당수는 비정형 데이터가 될 것이라고 한다. 우리는 비정형 데이터 분석 기능을 구축을 통해 데이터를 활용할 필요가 있다.
우선 정형 데이터와 비정형 데이터가 무엇인지 간략하게 표로 비교하면 아래와 같다.
특징 | 정형 데이터 | 비정형 데이터 |
데이터 특성 | 양적 데이터 | 질적 데이터 |
데이터 모델 | - 사전에 정의됨 - 모델이 정의되고 일부 데이터가 저장된 후에는 모델 변경 어려움 |
- 비정형 데이터에는 특정 스키마가 포함되지 않음 - 데이터 모델이 매우 유연 |
데이터 포맷
|
제한된 수의 데이터 포맷을 사용할 수 있음 | 비정형 데이터에는 매우 다양한 데이터 포맷을 사용할 수 있음 |
데이터베이스
|
SQL 기반 관계형 데이터베이스 사용 | 특정 스키마가 없는 NoSQL 데이터베이스 사용 |
검색 | 데이터베이스 또는 데이터 세트 내에서 데이터를 검색하고 찾기 쉬움 | 비정형 특성으로 인해 특정 데이터 검색이 어려움 |
분석 | 데이터의 양적 특성으로 인해 분석이 쉬움 | 기존 소프트웨어 도구로도 분석이 어려움 |
저장 방법 | 정형 데이터에는 데이터 웨어하우스가 사용 | 비정형 데이터를 저장하는 데에는 데이터 레이크 사용 |
정형 데이터(Structured data)
우선 정형 데이터(Structured data)는 일반적으로 데이터베이스의 정해진 규칙(Rule)에 맞게 데이터를 들어간 데이터 중에 수치 만으로 의미 파악이 쉬운 데이터들을 말한다. 하지만 정형 데이터를 데이터베이스에 들어간 데이터라고 말하는 것은 잘못된 이해이다. 데이터베이스에는 음성, 비디오 등의 데이터 또한 들어갈 수 있기 때문이다.
예를 들어 Gender라는 컬럼이 있을 때 여기서 male, female이라는 값이 들어간다면 해당 값이 남자, 여자라는 것을 쉽게 인식할 수 있고, Age에 25 혹은 40과 같은 숫자가 들어가도 사람들은 쉽게 그 값을 인식할 수 있다. 하지만 Voice라는 컬럼에 음성 파일이 들어있을 때 이를 정형 데이터로 볼 수는 없다.
즉, 정형 데이터란 미리 정해 놓은 형식과 구조에 따라 저장되도록 구성하여 고정된 필드에 저장된 데이터이다. 지정된 행과 열에 데이터가 구별되어 입력되어 있으며 관계형 데이터 베이스(RDMS)의 테이블 형태로 저장된다. 백화점의 고객, 판매 및 재고 데이터를 예로 들 수 있다.
이런 정해진 형식과 저장 구조를 바탕으로 손쉽게 SQL을 이용해 데이터에 대한 부분 검색 및 선택, 갱신, 삭제 등의 연산을 수행할 수 있어 주로 정형화된 업무 또는 서비스에 사용한다. 여담으로 데이터베이스는 1970년대에 IBM이 메인프레임 데이터베이스를 지원하기 위해 개발한 언어인 SQL 사용하여 작성, 읽기 및 조작할 수 있도록 만들었는데 이 SQL은 SEQUEL(Sequence English Query Language)의 발음이 SQL과 거의 흡사하다고 해서 붙여진 이름이다.
비정형 데이터(Unstructured data)
비정형 데이터(Unstructured data)는 단순하게 정형 데이터가 아닌 모든 데이터로 볼 수 있다. 이는 정형 데이터와 반대로 형태가 없고 연산할 수 없는 데이터이다. 2025년까지 우리가 접하는 데이터의 80%가 텍스트, 오디오, 이미지 또는 동영상 형태의 비정형 데이터가 될 것으로 예상된다고 한다. 비정형 데이터는 아래와 같은 특징을 지닌다.
- 디지털 데이터로서 예측 불가능
- 상시 생성되며 항상 이동 중에 있음
- 혼합, 다중 모드 및 상호 운용 가능
- 지리적으로 분산되어 더 나은 보호 수단 제공
즉, 정해진 규칙이 없어 값의 의미를 쉽게 파악하기 힘든 데이터들이다. 텍스트, 음성, 영상과 같은 데이터가 비정형 데이터 범위에 속해있다. 이러한 비정형 데이터의 활용은 현대 빅데이터 시대에 핵심적인 역할로 볼 수 있다. 물론 빅데이터를 다룬다는 뜻의 범위가 비정형 데이터의 분석만으로 한정되는 것은 아니다. 3V에 Velocity(속도), Volume(양), Variety(다양)가 있는 것처럼 비정형 데이터는 Variety에 속하며 대용량의 정형 데이터를 함께 활용하여 인사이트를 도출하는 것이 당연하다.
비정형 데이터의 예시로는 동영상 파일, 오디오 파일, 사진, 보고서, 메일 본문 등이 있다. 이런 데이터들은 트위터, 인스타그램, 유튜브 등에서 수없이 쏟아지고 있으며 영상처리, 자연어 처리 등 여러 분야에서 수치화되며 분석되고 있다.
비정형 데이터에 가장 일반적으로 사용되는 데이터베이스는 NoSQL이다. NoSQL은 "not only SQL"의 약자로, 데이터베이스가 SQL 데이터베이스의 기능을 넘어 더 넓은 범위의 데이터를 처리할 수 있다. 다만 NoSQL 데이터베이스에는 스키마나 테이블 구조가 없으며 여기의 데이터들은 단지 함께 그룹화된 데이터 모음으로 볼 수 있다.
비정형 데이터가 중요한 것은 사실이지만 이를 더욱 가치있게 만들어 주는 라벨링 같은 지루한 과정이 필요하다. 만약 내가 혼자 열심히 어떤 비정형 데이터 처리를 위해 정의하고 분석하더라도 누군가 이 데이터를 활용하기 난해하다면 나 혼자만을 위한 데이터가 되거나 재사용하기 힘든 계륵 같은 존재가 될 수 있다.
반정형 데이터(Semi-Structured data)
반정형 데이터(Semi-structured data)의 반은 정형 데이터에 반대(inverse)되는 데이터가 아닌 반도체(Semi-Conductor)의 반이다. 다시 말해 완전한 정형이 아니라 약한 정형 데이터라는 뜻이다. 반정형 데이터는 데이터의 구조 정보를 데이터와 함께 제공하는 파일 형식의 데이터로 데이터의 형식과 구조가 변경될 수 있는 데이터이다.
예를 들어 동영상에는 동영상 해상도, 비트 전송률, FPS(초당 프레임 수), 동영상 소유자 등의 메타데이터가 포함될 수 있다. 동영상 자체는 비정형 데이터이지만 비정형 데이터와 관련된 일부 정형 메타데이터가 있는 경우 반정형 데이터라고도 볼 수 있다.
조금 더 자주 접할 수 있는 예시로 XML, HTML, JSON 등의 파일을 생각하면 된다. 반정형 데이터는 정형 데이터와 같이 테이블의 행과 열로 구조화되어 있지는 않으나 스키마 및 메타데이터 특성을 가지고 있으며 주로 XML, HTML, JSON 등의 파일 형태로 저장된다. 일반적인 DB의 형태는 아니지만 스키마를 가지고 있는 모습이다.
위 설명을 이어 생각해보면 DB의 데이터를 JSON이나 XML형태의 포맷으로 변경하는 것을 반정형 데이터로 분류할 수 있다. 하지만 이런 설명은 좀 와닿지 않는다. 일반적으로 DB는 데이터를 저장하는 장소와 스키마가 분리되어 있어서 테이블을 생성하고, 데이터를 저장한다는 매커니즘으로 되어 있다. 그러나 반정형은 한 텍스트 파일에 Column과 Value를 모두 출력하게 된다. 아래 json을 예시로 살펴보자.
json은 key-value 값으로 이루어져 있다. 위 json은 반정형 데이터 일 것이고, name은 정형 데이터이다. url은 비정형 데이터 일 것이다. 추가적으로 예시를 들면 아래와 같은 경우가 있다.
- PostpreSQL에서 위도, 경도 컬럼을 넣고 geoJSON을 넣는 부분에 해당 geoJson 데이터를 넣은 경우
=> 정형 데이터+반정형 데이터 - 이미지 데이터 및 라벨링 결과
=> 라벨링한 xml 또는 json 데이터: 반정형 데이터
=> 이미지 자체: 비정형 데이터
스키마를 미리 생성해서 만드는지 텍스트 안에 모두 다 포함이 되어 있는지를 통해 반정형 여부를 판단 후, 정형과 비정형을 가리면 좀 더 쉽게 구별할 수 있다.
참고 자료
https://www.purestorage.com/kr/knowledge/big-data/structured-vs-unstructured-data.html
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=zalesia2020&logNo=222148881355
https://needjarvis.tistory.com/502