뱅크샐러드 Data Discovery Platform의 시작

안녕하세요, 뱅크샐러드 Data Foundation의 Data Engineering팀 Data Engineer Jensen입니다.

뱅크샐러드의 데이터 파운데이션 조직은 데이터 기반 의사결정을 위해 존재하기에, 데이터 파운데이션의 미션은 뱅크샐러드의 제품과 데이터의 ecosystem을 만드는 것입니다.

제품과 데이터의 Ecosystem
Figure 1 | 제품과 데이터의 Ecosystem

🌏 제품과 데이터의 Ecosystem은 무엇인가요?

Ecosystem은 복잡한 네트워크 또는 상호 연결된 시스템입니다.

뱅크샐러드의 제품과 데이터의 Ecosystem을 만든다는 것은 뱅크샐러드 제품에서 발생하는 모든 데이터들을 수집 및 분석하여 뱅크샐러드 제품에 지속적으로 Impact를 하는 cycle을 의미합니다. 이러한 긍정적인 cycle을 크고 단단하게 만들기 위해서는 전 구성원들이 제품의 모든 데이터를 쉽고 편리하게 접근하며 분석할 수 있는 플랫품을 제공해야 합니다. 이미 저희 Data Engineering팀에서는 뱅크샐러드 모든 데이터를 분석 환경에서 확인할 수 있도록 단단한 데이터 파이프라인을 구축했습니다.

😧 제품과 데이터의 Ecosystem의 Pain Point가 무엇인가요?

데이터를 분석하려면 보통 목적과 가설이 있어야 합니다. 매출 지표를 만들고 싶으면 매출과 관련된 모든 테이블을 알아보고선 집계하고 대시보드를 만듭니다. 아니면 어떤 가설이 있는데 가설을 증명하기 위해서는 데이터를 확인해야 하고, 그러기 위해서는 분석 환경에서 어떤 데이터가 있는지, 확인하고 싶은 테이블이 어떤 의미를 가지고 있는지부터 이해해야 합니다. SQL이 능숙하지 않은 구성원에게 SQL이라는 것도 큰 장벽인데 각 도메인 테이블의 맥락까지 스스로 찾아보거나 분석팀에 찾아가서 물어봐야 된다면 시간도 많이 걸리고 lean하게 확인할 수 있는 업무가 불필요하게 크게 커져 버릴 수 있습니다. 그렇기 때문에 저희 팀이 전구성원에게 쉽고 편리하게 분석 환경 데이터를 접근하는 플랫폼을 제공하지만 쉽게 편리하게 분석할 수 있는 환경을 제공하지 못했습니다.

뱅크샐러드 분석 환경에는 수많은 데이터가 있고, 이 데이터들이 어떠한 형태로든 계속 변경되고 있어서 매번 sync하는데 번거로움이 있습니다. 게다가 분석 환경에 있는 모든 데이터의 knowledge가 데이터 파운데이션에 있기 때문에, 그동안 뱅크샐러드 전구성원이 원하는 데이터를 찾기 위해서는 slack 채널에 자문을 하는 방법을 택할 수 밖에 없었습니다. 그리고 BI툴 사용자 입장에서 분석 환경에 테이블과 컬럼들이 너무 많아 어디서부터 어떻게 원하는 데이터를 찾아야 되는지 모르는 문제가 있습니다.

분석 Pain Point
Figure 2 | 분석 Pain Point

분석 환경 BI Tool에 처음 들어온 구성원 vs 분석 환경 BI Tool에서 데이터를 많이 분석해본 구성원

분석 환경 BI Tool에 처음 들어온 구성원
Figure 3 | 분석 환경 BI Tool에 처음 들어온 구성원
분석 환경 BI Tool에서 데이터를 많이 분석해본 구성원
Figure 4 | 분석 환경 BI Tool에서 데이터를 많이 분석해본 구성원

뱅크샐러드 Data Engineering팀은 단단한 데이터 파이프라인만 구축하고 관리하는 팀이 아닙니다. 저희는 뱅크샐러드 전구성원에게 뱅크샐러드 제품에 데이터 기반 impact를 할 수 있는 환경을 제공하는 팀입니다. 뱅크샐러드 데이터와 BI툴을 제공하는 일이 저희 팀 업무의 Foundation입니다. 그 다음 단계는 구성원에게 뱅크샐러드 데이터와 친밀하게 만드는 것입니다.

그러므로 2021년 3분기부터 전 구성원에게 쉽고 편리하게 사용할 수 있는 분석 환경을 제공하기 위한 Data Discovery Platform의 구축과 배포를 시작했습니다.

Let's do it!
Figure 5 | 가즈아!!


🚀 Data Discovery Platform이 무엇인가요?

