컴퓨터 공부/🌠 Journey to Data field

Understanding Data Engineering 6-Data warehouses and data lakes

letzgorats 2024. 12. 8. 21:56

✅ RECAP

 

전 포스팅에서 공부한 내용을 복습해 보자.

 

- SQL

: SQL은 관계형 데이터베이스 관리 시스템(RDBMS)과 상호작용하기 위한 언어로, 영어처럼 널리 사용되며 이해하기 쉬운 문법이 특징이다.

: RDBMS는 관련된 여러 테이블(ex. Employees 테이블)을 포함하는 데이터베이스이다.

: 다수의 레코드를 한 번에 검색, 그룹화, 필터링, 집계 가능하다.

: 프로그래밍 언어로도 가능하지만, SQL이 최초로 이를 효율적으로 구현한 언어이다.

 

- 데이터 엔지니어와 데이터 사이언티스트

: 데이터베이스를 생성하고 유지 관리하며, 데이터 구조를 설계하는 역할은 데이터 엔지니어

: SQL을 사용해 데이터베이스에서 필요한 데이터를 쿼리하여 분석 및 인사이트 도출에 사용하는 역할은 데이터 사이언티스트

 

- SQL 테이블 생성 예제

: Spotflix의 직원 테이블을 예로 들어, SQL을 사용해 테이블을 생성하는 방법을 다뤘다.

CREATE TABLE employees (
    employee_id INTEGER,     -- 정수형 데이터
    first_name VARCHAR(255), -- 최대 255자 길이의 텍스트
    full_time BOOLEAN        -- 논리형 값(TRUE/FALSE)
);

INTEGER : 정수형 데이터

VARCHAR : 텍스트 필드(255자는 최대 문자 길이)

BOOLEAN : 논리 값(0: False, 1 : True)

 

- 데이터베이스 스키마와 관계

: 스키마란, 데이터베이스 내 테이블 간의 관계와 구조를 정의하는 것이다.

: Spotflix 예시

: 앨범 테이블 ↔ 아티스트테이블 : artist_id 로 연결

: 앨범 테이블 ↔ 노래 테이블 : album_id 로 연결

: 재생목록 테이블 ↔ 노래 테이블 : song_id 로 연결

 

- SQL 구현체

: SQL에는 여러 구현체(MySQL, PostgreSQL, SQLite 등)가 있지만, 대부분 유사하게 작동한다.

: 차이점은 마치 QWERTY ↔ AZERTY 키보드 또는 영국식 ↔ 미국식 영어 차이와 비슷하다.


이번 포스팅에서는 Data Lake, Data Warehouse, Database 가 각각 무엇인지 배우고, 특징을 배울 것이다. 특히, Data Lake와 Data Warehouse 개념의 차이와 역할을 정리해보자.

 

1. 데이터 레이크와 데이터 웨어하우스의 정의

데이터 레이크 vs 데이터 웨어하우스

데이터 레이크(Data Lake)

- 모든 원시 데이터(raw data)를 저장한다.

- 데이터는 다양한 소스에서 가져와 가공되지 않은 상태로 저장한다.

- 모든 유형의 데이터를 저장할 수 있다. (구조화, 반구조화, 비구조화)

- 저렴하지만 비구조적으로 저장되기 때문에 분석이 어렵다.

 

데이터 웨어하우스(Data Warehouse)

- 특정한 용도에 맞게 구조화된 데이터를 저장한다. (ex) 사용자 정보, 구독 유형, 행동 분석 데이터 등

- 최적화된 구조 덕분에 비즈니스 분석 및 의사결정에 유용하다.

- 저장 방식이 구조적이어서 데이터 처리 비용이 높을 수 있다.  

 


2. 데이터 레이크 vs 데이터 웨어하우스

