보다 효율적인 데이터 관리와 지식그래프
우리가 사용하는 대부분의 데이터는 테이블 형태의 저장소에 저장되어 관리되고, 이를 활용하여 무엇인가를 하고 있다.
이러한 체계는 잘 동작하고 있고, 앞으로도 잘 동작하리라 예상된다.
그럼과 동시에 지속으로 고민하는 한가지 포인트는 "어떻게 하면 데이터를 보다 더 잘 활용할 수 있을까?" 라는 물음이 아닐까 한다.
이 물음에는 '데이터를 잘 찾을 수 있어야 하고, 찾더라도 나에게 맞는 데이터를 찾는 것'과 이 데이터를 '실제 비즈니스와 접목'을 하여 활용을 하고자 할 때 더욱 큰 고민거리로 다가온다.
데이터를 잘 활용할 수 있다는 것은 결국 "데이터를 구조화하여 관리하는 것"과 "데이터간의 통합"을 잘 하는 것에 달려 있다고 생각된다.
데이터를 구조화하여 관리
데이터를 구조화하여 관리하는 방식 중 하나는 관계형 데이터베이스를 활용하는 것이다. 지난 1970년대 이후로 데이터베이스의 역사가 지속적으로 발전해왔고, 현재에도 가장 많이 사용되고 있는 데이터베이스로서 충분히 잘 동작하고 있다. 시간이 흐를수록 정보의 양은 엄청나게 늘어나고, 늘어나는 정보들을 빠르게 담아 제공하는 역할로서 충실히 하고 있음에는 분명한다.
그러나 구조화를 하는 방식이 꼭 관계형 (테이블)만 존재할까? 이 물음에는 '아니다'라고 답할 수 있다.
데이터간의 통합
데이터의 양이 늘어남에 따라 하나의 데이터베이스에 담을 수 없게 되었고, 클라우드의 발전과 맞물려 이곳저곳 인터넷이 닿는 곳이면 어느 곳이든지 데이터를 저장하고 활용할 수 있게 되었다. 데이터의 양과 활용도가 엄청나게 증가하여 이제는 데이터에 대한 부족함(?)이 없는 세상이 되었고, 오히려 이러한 데이터간의 통합을 다시 이야기하게 된다.
현재의 데이터 관리
현재 대부분의 데이터라고 하기에는 내가 미쳐 다 알 수 없는 세상이기도 하거니와 다양한 시스템과 관리방안들이 존재하기 때문에 100% 맞다고 할 수는 없지만 적어도 내가 지금까지 경험해 온 것을 생각해보면, 아래의 그림과 같이 4가지 정도의 상황들이 존재한다.
동일한 정보에 대해서 다양한 출처의 데이터가 존재하고 같은 데이터웨어하우스(이하 DW)에 적재하고 있음에도 불구하고 여러개의 테이블 혹은 여러개의 DW에 분산하여 관리를 하고 있다. 또한 어떠한 서비스를 런칭하면서 그 서비스에 종속적인 데이터베이스를 만들어 사용을 하게 된다. 즉, 이 데이터베이스 혹은 테이블은 그것에 맞춰진 서비스에서만 사용할 수 있도록 한정되어져서 재사용을 하기가 어렵거나 재사용을 하려고 할지라도 오히려 비용이 발생하는 문제들이 수반된다.
다른 현상으로는 DW나 데이터레이크에 구축된 데이터들이 원천의 정보에 대해 업데이트가 제때 이루어지지 않아 적시성이 떨어지는 현상들이 존재하게 된다. 이미 원천의 정보는 최신의 정보로 반영되었음에도 DW를 사용하는 내부 사용자들은 옛날 정보를 가지고 분석을 하거나 서비스에 활용하고 있다. 마지막으로는 동일한 정보에 대해서 부서별로 각각 적재 요청을 함에 따라 중복데이터를 DW에 적재하거나 특정 부서에서만 활용할 수 있는 파생데이터가 만들어져서 전사적으로 활용을 할 수 없는 현상들이 존재하게 된다.
우리가 살아가고 있는 세상과 이 세상에서 나타나는 데이터들은 차원의 세계로 가져온다면 몇차원이 될까? 차원이라는 것이 존재할까?
데이터 간의 관계는 또한 어떻게 표현을 할 수 있을 것인가?
대부분의 관계형 데이터베이스는 관계라는 것을 통해 공통적인 개념으로 하나의 테이블을 만들고 테이블 간의 릴레이션을 연결하고 사용하고 있다. 특정 도메인이나 작은 영역에서는 문제가 없어 보이기도 한데, 여러가지 출처나 데이터간의 관계를 이러한 2차원적인 형태로 데이터를 담아낼 수 있을것인가 라는 물음에는 무언가 좀 더 효율적인 구조화가 필요해 보이기도 한다.
오히려 우리가 생각하는 데이터간의 관계는 시맨틱 네트워크 라는 형태의 지식표현 체계와 더 잘 어울리고 표현이 가능하지 않을까?
이러한 현상들을 개선할 수 있는 방안 혹은 기술이 존재한다.
그래프 형태의 지식표현체계인 지식그래프가 어쩌면 대안이 될 수도 있다. "어쩌면" 이라는 단어를 사용하였지만 개인적으로는 "확실히" 라는 단어를 더 선호한다.
지식그래프는 데이터를 이루고 있는 다양한 개체의 정의, 속성, 그리고 그 개체들 간의 관계를 그래프 형태로 표현한 지식체계이다.
그림 출처: https://aws.amazon.com/ko/neptune/knowledge-graphs-on-aws/
지식그래프는 인간의 사고 방식과 유사하게 개념을 생성하고 관계를 표현하게 된다. 데이터는 상호 간의 어떠한 관계를 가지게 되는데 이런 관계를 그래프 형태로 나타낸다. 또한 개념 모델과 공리적 지식을 명시적으로 담을 수 있기 때문에 주어진 사실을 명확하게 나타내고, 주어진 사실로 부터 새로운 사실을 추론해나갈 수 있는 기반을 제공하기도 한다.
데이터 통합과 관리 관점에서는 하나의 데이터가 URI라는 유니크한 식별자를 가지고 있기 때문에 같은 식별자를 통해 다양한 정보를 통합하거나 연결을 할 수 있게 된다.
이러한 지식그래프를 통해 위에서 언급한 현재의 데이터 관리 상황을 좀 더 효율적으로 개선할 수 있다.
특정 기업에 대한 데이터는 다양한 출처에서 존재하는데 이를 활용하기 위해서는 데이터를 수집하여 적재하거나 API를 통해 제공받아서 사용하게 된다. 이때 지식그래프 형태로 데이터를 활용하게 되면 동일한 기업에 대한 정보는 출처가 다양하더라도 동일한 식별자를 통해 같은 데이터로서 인식을 할 수 있고, 출처마다 각각의 데이터를 수집/적재하더라도 동일한 데이터라는 의미를 가진채로 분산 저장이 되어 활용시 같은 기업의 정보로서 사용할 수 있게 된다.
두번째로는 각각의 서비스를 위해 데이터마트를 구성하여 서비스 종속적인 데이터로 활용하는 상황에서는 데이터를 서비스를 위한 데이터로만 생각하는 것이 아니라 하나의 제품처럼 생각하여, 데이터 자체를 다른 서비스에서 활용할 수 있도록 할 수 있다. 서비스를 생겨날 때 마다 필요한 마트를 구성하는 것이 아니라, 데이터 자체를 잘 구성하여 제품처럼 공급을 하면 서비스가 생겨날 때 이 데이터를 가져다 서비스를 구성하는데 사용하는 것이 된다. 이렇게 되면 관리 측면에서도 데이터 구성과 관련된 내용, 데이터 관리 및 품질에 집중하고, 서비스는 서비스 자체로 구성하는 데이터를 신경쓰지 않고 잘 구성된 데이터를 활용하는 것에만 집중할 수 있게 된다.
세번째로는 DW나 데이터레이크에 데이터를 수집/적재하는 과정과 이를 지속적으로 현행화하는 과정이 이루어져야지만 적시성 있는 데이터를 제공할 수 있는데 원천이 되는 데이터가 지식그래프 형태로 데이터를 제공(제품으로서의 데이터)하게 되었을 때 데이터 현행화에 대한 문제에서 자유로워질 수 있게 된다.
마지막으로 데이터의 중복 적재와 사일로된 데이터는 지식그래프 형태로 데이터를 구성하고 관리를 하게 되었을 때 자연스럽게 해소가 되게 된다.
지식그래프 형태로 데이터를 관리하게 되면 서비스 측면과 데이터 활용 두 가지 측면에서 다양한 장점을 얻을 수 있다.
데이터 활용 측면에서는 데이터를 찾고 접근하고 상호운용성을 높이고 재사용할 수 있게 됨으로서 원하는 데이터를 쉽고 빠르게 찾아 활용을 할 수 있게 된다. 또한 데이터 자체에 개념적인 내용과 관계에 대한 의미가 포함되어 있기 때문에 데이터를 이해하는데도 도움이 된다.
서비스 활용 측면에서는 단면적인 데이터 사용이 아니라 데이터간 연결과 통합을 통한 다면적 데이터 사용이 가능해져서 다양한 정보 및 데이터간의 내포된 의미와 정보를 파악할수 있게 되고, 이러한 데이터를 통해 마케팅이나 리스크 탐지와 같은 서비스에서 활용을 할 수 있게 된다.
우리는 다양한 문제들을 풀어나가면서 생활하고 있고, 그러한 문제를 풀기 위해 서비스를 만들어 활용하고 있다. 이때 중요한 것이 데이터인데 실제 데이터는 다양한 관계를 가지고 있다. 그 관계가 명시적으로 드러나는 경우도 있지만, 여러 종류의 데이터를 결합해야지 비로소 보이는 경우도 있다. 우리 실생활의 다양한 문제들은 단편적인 데이터로 해결 할 수 있기 보다는 다면적인 데이터로 해결할 수 있는 것들이 많다.
이제는 데이터에 대한 접근 방식과 관리 방식을 변화시켜 접근해보는 것도 하나의 방법일 것이다. 그 방식 중 하나로서 지식그래프를 통한 데이터 관리와 접근을 하면 어떨까 한다.