Data Discovery Platform은 분석 환경에 있는 모든 데이터를 편하고 쉽게 검색하고, 빠르게 이해할 수 있는 플랫폼입니다. 분석 환경에 어떤 테이블이 있는지와 함께, 그 테이블의 metadata도 볼 수 있는 것뿐만 아니라 테이블을 생성하는 책임자, 관련된 문서들과 어떤 대시보드의 지표에 활용하고 있는지, 어떤 대시보드나 Feature에 적용되어 있는지까지 관리할 수 있는 데이터 중앙 플랫품입니다.

✨ Data Discovery Platform 기대하는 주요한 기능

  1. 분석 환경 모든 테이블의 최신 명세

    분석 환경에 어떤 테이블들이 있나요? 혹시 분석 환경에 이런 정보가 있나요? 제가 XXX 찾고 싶은데 분석 환경에서 확인할 있는지 궁금합니다.

    분석 환경에 어떤 테이블이 있고 어떤 컬럼들이 있는지 그리고 각각 어떤 의미를 가지 있는지 쉽게 검색창으로 검색하여 확인할 수 있는 기능이 전구성원에게 많이 유용한 기능이라고 생각합니다.

  2. 분석 환경 모든 테이블의 최신 통계와 샘플 데이터

    분석 환경에 XXX 테이블이 어떻게 되어 있는 지 확인할 수 있나요? XXX 테이블은 언제 업데이트가 되었나요? XXX테이블의 샘플 데이터가 있어요? XXX 테이블의 XX 컬럼이 NULL/min/max 값이 얼마나 있어요?

    분석하기 전에 필요한 테이블들의 통계 정보를 쉽게 Data Discovery Platform에서 확인할 수 있는 점도 전구성원에게 중요한 기능이라고 생각합니다. 분석하려고 하는 테이블을 쿼리를 실행하지 않아도 테이블의 통계정보와 샘플 데이터로 파악할 수 있어서 더 빠르고 정확하게 쿼리를 실행할 수 있을 거라고 생각합니다.

  3. 현재 분석 환경 모든 테이블들의 여정

    XX 지표가 어떤 테이블들로 만들었나요? 전사지표 중에 비슷한 지표를 검색해서 참조하고 싶습니다. XXX 마트 테이블이 어떤 의미이고 어떤 테이블로 만들었나요?

    Data Discovery Platform으로 분석할 테이블들의 여정을 빠르고 편하게 파악하여 분석할 수 있는 기능은 전구성원에게 편하게 데이터 분석할 수 있게 가이드를 할 수 있을 거라고 생각합니다. 분석하는 사람에게 분석하고 있는 테이블들이 어디서 수집한 테이블인지, 어떻게 가공해서 적재하는 지에 대해서도 한 플랫폼으로 확인할 수 있어서 전구성원에게 여럿 채널로 물어볼 필요없이 빠르게 분석할 수 있을 거러고 생각합니다.

📚 Open Source Data Discovery Platform 조사 및 데모

저희 팀이 1주일 동안 수많은 Data Discovery Platform Open Source를 다 한번 조사하고 PoC(Proof of Concept)했습니다. 최종적으로 Linkedin에서 만든 Open Source DatahubLyft에서 만든 Open Source Amundsen의 데모를 배포하고선 구성원에게 오픈하고 투표를 받았습니다. 결과적으로 Datahub가 85%로 이겼습니다.

Datahub 선택된 이유 중에 제일 큰 이유는 사용자에게 친숙하게 느껴질 수 있는 장점입니다. 다른 플랫폼도 비슷한 기능들이 있습니다만 DataHub의 UI가 개발 외 직군에게도 쉽게 활용할 수 있다는 점이 있어서 Datahub이 압도적으로 이겼다고 생각합니다.

Datahub 데모 피드백
Figure 6 | Datahub 데모 피드백

🎬 Datahub 배포 시작

저희는 데이터 분석 환경 용도로 별도로 구축된 k8s를 사용하고 있어 Datahub Helm을 참조하며 배포했습니다. 예시로 Datahub Demo 사이트를 참조하시면 Datahub를 확인할 수가 있습니다.

뱅크샐러드의 Data Discovery Platform Architecture는 아래 그림과 같습니다.

Datahub Architecture
Figure 7 | Datahub Architecture

Datahub Ingestion

Datahub Ingestion은 이름과 같이 Data를 수집하고 Datahub에 있는 Datahub serving 단계에서 ingest, 수집한 데이터를 섭취하는 뜻입니다.

예를 들어, MySQL에 있는 모든 테이블들의 메타정보를 다 수집하여 Datahub UI에 보여 주고 싶으면 Recipe(레시피)를 작성해야 됩니다.