특성 데이터 레이크(Data Lake) 데이터 웨어하우스(Data Warehouse)
저장 데이터 유형 구조화, 반구조화, 비구조화 모두 가능 구조화된 데이터만 저장
목적 대규모 데이터 저장, 머신러닝 및 실시간 분석 비즈니스 분석, 집계 및 요약
저장 구조 비구조적, 모델 없음 구조화된 모델 적용
비용 상대적으로 저렴 더 높은 저장 및 처리 비용 발생
분석 용이성 데이터 카탈로그 필요, 분석 난이도 높음  최적화된 분석 가능

 


3. 데이터 레이크의 데이터 카탈로그

데이터 카탈로그 : 모든 데이터 세트, 시각화 및 대시보드의 라이브러리 또는 인벤토리

데이터 카탈로그

- 데이터 레이크의 비구조적 특성을 보완하기 위해 사용된다.

- 데이터 출처, 사용 방법, 유지관리 담당자, 업데이트 빈도 등을 기록한다.

- 데이터 거버넌스(데이터의 가용성, 유용성, 무결성, 보안 관리)에 필수적이다.

※ 데이터 거버넌스 : availability, usability, integrity, security 

※ the ingestion of the data(데이터 수집) : 데이터를 한 장소에서 다른 장소로 옮기는 프로세스 

 

데이터 스왐(Data Swamp) 방지

- 데이터 레이크를 효율적으로 관리하지 않으면, 비효율적이고 사용할 수 없는 데이터 덩어리가 된다.

- 카탈로그는 이를 방지하고 데이터 분석 과정을 재현 가능하게 만들어준다.

※ data swamp(데이터 늪) : 제대로 관리되지 못해 불투명해진 데이터 레이크를 지칭

※ tribal knowledge : 문서화가 제대로 되지 않은 몇몇 관계자들만 알고 있는 지식들


 

4. 데이터베이스와 데이터 웨어하우스의 차이

데이터베이스

- 데이터가 컴퓨터에 저장되고 접근 가능한 모든 시스템을 포괄하는 일반 용어

- 데이터 웨어하우스는 데이터베이스의 한 유형


5. 결론

- 데이터 레이크원시 데이터를 저장하며, 유연성과 비용 효율성이 높은 반면 분석이 어렵다.

- 데이터 웨어하우스구조화된 데이터를 저장하며, 비즈니스 분석에 최적화되어 있지만 비용이 더 많이 든다.

- 데이터 레이크의 효율적 관리를 위해 데이터 카탈로그가 필수적이다.

- 데이터베이스데이터 웨어하우스와 데이터 레이크를 포함하는 상위 개념이다.


아래 문제를 풀어보자.

 

1. Tell the truth

So far, you heard about data lakes, data warehouses, databases, and you just saw the differences between the three.

 

Which of the following statements is true?

 

1. A data catalog is a document listing the prices of different data storage services.

2. A data warehouse is a type of database.

3. A relational database usually stores unstructured data.

4. The data lake stores well-organized, processed data that's easy to analyze.

 

Answer

더보기

2. A data warehouse is a type of database.

A "database" is a very general term, and a data warehouse is a type of database. Data warehouses also have subsets, like data marts, which are highly curated for a particular community of users, such as a specific team. Data marts are also much smaller, tens of gigabytes instead of the hundreds of gigabytes to petabytes of data that can be held in a data warehouse.


2. Our warehouse (in the middle of our street)

 

 

Although both are used for data storage, data lakes and data warehouses are used for different purposes and work in different ways.

 

Can you correctly classify the statements, depending on whether they apply to data lakes or data warehouses?

 

1. Is optimized for cost efficiency.

2. Stores raw data.

3. Can store structured, semi-structured and unstructured data.

4. Stores mainly structured data.

5. Usually stores smaller amounts of data than the other.

6. Is optimized for analysis.

 

A data lake → 

A data warehouse  

 

Answer

더보기
 

A data lake → 1,2,3

A data warehouse → 4,5,6


이상으로 데이터 엔지니어링에서 데이터 레이크와 데이터 웨어하우스를 적절히 활용하는 것은 데이터 관리와 분석의 성공 여부를 결정짓는 중요한 요소이다. 다음 포스팅에서는 데이터 파이프라인과 데이터를 처리하는 방법에 대해 다뤄보겠다.

반응형