7. 7
데이터 팀이 생겼다!
옛날 옛날 한 옛날에...
야생의 Data Engineer이(가)
채용되었다!
아...몇몇 분석들은 데
이터가 없어서….
카테고리 고도화,
뱅크샐러드 평균 계좌 잔액,
평균 카드 사용 금액,
연동된 상품 개수,
데모그래픽별 연동 현황
분석 해 주세요!
8. 8
데이터 팀이 생겼다!
옛날 옛날 한 옛날에...
데이터, 유혈사태, 성공적
카테고리 고도화,
뱅크샐러드 평균 계좌 잔액,
평균 카드 사용 금액,
연동된 상품 개수,
데모그래픽별 연동 현황
분석 해 주세요!
9. 9
데이터 인프라가 있긴 있었는데….
‘금융 비서’라는 서비스를 제공하기 위해 사용자의 데이터를 기반으로 계산이 필요
데이터팀은 계산 전에 모인 데이터를 이용하여 분석을 시작했습니다.
옛날 옛날 한 옛날에...
10. 10
데이터 인프라가 있긴 있었는데….
옛날 옛날 한 옛날에...
카드 DB
예금 DB
보험 DB
증권 DB
id : 12345,
card : [
card1,
card2
],
account : [
account1
account2
],
insurance : [
insurance1
],
stock : [
stock1
]
id : 12345
11. 11
데이터 인프라가 있긴 있었는데….
옛날 옛날 한 옛날에...
사용자의 데이터는 MongoDB에 차곡차곡 쌓이고,
12. 12
데이터 인프라가 있긴 있었는데….
옛날 옛날 한 옛날에...
사용자의 데이터는 MongoDB에 차곡차곡 쌓이고,
Production과 Development는 당연히 분리가 되어 있었지만,
Production
Development
13. 13
데이터 인프라가 있긴 있었는데….
옛날 옛날 한 옛날에...
사용자의 데이터는 MongoDB에 차곡차곡 쌓이고,
Production과 Development는 당연히 분리가 되어 있었지만,
분석용 DB가 없어요…..
17. 17
데이터 추출을 해보자!
Production에 조심스럽게 쿼리를 날려봅니다.
1. 복잡한 쿼리를 조심스럽게 날려본다.
2. 앗, Index가 걸려있지 않다?!
3. IOPS가 상승한다?!
옛날 옛날 한 옛날에...
18. 18
데이터 추출을 해보자!
Production에 조심스럽게 쿼리를 날려봅니다.
1. 복잡한 쿼리를 조심스럽게 날려본다.
2. 앗, Index가 걸려있지 않다?!
3. IOPS가 상승한다?!
4. ?????
옛날 옛날 한 옛날에...
19. 19
데이터 추출을 해보자!
Production에 조심스럽게 쿼리를 날려봅니다.
1. 복잡한 쿼리를 조심스럽게 날려본다.
2. 앗, Index가 걸려있지 않다?!
3. IOPS가 상승한다?!
4. ?????
5. PROFIT!!!?!
옛날 옛날 한 옛날에...
20. 20
데이터 추출을 해보자!
Production에 조심스럽게 쿼리를 날려봅니다.
1. 복잡한 쿼리를 조심스럽게 날려본다.
2. 앗, Index가 걸려있지 않다?!
3. IOPS가 상승한다?!
4. ?????
5. PROFIT!!!?!.......이 아닌 DB 장애
옛날 옛날 한 옛날에...
실제로 서비스 장애가 일어났었다고…..합니다
…..
21. 21
데이터 추출을 해보자! - 희망(AWS)편
그렇다면 어떻게 해야 원하는 데이터를 빠르고 편하게 그리고 안전하게 뽑을 수 있을까?
옛날 옛날 한 옛날에...
22. 22
데이터 추출을 해보자! - 희망(AWS)편
그렇다면 어떻게 해야 원하는 데이터를 빠르고 편하게 그리고 안전하게 뽑을 수 있을까?
옛날 옛날 한 옛날에...
먼저 스키마를 정의 하면
테이블처럼 쿼리를 실행할 수 있어!
23. 23
데이터 추출을 해보자! - 절망(현실)편
MongoDB는 NoSQL document base DB
RDB에서 얘기하는 Column의 개념이 다름
옛날 옛날 한 옛날에...
- 카드
- 카드사
- 카드사 id
- 카드사 명
- 카드 명
- 발급일
- 만료일
- 예금
.
.
.
사용자 자산 데이터
24. 24
데이터 추출을 해보자! - 절망(현실)편
기존 데이터 스키마 += 새로운 자산 타입 스키마
옛날 옛날 한 옛날에...
- 카드
- 카드사
- 카드사 id
- 카드사 명
- 카드 명
- 발급일
- 만료일
- 예금
.
.
.
사용자 자산 데이터 - 배포 전
- 카드
- 카드사
- 카드사 id
- 카드사 명
- 카드 명
- 발급일
- 만료일
- 예금
- 보험
- 보험사
- 보험사 id
- 보험사 명
- 연금
.
.
.
사용자 자산 데이터 - 배포 후
31. 31
고객의 요구
- 뱅크샐러드를 통해 저장되는 여러 데이터를 원활하게 분석하고 싶음
- 가공된 데이터를 서비스에 적용하고 싶음
- 여러 서비스에서 다양한 지표들을 보고 싶음
옛날 옛날 한 옛날에...
한계
- 모든 데이터를 한번에 다 적재할 수는 없음
- 보안상의 문제가 되는 데이터는 보안팀 검토 + 암호화 등이 필요
- Seoul region에서 제공되는 서비스만 사용 가능 😭
- 해달라는 대로 다 해주면 읍읍…….
39. 39
실시간 적재를 위한 선택
- Lake에는 실시간(nearly realtime)으로 데이터가 적재되도록 함
- 급하게 최신 데이터를 추출해야 하는 경우
- 서비스단의 오류를 검출하고자 하는 경우 (거의 없음)
데이터 퍼올리기
- Kinesis Stream
- Kinesis Firehose
- Kinesis Analytics
41. 41
Amazon Kinesis Firehose
데이터 퍼올리기
Transform data with Lambda
Format converting
Compression
Encryption
데이터를 S3, Redshift, Elasticsearch(Amazon ES) 및 Splunk 등의 대상으로 전송하기 위한 완전
관리형 서비스입니다.
47. 47
뱅크샐러드 데이터 웨어하우스
- 데이터 레이크에 쌓이는 양이 많으므로 EMR로 처리해서 S3에 적재
- 데이터의 타입에 따라 일단위, 월단위로 웨어하우스 생성 주기를 다르게 가짐
- Row base에서 Column base로 포맷 변경
- 데이터 정형화
데이터 가공하기
48. 48
웨어하우스 생성을 위한 선택
Amazon Elastic Map-Reduce(EMR)
AWS에서 Apache Hadoop 및 Apache Spark와
같은 빅 데이터 프레임워크 실행을 간소화하는 관
리형 클러스터 플랫폼
데이터 가공하기
49. 49
데이터 가공하기
- 첫번째 생성에 한하여 기존 DB 데이터가 필요
- 차회부터는 데이터 웨어하우스 + 데이터 레이크 = 데이터 웨어하우스
데이터 가공하기
Data warehouse origin
Insert Update Delete
Data warehouse new
50. 50
데이터 가공하기
- 첫번째 생성에 한하여 기존 DB 데이터가 필요
- 차회부터는 데이터 웨어하우스 + 데이터 레이크 = 데이터 웨어하우스
ex) 매일생성되는 warehouse의 경우
데이터 가공하기
6/11
Warehouse
Lake
6/12 6/13
CUD operations
53. 53
데이터 마트?
- 고객의 니즈에 맞춰 마트를 디자인
- 하나의 주제에 대해서 마트를 생성
데이터 납품하기
Data warehouse
사용자 은행 계좌 관련
Data mart
사용자 신용 등급 관련
Data mart 사용자 연금 관련
Data mart
사용자 카드 사용 관련
Data mart
54. 54
마트 생성 프로세스
데이터 납품하기
사용자 별로
소유하고 있는 카드 당
매달 사용금액을 보고 싶어
요.
음...그럼 이런이런 데
이터가 필요하겠군!
만들어 주세요!
Data lake 생성
Data warehouse 생성
Data mart 생성