15분
"이 사람들... 같은 사람인가요?" - 데이터 통합의 악몽
Day 1: Entity Resolution 개론
"이 사람들... 같은 사람인가요?" - 데이터 통합의 악몽
Entity Resolution & 데이터 통합 > Day 1: Entity Resolution 개론
학습 목표
Entity Resolution이 실무에서 왜 필요한지 이해한다 데이터 품질 문제의 심각성을 파악한다
"고객 데이터베이스 3개를 합쳐주세요"
월요일 아침. CDO(Chief Data Officer)가 긴급 미팅을 잡았다.
"우리 회사가 두 회사를 인수했어요. 고객 데이터베이스 3개를 하나로 합쳐야 합니다. 중복 없이, 정확하게."
데이터를 열어보니...
System A (본사)
에디터 로딩 중...
System B (인수회사 1)
에디터 로딩 중...
System C (인수회사 2)
에디터 로딩 중...
이 세 레코드는 같은 사람일까?
사람은 알지만, 컴퓨터는 모른다
| 필드 | System A | System B | System C |
|---|---|---|---|
| 이름 | 김철수 | Kim, Chul-Soo | 김 철수 |
| 전화 | 010-1234-5678 | +82-10-1234-5678 | 01012345678 |
| 이메일 | chulsoo.kim | chulsoo_kim | NULL |
| 주소 | 서울시 강남구... | 서울 강남구... | 강남구... |
정확히 일치하는 필드가 하나도 없다!
하지만 우리 눈에는 분명히 같은 사람이다.
이것이 Entity Resolution
Entity Resolution (개체 해결)
서로 다른 데이터 소스에서 동일한 실체(Entity)를 식별하고 연결하는 과정
에디터 로딩 중...
왜 어려운가?
1. 데이터 품질 문제
- 오타: "삼성전자" vs "상성전자"
- 약어: "주식회사" vs "(주)" vs "Inc."
- 형식 차이: "010-1234-5678" vs "01012345678"
2. 스키마 차이
- 필드명: "name" vs "full_name" vs "customer_name"
- 구조: "first_name + last_name" vs "name"
3. 불완전한 데이터
- NULL 값
- 부분 정보만 존재
4. 규모 문제
- 고객 100만 명 x 100만 명 = 1조 번 비교?
오늘 배울 것
- Entity Resolution 문제 유형 - 언제 필요한가?
- ER 파이프라인 - 어떻게 해결하는가?
- 문자열 유사도 - 비슷한 정도를 어떻게 측정하는가?
- Python recordlinkage - 실제로 구현해보기
CDO의 요청을 해결해보자.