Datahub Features
- 데이터 통합 검색
- 데이터 리니지 시각화
- 데이터셋 리니지(Dataset -> Dataset)
- 파이프라인 리니지(DataJob -> Dataset)
- 대시보드 리니지(Dashboard -> Chart)
- 영향도 분석 기능
- 데이터셋 통계 생성(인기있는 데이터셋, MAU 등)
- 실시간 데이터 관리
- 변경 이벤트 발생 시 알람, 메일 발송 기능
- 써드파티 시스템에 변경사항 동기화(스노우플레이크)
- 감사 기능
- 유저 / 그룹 단위 오너십 지정
- 엔티티별 마크다운 문서 작성 기능
- yaml 기반 메타데이터 주입
Datahub Architecture
출처: https://datahubproject.io/docs/architecture/architecture
Datahub Components
출처: https://datahubproject.io/docs/architecture/architecture
메타데이터 스토어
MySQL, Elastic Search, Spring, Kafka
메타데이터 모델
수집 프레임워크
파이썬 라이브러리, yaml형식(recipe)으로 source와 sink를 정의하여 메타데이터 주입
구성요소: source, sink, transformers(도메인, 태그, 소유자 등 정보 수정)
SDK(Python, Java)도 제공.
UI / CLI 두 가지 방식으로 메타데이터 주입
모든 대상 DB에 SELECT 권한이 있어야 메타데이터 수집 가능.
권한에 민감한 DB일 경우, information_schema에서 파일형태로 메타데이터를 뽑아 Datahub로 주입하는 방법을 사용할 수도 있음.
- Source: Oracle, S3, HDFS, Spark, Hive, Snowflake, Vertica 등 다양한 소스와의 연결제공. 대부분 추가 플러그인 설치필요. Spark의 경우, Spark application을 리스닝하는 별도의 자바 에이전트를 제공.
- Sink:
- Console
- Datahub: Rest, Kafka 두가지 싱크를 제공
- File
GraphQL API
GraphQL API를 활용하여 타 서비스에 수집한 메타데이터 제공
유저 인터페이스
React기반 웹앱 제공
고려할 점
메타데이터 주입 파이프라인 구축
Datahub UI에서 수집작업별 스케줄러 제공
Airflow와 연동하여 별도의 파이프라인 구축 가능
기존 은행 시스템과 연동(결재 시스템, 망분리, ControlM)
궁금한 것
- 데이터 통계 커스터마이징이 가능한지?
- 배포 방법
- 데이터 리니지 구성 방법?
- impact analysis?