티스토리 뷰

Data Discovery
- 기업이 갖고있는 방대한 양의 데이터를 원하는 방식으로 필요한 순간 '즉각적'으로 찾기란 쉬운일이 아니고, 특히 신규입사자의 경우 새로운 데이터 구조를 파악하는데 오랜시간이 걸림. (도서관에서 제목, 저자, ISBN등 정보 없이 원하는 책을 찾기가 어려운것과 같은 이치)

- 데이터 사이언스 프로세스의 약 20%를 Data discovery 에 사용하며 이 기간을 줄인다면 전체 DS프로세스 생산성 향상에 의미있음.
- 이를 기술적으로 해결하기 위해 메타데이터를 활용한다.

Metadata
a set of data that describes and gives information about other data.
데이터를 설명해주는 데이터.
- 맥락 : 사람이 이해하는데 도움을 주는 정보들. 데이터의 존재여부, 설명, 태그 등
- 행동 : 데이터가 어떻게 생성되고, 사용되는지 알려주며, 데이터 오너십, 데이터 사용자 등 정보
- 변화 : 데이터가 어떻게 변화했는지를 보여주는 데이터(스키마 변화)

데이터 디스커버리 플랫폼
- Metadata를 토대로 조직 내 필요한 데이터가 어디있는지 빠르게 검색하고, 어떤 내용인지 이해하며, 사용방법을 배울수 있도록 돕는 플랫폼.
+ 2021년 유니버스 관련 리서치 진행때 등장했던 GCP Data Catalog에 매핑, 현대카드 Meta System.

데이터 Discovery 단계에서 실제로 발생하는 질문
   - 데이터의 관한 질문이 있다면 ERD를 전부 검색하지 않는이상 주변사람들에게 물어보는 수 밖에 없음.


ㅤ→ 누구한테 접근 권한을 요청해야 하죠 ? : 데이터의 오너십과 권한 정보 역시 메타데이터의 일부가 되어야 함
ㅤ→ 이 데이터는 어떻게 생성 되었나요? 신뢰할수 있는 건가요? : 누가 만들고, 어떤 경로로 생성되었나요? 분석가가 월간으로 수작업한건가요? 회사내에서 얼마나 쓰이죠? 이 데이터의 계보는 ?
ㅤ→ 이 데이터를 어떻게 사용해야 하죠? : 어떤 컬럼들이 관련이 있나요? 어떤 테이블이랑 조인해야 하죠? 데이터를 정리하려면 어떤 필터를 써야하죠? 이 테이블을 주로 사용 하는 사람은 누군가요? 어떤 컬럼을 주로 사용하죠 ?
ㅤ→ 이 데이터가 얼마나다 리프레시 되나요? : 종종 지연된다면 얼마나 자주 일어나나요? 데이터의 기간은 얼마나 되나요?

DDP가 제공하는 기능과 새로운 Idea들
- 데이터를 검색 또는 더 똑똑한 방법들로 찾기
ㅤ→ 원하는 데이터를 찾기위한 기본 방법은 컬럼명,테이블과 컬럼 설명, 사용자가 입력한 설명이나 코멘트 등의 메타데이터를 ElasticSearch 에서 검색
ㅤ→ 많은 검색결과가 있다면 이에 대한 우선순위를 매기는게 필요함. Lyft와 Spotify의 경우는 테이블이 얼마나 많이 사용되는가로 순위를 결정. 즉, 쿼리로그를 파싱하여 테이블 사용량을 ElasticSearch의 랭킹정보로 넣음.
ㅤ→ Facebook 의 Nemo는 이걸 더 확장. 검색어를 spaCy로 자연어 파싱, 소셜그래프 검색에 사용하는 Unicorn 으로 kNN기반 스코어링등을 통해서 랭킹을 결정
ㅤ→ 또 다른 방법은 추천을 통한 것. 조직과 팀내에서 가장 많이 접근하고 사용하는 데이터를 추천

- 데이터를 스키마, 미리보기, 통계, 계보(Lineage)로 이해하기
ㅤ→ 테이블을 이해하는 기본 정보는 데이터 스키마 : 컬럼명, 데이터 타입, 설명(Description)
ㅤ→ 사용자가 읽기 권한이 있다면 데이터의 미리보기(100줄 정도)를 제공 가능
ㅤ→ 미리 계산된 컬럼 단위의 통계도 제공 : 컬럼별 Row수, Null인 Row수, 최대/최소/평균/중간값/표준편차, 고유한 Row수, 날짜 컬럼이라면 데이터의 전체 기간 범위
ㅤ→ 데이터 계보를 제공해서 앞뒤 의존성 관계도 확인 : ETL 작업(Airflow 로 스케줄링 되는)의 경우 스케줄/지연 여부등을 확인할수 있음.

