데이터 허브 구축 – 1부

글쓴이 DATA@KU 날짜

뉴스레터 구독자 여러분 안녕하세요. 디지털 정보처 데이터 엔지니어 이수강, 한수연 입니다. 저번 호에서는 서비스가 종료된 EKU 교수학습지원시스템의 접속 로그 데이터가 어떻게 구성이 되었는지 알아본 후에 해당 데이터로 간단한 분석을 진행했었는데요. 이번 호에서는 데이터 분석보다는 저희의 주 업무인 데이터 분석을 쉽게 할 수 있도록 인프라를 구축하는 일과 관련된 이야기를 해볼 예정입니다. 야호! 먼저 교내 데이터 분석을 위한 인프라가 무엇인지 알아볼까요?

 

데이터 허브 (Data Hub)

데이터 기반의 합리적인 의사 결정의 중요성이 대두되고 있는 요즈음 데이터 분석의 중요성은 다들 인지하고 계실텐데요. 현재 학교 내에도 교육, 연구, 행정, 생활 데이터가 존재하고, 해당 데이터 분석을 통해 학교 정책을 개선하고자 하는 요구가 증가하고 있습니다.  학교 내 각 부서가 필요한 분석을 원활하게 할 수 있도록 학내 여러 곳에 산재하여 있는 데이터를 한 곳으로 모아 데이터를 표준화하여 일관된 흐름으로 제공할 수 있는 인프라 구축이 선행되어야 합니다. 이러한 교내 데이터 인프라를 저희 디지털 정보처에서는 데이터 허브라고 칭하고 있습니다!

[그림 1] KU 데이터 허브

 

데이터 허브가 필요한 이유는?

세계적 기업의 BI (Business Intelligence) 및 데이터 분석 전문가 500명을 대상으로 한 “2020 글로벌 엔터프라이즈 분석 현황” 보고서에 의하면 조직의 94%가 데이터 및 분석이 디지털 전환과 비즈니스 성장에 중요하다고 믿고 있음에도 데이터 중심 문화를 구축하고 있지 않다고 말하고 있습니다. 사실 교내 상황도 크게 다르지 않은데요.

교내에서는 데이터 분석이 요구되는 시점에 분석 담당자 (데이터 수요자)가 해당 데이터에 대한 권한이 있는 부서의 업무 담당자 (데이터 공급자)에게 데이터를 요청해야 합니다. 그러나 해당 데이터를 관리하는 부서의 업무 담당자는 맡은 주 업무가 있기 때문에 데이터 요청에 대하여 빠른 대응이 어려운 상황인데요. 또한, 업무 담당자는 해당 요청의 데이터 분석목적과 요구하는 데이터와의 관계도 판단해야 하므로 시간 소요가 상당합니다. 결과적으로 빠른 데이터 분석이 불가능하고, 그에 따라 데이터 기반 의사 결정은 당연히 늦춰질 수밖에 없습니다.

데이터 공급자는 요청받은 데이터를 추출하기 위해 기존 데이터베이스에서 필요한 데이터 테이블의 위치 정보를 확인한 후에 데이터 테이블들을 조인 (Join)하는 작업을 수행합니다. 저번 호에서도 조인이 등장했었는데요! 조인이란 테이블이나 데이터베이스를 연결하여 데이터를 검색해 추출하는 방법을 말합니다. 데이터 테이블 추출에 그치는 것이 아니라 데이터 공급자는 추출된 데이터 테이블을 데이터 사용자가 바로 사용할 수 있도록 데이터 분석목적을 이해한 후에 전처리 작업까지 수행해야 합니다. 전처리 과정이 수행된 데이터는 데이터 사용자에게 전송되지만, 전처리 완료된 시나리오별 데이터가 기존 데이터베이스에 저장되지 않기 때문에 새로운 사용자가 같은 데이터를 요청할 때마다 데이터 공급자는 위의 일련의 행위를 다시 반복해야 합니다. 또한, 시간 흐름에 따라 테이블에 데이터가 추가되거나 데이터 원본의 변화가 있으면 데이터 추출부터 전처리 과정을 다시 반복해야 하는 상황이 발생할 수도 있습니다.

최근 IoT (Internet of Thing) 및 문서 데이터 등 정형화되지 않은 데이터 저장의 수요가 있음에도 불구하고 기존 교내에서 사용하고 있는 데이터베이스는 정형화된 데이터만을 처리할 수 있는 구조입니다. 기존의 정형화된 데이터와 비정형 데이터를 하나의 데이터베이스에 동시에 저장하여 처리하는 방법에는 한계가 있어서 비정형 데이터를 저장할 수 있는 추가적인 데이터 웨어하우스의 필요성 또한 증가하고 있습니다.

 

