티스토리 뷰

Study/AI

[Big Data] Data Cleaning & Integration

생각많은 소심남 2015. 7. 26. 00:21

 전에도 잠깐 이야기했었는데, 요즘 MIT에서 하는 Tackling the Challenges of Big Data 라는 과목을 듣고 있다. 비싼돈 주고 듣는 수업이라서 나름 준비도 하고, 녹화도 해가면서 모르는 내용은 다시 보고 있는데, 생각보다 빅데이터에 관한 포괄적인 개론을 다루고 있어서 많은 걸 배우고 있다. 어떤 글에서도 봤는데, 사람들 사이에서 아직도 빅데이터나 사물인터넷에 대한 개념이 아직까지는 뚜렷하지 않은 듯하고, 나역시 정확히 뭐다 라고 정의하기는 참 힘든 부분이 있었는데, 그래도 이 강의를 들어보니까, 빅데이터와 관련해서 어떤 연구가 진행되고 있고, 어떤 기법들이 사용되고 있는지에 대해서 대충 가늠할 수 있는 듯 했다. 그 중 한 내용을 잠깐 요약을 해보고자 한다.


 지금 듣고 있는 강의는 Michael Stonebraker 교수가 진행하는 Data Cleaning과 Integration에 관한 내용이었다. 빅데이터로 넘어오면서 사용자, 또는 시스템이 다루는 정보량 자체는 과거에 비해서 엄청나게 커졌다. 물론 이를 처리하는데 필요한 시스템 자원도 덩달아서 커졌다. 문제는 과연 그 정보량 자체가 과연 믿을 수 있는가에 대한 여부다. 이 정보가 옳지 않고, 뭔가에 의해서 잘못된 정보가 담겨있을 경우에는 어떻게 처리해야 될 것인가를 고민해봐야 한다. 강의에서는 이런 예시를 제공했다. 

 


위의 정보는 Scout라는 사이트에서 특정 장소에 대한 정보를 뽑은 결과이다.(참고로 Scout는 Goby라는 big data Framework 기반으로 만들어진 위치정보 제공 서비스이다.) 이 서비스를 이용하면 다른 사용자가 이 장소에 대한 평점과 정보를 알 수 있게 된다. 보통 이런 사용자가 직접 평점을 매기는 시스템은 커다란 맹점을 가진다. 바로 사용자에게 정보 제공을 의존한다는 것이다. 만약 사용자가 잘못된 정보를 제공하게 된다면 분명 피해를 보게 될 것이다. 가령,

 


이렇게 같은 곳에 대한 정보도 경도와 위도를 잘못 입력함으로써 다른 정보가 출력될 수 있다는 것이다. 

또 이런 경우도 있다. 만약 데이터를 수집했는데 각각의 데이터가 나타내는 요소가 다를 수 있다. 예를 들어서 어떤 데이터는 경도와 위도를 포함하고 있지만, 사용자 평에 대한 정보를 담고 있지 않고, 또 다른 데이터는 사용자 평이나 전화번호 웹사이트에 대한 정보는 담고 있지만, 지도상에서 표현할 경도와 위도 정보를 가지고 있지 않다. 이 경우에 사용자에게 완벽한 정보를 제공하려면, 당연히 정보를 하나로 뭉치는 게 필요하다.

 이런 경우를 위해서 분명 정보를 가공하는게 필요할 것이다. 그 많은 데이터중에서 대부분이 가리키는 것과 잘못된 정보를 분리하는 작업(Data Cleaning)이 필요할 것이고, 바로 위의 예시처럼 각각의 다른 정보를 하나로 뭉치는 작업(Data Integration)도 역시 필요하다.

 강의에서는 이 작업들을 Stanford에서 만든 Data Wrangler(http://vis.stanford.edu/wrangler/) 라는 툴을 사용해서 cleaning과 integration을 수행하는 과정을 소개했다. 나도 보면서 신기했던게 그냥 예시로 뽑은 Dataset을 개발자의 구미에 맞게 정렬시켜준다.  궁금한 사람은 밑의 동영상을 참고해보면 좋을거 같다.



그냥 막연하게 Data를 이용하고 무조건 수집만 하는게 빅데이터라고 생각했었는데, 막상보면 그 데이터가 가진 본질과 구성을 이해하고, 효율적으로 처리할 수 있도록 시스템을 설계하는게 이런 걸 공부하는 사람의 목표가 아닐까 싶고, 나또한 그런 부분에서 많이 배워가는 듯 하다. 내 공부에 응용할 수 있는 부분을 찾아가면 좋겠다.

댓글