- 다른 사용자의 이용형태를 통해서 데이터 사용법을 배우기
ㅤ→ 테이블을 찾고 나면, 어떻게 테이블을 이용하도록 도와줄수 있을까 ? 간단한 방법은 그 테이블과 관련된 사람들을 보여주는 것
ㅤ→ 데이터 소유자는 권한을 부여해 줄수도 있고, 자주 사용하는 사람들은 데이터에 대한 소개나 특이점을 알려줄 수 있음 : Amundsen 과 DataHub는 테이블에 사람을 엔티티로 연결하는게 가능
ㅤ→ 하지만 이렇게 그 데이터를 잘 아는 전문가만을 활용하는건 병목현상이 생길수 있으니, 추가적인 메타데이터를 연결해주는게 더 Scalable 한 방식
ㅤ→ 사용자가 가장 관련성이 높은 컬럼을 찾을수 있도록, 각 열의 사용통계를 제공하는게 가능.
ㅤ→ 또한 해당 테이블과 조인할 테이블이 어떤건지 알기 위해, 주로 조인되는 테이블 목록과 조인하는 열들을 제공하면 편리. 이런 데이터들은 쿼리 로그 파싱을 필요로 함
ㅤ→ 데이터 사용에 대한 더 자세한 정보를 제공하기 위해서는 해당 테이블에 대한 최근 쿼리를 제공하는게 가능하고, 이를 통해서 실제로 어떤 데이터를 필터링 하는지를 알 수 있음.

ㅤ→ 데이터 계보(Lineage)도 유용. 현재 테이블을 사용하는 다운스트림 테이블에 대해 알수 있고, 그걸 생성하는 쿼리도 보여줌. 이를 통해서 테이블이 다른 유스케이스에 어떻게 이용되는지를 확인 가능
ㅤ→ 이렇게 알게된 다운스트림 테이블이 내 목적과 일치할 경우 그걸 이용하면 계산/저장 비용을 줄일 수 있게됨.
ㅤ→ Twitter 의 Data Access Layer , Uber의 Databook, Netflix 의 Metacat 등이 Lineage를 지원

ㅤ→ 데이터를 실제로 사용하기 전에, 얼마나 자주 업데이트 되는지도 알고 싶어함. 데이터가 어떤 시간단위로(일/시 등) 파티션 되어있는지 명시하는 것이 도움이 됨.
ㅤ→ DDP는 Airflow 같은 플랫폼과 연계해서, 스케줄링된 ETL 작업들을 조사하고, 얼마나 걸리는지 등을 볼 수 있음.


Opensource DDP
- Datahub(LinkedIn)
   → 2020년 2월에 공개
ㅤ→ 검색, 테이블스키마, 오너십, 계보 기능 지원
ㅤ→ Dataset, User, Group 세개의 엔티티 지원. Schemas/Jobs/Metrics/Dashboards 등의 엔티티 추가 예정
ㅤ→ Hive, Kafka, RDB 메타데이터 지원 ( 내부에선 더 많이 지원하며, 더 공개될 수도 있음 )
ㅤ→ Expedia, TypeForm 등이 채택했으며 MS,Morgan Stanley, Orange Telecom, ThoughtWorks 등도 POC 중
- Amundsen(Lyft)
   → 2019년 10월에 공개
ㅤ→ 검색, 추천, 미리보기/컬럼통계/소유자/주사용자 들이 잘 표현된 테이블 상세 페이지 지원. 계보기능은 없지만 추가예정
ㅤ→ Data Quality System 과의 연동도 제공 예정 (아마도 Great Expectations - https://greatexpectations.io/)
ㅤ→ 훌륭한 커뮤니티가 있음 : BigQuery/Redshift/Apache Atlas 등의 연동등을 개발해서 기여함
ㅤ→ 15종 이상의 데이터 소스( Redshift, Cassandra, Hive, Snowflake 및 각종 RDB), Tableau,Redash, Mode Analytics 대시보드, Airflow 등과 연동을 지원
ㅤ→ 문서화도 잘 되어있고, Docker 로 로컬에서 테스트 가능
ㅤ→ Asana, Instacart, iRobot, Square 를 포함 30개 이상의 조직이 도입.
ㅤ→ 2020 7월에 Linux AI 재단의 새 인큐베이션 프로젝트로 조인.
- Metacat(Netflix)
ㅤ→ 2018년 6월에 공개
ㅤ→ 검색, 스키마 보기, 비용과 공간을 분석하는 메트릭 포함.
ㅤ→ 테이블/파티션 변경에 대한 노티 알림 기능이 있음. 비용등의 문제로 지워질때 알림을 받는게 가능.
ㅤ→ Hive, Teradata, Redshift, S3, Cassandra, RDS 연동 지원
ㅤ→ 스키마/메타데이타의 버저닝/검증 기능 작업중이라고 밝힌바 있음.
ㅤ→ 오픈소스 이긴 하지만, 문서가 하나도 없어서 도입한 회사는 없음.
- Nemo(Facebook,Meta), Databook(Uber), Marquez(WeWork), Apache Atals 사례도 존재

국내 도입사례
SOCAR, 베이글코드

시사점
단기간의 데이터 컨설팅을 통해 데이터 체계와 여러 Insight를 포함한 결과물들을 만들어낼 수 있지만, 결국 내부 DS인력, 현업들의 데이터에 대한 이해가 수반되야 하며 이를 위해서는 데이터를 잘 이해하기 위한 플랫폼의 성장이 필요하다.
이를위해 DDP는 각 사례에서 보이듯 많은 회사들이 갖고자하는 서비스이며, Universe에도 이에 해당하는 제품굼이 추가된다면 더 매력적일것으로 보인다.


댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함