데이터 허브의 방향성

[그림 2] 데이터 허브 사용 구조도

 

 앞에서 언급한 기존 시스템의 한계점을 극복하기 위해 고려대학교에서는 데이터 허브를 구축하고, 개선해가는 작업을 하고 있습니다. 한계점을 고려했을 때 고려대학교 데이터 허브가 가져야 할 방향성을 정리해볼까요?

1. 데이터 수요자는 데이터 허브를 통해 빠르게 데이터에 접근이 가능해야 함
2. 권한 관리가 가능하여 권한별 데이터 접근 및 추출이 가능하여야 함
3. 데이터는 분석에 바로 사용될 수 있도록 기본적인 전처리가 수행되어야 함
4. 다양한 데이터 수요자 및 공급자의 편의를 위해 데이터 표준화 작업이 진행되어야 함
5. 시나리오별로 추출된 데이터 테이블은 다시 데이터 웨어하우스로 저장되어야 함
6. 원본 데이터가 수정 및 추가됨에 따라 추출된 데이터 테이블도 자동 업데이트되어야 함
7. 정형 및 비정형 데이터가 모두 데이터 웨어하우스에 저장될 수 있어야 함

 

데이터 허브의 구조는?

구축된 데이터 허브는 그림 3과 같이 크게 마이그레이션 모듈 (Migration module), 데이터 웨어하우스 (Data Warehouse), 그리고 서비스 모듈 (Service module)로 구성되어 있습니다.

[그림 3] 데이터 허브 구조

 데이터 소스 (기간계 데이터베이스 (DB), 외부 API, 여러 장비에서 발생하는 로그 등)는 마이그레이션 모듈을 거쳐 정제되고, 전처리 된 데이터는 데이터 웨어하우스로 전송 및 적재됩니다. 데이터 웨어하우스에 저장된 데이터는 서비스 모듈을 통해 데이터 분석을 위한 애플리케이션으로 전송됩니다.

마이그레이션 모듈은 기존의 데이터베이스 또는 시스템 파일에 저장된 데이터를 하나의 데이터 웨어하우스로 통합하기 위해 데이터 추출, 변환 및 적재 (ETL, Extraction, Transform, Loading) 과정을 수행합니다. 데이터 허브의 마이그레이션 모듈은 로그스태시 (Logstash)와 마이그레이션 서버 (Migration server)로, 총 2개의 서버가 동작 중입니다. 데이터 웨어하우스는 기간계 시스템의 데이터베이스 등에 축적된 데이터를 공통의 형식으로 변환해서 관리하는 데이터 저장소를 말합니다. 구축된 데이터 웨어하우스는 postgreSQL과 엘라스틱서치 (Elasticsearch) 저장소로 구성되어 있습니다. 마지막으로 서비스 모듈은 비즈니스 로직 (서비스)을 사용자에게 제공하는 역할을 수행하는데요. 현재 웹 서버와 API 게이트웨이로 구성되어 있습니다.

이렇게 데이터 허브는 여러 곳에서 발생하는 다양한 데이터를 데이터 허브가 가지고 있는 세 개의 모듈을 통해 데이터가 필요한 곳에 제공하는 역할을 수행합니다.

 

데이터 허브 구축 1부를 마치면서

이번 호에서는 데이터 허브가 무엇인지, 왜 필요한지, 또 어떤 구조로 구성되어있는지에 대해서 알아보았습니다. 데이터 허브의 구조에 대한 설명이 간단했기 때문에 좀 더 자세히 알고 싶으신 분들이 많을 것 같습니다. 그래서 다음 호에서는 데이터 허브를 구성하는 마이그레이션 모듈, 데이터 웨어하우스, 그리고 서비스 모듈에 대해서 조금 더 깊이 있게 이야기를 나눠보도록 하겠습니다. 다음 호에서는 데이터 허브 구축 2부로 찾아뵙겠습니다. 읽어주셔서 감사합니다.

데이터Hub 데이터 엔지니어 이수강(sukanglee@korea.ac.kr)

데이터Hub 데이터 엔지니어 한수연(syhan09@korea.ac.kr)

 

해당 글에 대한 별점을 선택해주세요.

카테고리: 뉴스레터