✅ RECAP
전 포스팅에서 공부한 내용을 복습해 보자.
- 데이터 엔지니어
: 데이터 엔지니어는 데이터를 수집하고 데이터베이스에 저장하며, 데이터가 체계적으로 구성되고 분석에 용이하도록 관리한다. 이는 데이터 수집, 데이터베이스에 저장, 그리고 효율적인 데이터 검색을 위한 데이터베이스 구조 최적화를 포함한다.
- 데이터 사이언티스트
: 데이터 사이언티스트는 데이터 엔지니어가 준비한 데이터를 분석한다. 이 과정에서 데이터를 정리하고 탐색하며 시각화를 통해 인사이트를 도출하거나 모델을 구축하고 실험을 진행한다.
- Spotflix 예시
: Spotflix라는 음악 스트리밍 회사의 예시를 통해 데이터 엔지니어와 데이터 사이언티스트의 협업을 설명했다. 데이터 엔지니어 Vivian은 고객, 아티스트, 노래 데이터를 수집하고 데이터베이스에 저장한다. 이를 통해 데이터 사이언티스트 Julian은 청취 패턴을 분석하고 추천 엔진을 구축할 수 있게 된다.
- 데이터 엔지니어의 중요성
: 데이터 엔지니어는 최적화된 데이터베이스와 데이터 파이프라인을 구축함으로써 데이터 과학 활동을 가능하게 한다. 데이터 엔지니어는 Python 이나 Java 같은 소프트웨어 중심 프로그래밍 언어와 SQL 을 사용해 데이터베이스를 관리한다. 반면, 데이터 사이언티스트는 Python 이나 R 같은 분석 중심 언어와 SQL 을 사용해 데이터베이스를 쿼리(검색)한다.
그렇다면, 데이터 저장 및 처리 기술이 데이터 파이프라인의 효율성을 어떻게 더욱 향상시키는지에 대해 탐구해보자. 데이터 파이프라인은 데이터가 조직 내에서 효율적으로 이동하고 처리될 수 있도록 자동화된 시스템을 말한다. 데이터 파이프라인의 개념, 역할, 그리고 조직에서 어떻게 활용되는지 살펴보자.
1. 데이터 는 새로운 석유?
'디 이코노미스트'(영국에서 발행되는 국제 정치 경제 문화 주간지) 가 처음 "데이터는 새로운 석유다" 라는 표현을 사용했듯이, 데이터를 석유 채굴과 정제 과정에 비유해 보면 데이터 파이프라인의 역할을 쉽게 이해할 수 있다.
- 석유 추출 : 원유는 유전에서 채굴된다.
- 석유 이동 : 원유는 파이프를 통해 정제소로 이동한다.
- 정제와 분리 : 정제소에서 원유는 여러 제품(디젤, 가솔린, 나프타 등)으로 분리된다.
- 배분 및 활용 : 나프타는 플라스틱 제품의 원료로 사용되고, 가솔린은 저장소를 거쳐 주유소로 배포된다.
2. 데이터 파이프라인의 역할
데이터 파이프라인은 데이터의 흐름을 자동화하여 데이터가 필요한 위치로 이동하고, 처리된 데이터가 활용될 수 있도록 돕는다. Spotflix 라는 음악 스트리밍 회사를 예로 들어 보자.
- 데이터 수집 : Spotflix의 데이터는 모바일 앱, 데스크탑 앱, 웹 사이트 그리고 내부 시스템(HR 관리 시스템 등)에서 수집된다.
- 데이터 이동 : 수집된 데이터는 데이터 레이크로 이동한다. (데이터 레이크는 다양한 형식의 데이터를 저장하는 중앙 저장소로, 다음에 자세히 다룰 예정이다.)
- 데이터 정리 및 저장 : 데이터는 데이터베이스로 이동해 체계적으로 저장된다.
(ex)
아티스트 데이터 : 이름, 팔로워 수, 관련 아티스트
앨범 데이터 : 발매 연도, 제작자, 레이블
트랙 데이터 : 곡명, 길이, 피처링 아티스트
고객 데이터 : 사용자명, 가입 날짜, 구독 등급
직원 데이터 : 이름, 급여, 부서
각각의 데이터는 목적에 따라 정리되고, 데이터베이스에 저장된다.
- 데이터 유효성 검사 및 변환 : 예를 들어, 트랙 데이터는 올바른 파일 크기와 형식인지 확인하고, 관련 아티스트가 데이터베이스에 있는지 검증한 뒤 저장된다.
데이터 파이프라인의 장점 - 데이터 파이프라인은 다음과 같은 이점을 제공한다.
1. 효율적인 데이터 흐름 : 데이터 추출(Extracting), 변환(Transforming), 결합(Combining), 검증(Validating), 저장 작업(Loading)이 자동화된다.
2. 에러 감소 : 사람의 개입(Human intervention)을 최소화해 오류(Error)를 줄일 수 있다.
3. 시간 단축(Time it takes data to flow) : 데이터를 신속하게 처리해 분석이 가능한 상태로 만든다.
3. ETL 과 데이터 파이프라인
데이터 파이프라인 설계에서 흔히 사용하는 개념이 ETL 이다.
- E (Extract) : 데이터를 원천 시스템에서 추출
- T (Transform) : 데이터를 필요한 형식으로 변환
- L (Load) : 변환된 데이터를 새로운 데이터베이스에 저장
ETL은 데이터를 저장하기 전에 처리하는 방식을 따른다. 하지만, 모든 데이터 파이프라인이 ETL을 따르는 것은 아니다. 경우에 따라 데이터를 변환하지 않고 바로 시각화 도구나 애플리케이션(Salesforce 등)으로 전달하기도 한다.
4. 결론
데이터 파이프라인은 데이터가 조직 내에서 효율적으로 흐를 수 있도록 하는 핵심 인프라이다. 이를 통해 데이터는 수집, 처리, 저장 과정을 거쳐 데이터 사이언티스트가 분석과 모델링에 활용할 수 있는 상태가 된다.
Spotflix와 같은 사례를 통해 파이프라인이 조직에서 얼마나 중요한 역할을 하는지 알 수 있다. 데이터 파이프라인 없이는 데이터 흐름이 비효율적이고 오류가 많아질 수 밖에 없다.
아래 문제를 풀어보자.
1. It's not true
The main objective, when setting up data pipelines, is to improve the efficiency with which data flows, from its ingestion to the final users. Most of the options below are true, but one is false. Which one is it?
1. Data pipelines ensure an efficient flow of the data through the organization.
2. Data pipelines automate data extraction.
3. Data pipelines necessarily include a transformation step.
4. ETL stands for Extract, Transform, Load.
Answer
3. Data pipelines necessarily include a transformation step.
2. Pipeline
You've just seen some examples of pipelines used at Spotflix. Let's have you build one! 🎶😉
Our data engineer, Vivian, is working on building new pipelines to generate a new product: the Weekly Playlist. It's a playlist that is created by our system every day to recommend new songs that users might like based on their tastes.
In this exercise, you will find some steps. Can you order the steps correctly to help her build the pipeline generating a Weekly Playlist for each user? Let's start with one user, and build a pipeline to generate a Weekly Playlist for Julian, our data scientist.
Order the steps chronologically
1. Extract only songs these other users listen to that are of the same genre as the ones in Julian's listening sessions. These are our recommendations.
2. Find other users who listened to these some songs a lot as well.
3. Load the recommended songs into a new table. That's Julian's Weekly Playlist!
4. Load only the 10 top songs these users listened to the most over the past week into a table called "Similar profiles"
5. Extract the songs Julian listened to the most over the past month.
Answer
5. Extract the songs Julian listened to the most over the past month.
→ 2. Find other users who listened to these some songs a lot as well.
→ 4. Load only the 10 top songs these users listened to the most over the past week into a table called "Similar profiles"
→ 1. Extract only songs these other users listen to that are of the same genre as the ones in Julian's listening sessions. These are our recommendations.
→ 3. Load the recommended songs into a new table. That's Julian's Weekly Playlist!
Julian이 지난 한 달 동안 가장 많이 들었던 곡들을 추출한다.
→ 이 곡들을 많이 들었던 다른 사용자들을 찾는다.
→ 이 사용자들이 지난주에 가장 많이 들은 상위 10곡만 "Similar profiles"라는 테이블에 저장한다.
→ Julian의 청취 기록에 있는 곡들과 같은 장르의 곡들만 추출한다. 이 곡들이 우리의 추천 목록이 된다.
→ 추천 곡들을 새로운 테이블에 저장한다. 이 테이블이 바로 "Julian's Weekly Playlist" 이다!
참고로, 아마 눈치챘겠지만 연습 문제 제목들이 실제 노래 제목이라는 사실! 이건 코스 전체에서 계속된다. 그래서 이렇게 제안한다.
포스팅을 끝까지 완료하면, 그 플레이리스트를 어디서 찾을 수 있는지 알려주겠다!
이상으로, 데이터 파이프라인에 대해 배워봤다. 데이터 파이프라인은 단순한 데이터 프름을 넘어 조직 내에서 데이터를 효율적이고 체계적으로 활용할 수 있도록 하는 핵심 도구라는 것을 알았다.
'컴퓨터 공부 > 🌠 Journey to Data field' 카테고리의 다른 글
Understanding Data Engineering 5-SQL (1) | 2024.12.07 |
---|---|
Understanding Data Engineering 4-Data structures (1) | 2024.12.07 |
Understanding Data Engineering 2-Data engineers vs Data scientists (3) | 2024.11.16 |
Understanding Data Engineering 1-Data engineering and big data (4) | 2024.11.15 |
데이터 사이언티스트 & 데이터 엔지니어 로드맵 🚀 (8) | 2024.11.12 |