보통 요리를 할때 Recipe(레시피)를 참고하면서 따라하는 경우가 많습니다. Data Discovery의 Recipe도 마찬가지입니다.

어디서부터 메타데이터를 수집해야 되며 어떻게 가공하고 마지막에 어디서 보내는지에 대헤서 yaml로 선언할 수 있습니다.

MySQL to DataHub의 Ingestion 예시:

source:
  type: "mysql"
  config:
    username: datahub
    password: datahub

sink:
  type: "datahub-rest"
  config:
    server: "http://localhost:8080"

저희 Datahub ingestion은 Airflow DAG으로 관리하고 있습니다.Airflow DAG으로 만들어서 분석 환경에 있는 모든 테이블의 metadata 정보들이 Datahub에 ingest합니다. Ingest한 후에 Datahub으로 결과를 확인할 수가 있습니다.

Datahub에 Ingestion이 완료된 예시를 가져왔습니다. ap-northeast-2에 있는 AWS Glue 테이블들이 ingest되어 datahub-rest 로 보냅니다.

source:
  type: glue
  config:
    aws_region: "ap-northeast-2"
    extract_transforms: false

sink:
  type: "datahub-rest"
  config:
    server: "http://localhost:8080"

Datahub 화면

Main 페이지에서 유저라는 키워드를 검색해보면 유저와 관련된 모든 정보를 결과로 나옵니다.

Datahub 메인 화면
Figure 8 | Datahub 메인 화면

검색 결과로 temp.test_jensen 라는 테이블이 나왔고 매칭된 필드도 간략하게 확인할 수 있습니다. 이 예시에서는 Matches column description 송금 타켓 유저 여부 ex) true, false 로 확인할 수가 있습니다.

Datahub 검색 결과
Figure 9 | Datahub 검색 결과

데모 페이지에서도 예시를 하나 가져왔습니다. 여기서 테이블의 이름, 명세, 명세의 정의, 오너, 태그, 설명 등을 모두 확인할 수 있습니다.

Datahub Demo 페이지
Figure 10 | Datahub Demo 페이지

여기까지는 Datahub의 기본적인 기능입니다.

Datahub SQL Profile

기본적인 기능 외에 Datahub에서 제일 중요한 feature는 SQL Profile이라고 생각합니다. 각 테이블의 컬럼들의 통계 정보를 확인할 수 있으며 쿼리를 하지 않아도 테이블 row 수, 샘플 데이터 등을 조회 하는 것이 가능합니다.

Datahub Stats 화면
Figure 11 | Datahub Stats 화면

Datahub Lineage

이 외에도 소개하고 싶은 Datahub feature는 Lineage기능입니다. Lineage는 테이블의 여정을 연결하여 tracing할 수 있습니다. 데모 페이지에 있는 예시로 county_14d 테이블을 통해 생성한 3개의 테이블이 있습니다. 현재 county_28d, county_14d_history, state_14d 테이블들이 county_14d로 부터 만들어진 테이블들입니다. 이러한 정보들을 Lineage 에서 확인 가능합니다.

Datahub 테이블 Lineage 화면
Figure 12 | Datahub 테이블 Lineage 화면

그리고 만약에 Airflow로 pipeline을 관리하고 있다면 Airflow와 Datahub을 연결 및 설정한 후에 Airflow에서 어떤 데이터로 부터 어떤 task를 통해 어떤 데이터를 만들었고 그리고 그 다음 task가 무엇인지에 대해서도 확인 가능합니다.

Datahub 파이프라인 Lineage 화면
Figure 13 | Datahub 파이프라인 Lineage 화면

🙇‍♂️ 마치며

뱅크샐러드에서 다양한 데이터들이 많습니다. 금융 데이터부터 보험, 건강, 카드, 등등이 있는데 이제 뱅크샐러드 전구성원이 Data Discovery Platform으로 검색할 수 있습니다. 그리고 향후에 더 많은 Metadata를 Datahub에 ingest하고 추가할 예정입니다. 분석 환경 데이터의 여정을 확인할 수 있으면서 관련된 대시보드와 지표 정의를 확인할 수 있고 Feature에 반영되어 있는 Feature 테이블들이 어떤 테이블이 있는지 어떤 ML 모델로 관리하고 만들었는지에 대한 metadata를 추가하는 업무들은 Data Engineering팀의 숙제입니다.

뱅크샐러드 제품과 데이터의 ecosystem에 있는 상호 연결된 시스템을 Data Discovery Platform로 표현할 수 있도록 더 많은 노력을 기울이려고 합니다.

시간을 내주셔서 감사합니다. 🙏🏻


보다 빠르게 뱅크샐러드에 도달하는 방법 🚀

지원하기