데이터 저장소의 개념은 계속해서 발전해오고 있습니다.
특히, 빅데이터의 발전에 따라 용도와 목적에 따른 데이터 저장소의 개념이 계속해서 새롭게 생겨나고 있는데요
저같이 백엔드 공부를 하고 있는 분들은 데이터베이스의 개념에만 익숙하실텐데요... (아니면 말구)
오늘은 대표적인 데이터 플랫폼인 데이터베이스 / 데이터 웨어하우스 / 데이터레이크에 대해서 알아보도록 하겠습니다.
데이터베이스
먼저, 데이터베이스
란 사용자에게 트랜잭션 데이터를 저장, 회수할 수 있도록 하는 기술입니다.
트랜잭션이란 데이터를 안전하게 처리하는 기술 입니다.
간단한 예시를 통해 트랜잭션에 대해 이해해볼까요?
먼저 고객 A가 고객 B의 계좌로 100만원을 이체하려고 합니다. 이 과정에서 데이터베이스는 아래와 같은 트랜잭션이 실행됩니다.
START TRANSACTION;
UPDATE accounts
SET balance = balance - 1000000
WHERE account_id = 'A';
UPDATE accounts
SET balance = balance + 1000000
WHERE account_id = 'B';
IF (SELECT balance FROM accounts WHERE account_id = 'A') < 0 THEN
ROLLBACK;
ELSE
COMMIT;
END IF;
이 코드는 START TRANSACTION
명령어로 명시적으로 트랜잭션을 실행하는 SQL입니다. A와 B계좌의 잔액을 갱신하는 UPDATE
문이 실행된 후, 잔액이 음수가 되지 않는지 확인하는 조건문을 통해 데이터 베이스의 갱신을 COMMIT
하거나 ROLLBACK
시킬 수 있죠.
이처럼 데이터베이스는 트랜잭션을 비롯한 여러 관계, 제약조건, 함수형 기능등을 통해 데이터 정합성을 지키면서, 비즈니스 로직을 지키면서 데이터를 관리할 수 있도록 도와주죠.
이 높은 가용성이 있기 때문에 저희같은 개발자들은 데이터베이스에 데이터를 저장하고 활용합니다. 비즈니스 로직과 접목되어있는 데이터들은 전부 데이터베이스에 저장하곤 하죠.
데이터베이스의 종류로는 MySQL
, ORACLE
, PostgreSQL
등이 있습니다.
데이터 웨어하우스
데이터 웨어하우스란 조직의 다양한 출처로부터 수집된 데이터를 통합 정리 저장하는 시스템입니다.
데이터베이스에 저장된 데이터들 뿐만아니라 여러가지 성능 지표들 이나 트래픽들 등 여러 출처를 통해 데이터를 수집하여 데이터 웨어하우스에 분할 및 축적 합니다. (이 과정을 ETL 이라고 합니다.)
그리고 DBA와 같은 포지션의 엔지니어들이 이 비정형 데이터를 활용하기 위해 파이썬과 같은 스크립트 언어를 활용하여 데이터를 분석 및 통계하여 유의미한 지표를 냅니다.
그리고 조직은 이 지표를 통해 중요한 의사결정을 내리게 되는 것이죠.
과거에는 이러한 데이터를 저장할 때에도 데이터베이스를 사용해왔습니다.
저희가 잘 아는 Microsoft SQL Server
, ORACLE
같은 데이터베이스에 이런 데이터들을 저장하고 활용해왔죠.
하지만 데이터가 커지면 결국엔 비용도 비싸집니다.
특히 빅데이터가 발전함에 따라 조직에서는 저장하고 관리해야하는 데이터들이 기하급수적으로 늘어나게 되었고
또 구조화되지 않은 비정형 데이터를 처리하는데에도 한계가 있습니다.
데이터 레이크
빅 데이터 기술이 상용화 되면서 기업들은 너도나도 여러가지 데이터들 이벤트 데이터 등등 여러 유의미한 데이터들을 함께 저장하고 싶었습니다.
사용자가 어떠한 선호를 가지고 어떤 경로를 통해 서비스를 사용하게 되는 지 등 여러가지 정보를 얻어 사업에 활용하고 싶은 것이죠.
이러한 데이터는 더욱더 정형화시켜 관리하기 어려운 비정형 데이터입니다.
또 기존의 데이터 저장소를 훨씬 넘어서는 방대한 데이터 저장 용량이 필요해지죠.
따라서 이러한 정보를 전부다 하나의 저장소로 모이게끔 하는 분산형 파일 시스템이 제시되었는데 이것이 데이터 레이크입니다.
데이터레이크는 데이터의 유형이나 구조에 관계없이 모든 데이터를 저장할 수 있는 유연성과 확장성을 제공합니다.
그래서 대규모 데이터를 더욱 효과적으로 저장하고 활용할 수 있게 되는 것이죠.
기존의 데이터 웨어하우스와 또 크게 다른 특징이 클라우드 서비스를 활용해서 비용을 감면시킨다는 점인데요, 이를 통해 기존 DB의 비용적인 문제를 줄이고 기업 입장에서 빅데이터를 저렴하게 저장할 수 있게 되었습니다.
예를 들어, AWS S3
나 Azure Data Lake
, Google Cloud Storage
, HDFS
가 있습니다.
데이터 저장의 문제는 클라우드 서비스를 통해 어느정도 해소 하였지만 문제는 이 데이터를 다시 어떻게 회수하여 활용할 것인가 입니다.
이러한 문제를 해결하기 위해 SnowFlake와 같은 클라우드 기반 데이터 웨어하우스 서비스가 등장하였습니다.
'Computer Science > Data 📊' 카테고리의 다른 글
DB의 트랜잭션 (0) | 2024.05.16 |
---|
안녕하세요, 저는 주니어 개발자 박석희 입니다. 언제든 하단 연락처로 연락주세요 😆