해당 내용은 Datacamp의 Data engineering track을 정리했습니다.
Data engineering for everyone의 chapter 2에 대한 내용입니다.
해당 포스팅에는 아래의 내용을 포함하고 있습니다.
- 데이터의 종류(정형, 반정형, 비정형)
- SQL
- Data warehouse, data lake
1. Data structures
가장 먼저, 정형 데이터는 쉽게 검색하고 구성할 수 있습니다. 열과 행으로 이뤄진 스프레드시트와 같은 엄격한 구조에 따라 입력됩니다. 각 열은 텍스트, 숫자, 논리 값 등 특정 유형의 값을 사용합니다. 이러한 정형 데이터는 관계를 표현하기 쉽습니다. 정형 데이터는 약 20% 정도의 비중을 차지하고, 각 데이터에 접근하거나 수정과 같은 작업을 수행할 때에는 SQL이라는 Structured Query Language를 활용해야 합니다.
반정형 데이터는 정형 데이터와 유사하지만 유연한 특징을 가지고 있습니다. 반정형 데이터는 NoSQL 데이터베이스에 저장되며, 대표적으로는 JSON, XML, YAML 파일이 있습니다. 정형 데이터의 경우 좋아하는 아티스트를 받을 수는 있으나, 사람마다 좋아하는 아티스트의 수가 다를 수 있습니다. 이러한 경우 가변적 요소를 반영할 수 있는 방법이 반정형 데이터입니다.
비정형 데이터는 우리 주변에서 흔히 볼 수 있는 행과 열 형식으로 포함될 수 없는 데이터를 말합니다. 그렇기 때문에 검색하고 구성하기가 어렵습니다. 대표적으로는 텍스트, 음성, 사진, 비디오 등이 비정형에 포함됩니다. 비정형 데이터들은 데이터웨어하우스나 데이터베이스에도 저장이 가능하지만 보통 데이터 레이크에 저장합니다. 이 부분에 대한 내용은 3번째 강의에서 설명합니다. 최근에는 AI 기술을 활용해서 비정형 데이터로부터 다양한 문제들을 해결하고 있을 만큼 중요한 데이터입니다.
2. SQL databases
데이터 엔지니어링의 기본이 되는 언어인 SQL입니다. SQL은 RDBMS에서 선호되는 언어입니다. SQL은 2가지 장점이 존재합니다. 한 번에 많은 레코드에 접근할 수 있고 이를 그룹화, 필터링, 집계를 할 수 있습니다. 또한 영어를 활용하는 언어이기 때문에 이해하고 사용하기가 쉽습니다. 데이터 엔지니어는 데이터베이스를 만들고, 유지할 때 SQL 언어를 활용하고, 데이터 사이언테스트들은 정보를 얻기 위해서 SQL 언어를 활용합니다.
데이터베이스는 많은 테이블로 구성됩니다. 데이터베이스 스키마는 테이블이 어떤 구조를 가졌는지, 어떤 관계를 가지고 있는 지 등을 정의한 구조입니다.
3. Data warehouses and data lakes
이번 강의에서는 데이터 웨어하우스와 데이터 레이크가 어떤 차이가 있는 지에 대해 이야기합니다.
Data Lake | Data warehouse | |
저장 상태 | 가공하지 않은 상태 | 활용하기 위해 가공한 상태 |
데이터 크기(단위) | Petabytes | Data Lake에 비해 작음 |
저장하는 데이터 유형 | 정형, 반정형, 비정형 | 정형 |
비용 | 비교적 효율적 | 구조 변경 시 비용 증가 |
활용하는 직군 | 데이터 사이언티스트 | 데이터 분석가, 비즈니스 분석가 |
기타 특징 | Big data, 실시간 분석 | Ad-hoc, read-only queries |
데이터 카탈로그는 데이터 레이크의 구조를 보완해주는 역할로 만드는 것이 좋습니다. 데이터 카탈로그는 데이터가 어디에서 생성되었는지, 어디서 사용되는지, 누구로부터 얻어진 데이터인지, 얼마나 자주 업데이트가 되는지 등을 확인할 수 있습니다. 데이터 카탈로그는 데이터 거버넌스(가용성, 유용성, 무결성, 보안성 등)를 위한 수단으로 좋습니다. 또한 데이터 카탈로그는 예기치 않은 일이 발생했을 때, 프로세스의 재현성을 보장해줄 수 있습니다. 만약, 데이터 카탈로그가 없다면 데이터 늪(최종 사용자가 수용하기 어려울 만큼 난잡하고 거대한 데이터 저장소)이 될 수 있습니다. 이처럼 데이터를 참조하는 데이터 카탈로그를 만들면 신뢰성, 자율성, 확장성, 속도를 얻을 수 있습니다.
데이터베이스는 컴퓨터에 저장되고 접근되는 조직화된 데이터들을 일반적으로 정의한 용어입니다. 데이터 웨어하우스는 데이터베이스의 한 종류입니다.