다양한 엔드유저를 고려하자
“지역별로 고객들을 나누고 싶어”, “20~30대 고객들이 선호하는 제품을 알고싶어”
지금 생각해보면 간단해 보이는 질문들이다. 하지만 데이터 관리가 잘 되고 있지 않던 회사들은 이런 질문을 해결하는 데 어려움을 겪었다. 이런 질문들을 좀 더 쉽게 해결하기 위해 나온 것이 데이터 웨어하우스다.
1980년대 중반에 처음 나왔을 때는 분석을 위한 데이터를 관리하는 데만 집중하면 되었다. 하지만 지금은 개발자들 외에 데이터를 필요로 하는 사람들이 다양해졌다. 요즘은 Tableau 같은 툴로 데이터에 바로 접근해 다양한 분석을 하기 쉬워졌다. 데이터 웨어하우스를 Snowflake 나 BigQuery 같은 툴을 이용해서 쉽게 구축할 수 있게 되었지만 다양한 엔드유저들이 쉽게 이해하고 사용할 수 있게 만드는 것도 중요해졌다.
Best Practice for Data
데이터는 쉽게 이해하고, 쉽게 사용하고, 믿을 수 있고, 시기적절해야 한다. 이를 위해선 데이터의 표준화가 큰 도움이 된다.
- 이름 - 유저들이 column이 무엇인지 빠르게 알 수 있게 naming convention을 따라야 한다. data type에 따라 사용하는 이름을 정하자.
- 자료 구조 - array 나 dictionary 같은 복잡한 자료 구조는 상위 layer에서 피할 수 있다면 피하자.
- ID - ID를 추적할 수 있는 수 있게 표준화해서 사용한다면 다양한 데이터 셋들을 쉽게 조인 할 수 있다.
- 효율화 - 데이터 엔지니어로서 어떤 data field 나 entity 가 바뀌고 있는지 이해해보자. 어떻게 하면 data change 가 적게 만들 수 있을지 고민해보자.
Data Layers Explained
데이터팀은 데이터가 어떻게 쓰이는지, 데이터가 무엇을 나타내는지, 어떤 형식으로 되어있는지 이해해야 한다. 좋은 데이터팀은 회사 동료들이 데이터를 효율적으로 쓸 수 있게 도와준다.
데이터팀의 Data Layer는 보통 이렇다.
- Raw - S3 bucket을 주로 사용하고 raw data의 정확성, 완전성 등을 체크할 수 있다.
- Staging - 데이터를 전처리한다. 중복 데이터, 중첩 데이터 등을 프로세싱한다.
- Core - 모든 entity와 relationship이 저장되어 있고 회사 데이터의 기준이 된다.
- Analytics - 넓은 pre-joined 테이블들이 있다. 이를 통해 유저의 실수를 줄일 수 있다.
- Aggregates - 다양한 지표, KPI 들이 대시보드의 형태로 보고된다.
*References - link