몇년전에 가트너에서 데이터는 이 시대의 원유이고 앞으로 데이터는 경쟁우위를 좌우하기 한다는 글을 본 적이 있습니다.
– 이를 인용한 기사를 찾아보니 블로터에 있네요. ^^ (http://www.bloter.net/archives/74906)
그러고보니 데이터를 처리하고 분석하는 쓰여지는 일부 영어 단어를 살펴보면 distilled, drill down 와 같은 표현들이 있기도 합니다.
데이터를 잘 수집해서 정제하고 분석에 용이한 형태로 변환해서 데이터베이스 시스템에 넣어주는 것을 보통 ETL (Extract, Tranform, Load) 라고 말하고 고가의 ETL시스템들이 여러 분야에 활용되고 있지요. 이러한 시스템이 해주는 일은 다양한 포맷을 가진 데이터 소스를 다른 포맷으로 변환하는 것에서부터 이들을 결합하고 쪼개는 일을 복잡한 프로그래밍이 아니라 GUI 기반으로 손쉽게 정의하고 상대적으로 간단한 스크립팅을 통해서 가능하게 해준다는 것입니다. 당연히 이러한 프로세싱에 필요한 스케줄러를 내장하고 있습니다. 고가의 시스템이긴 하지만 다양한 데이터 소스 (상용 ERP, 데이터베이스, FTP, HTTP, 파일시스템 등) 를 위한 입출력 어뎁터를 갖추고 있어서 매우 유용한 솔루션이라고 할 수 있습니다. 즉 이러한 시스템이 있기에 데이터베이스나 데이터웨어하우스에서 데이터를 손쉽게 분석이 가능한 것은 당연한 것이죠.
빅데이터쪽에서도 여러가지의 데이터 수집 프레임워크들이 오픈소스로 공개되어 있습니다 . 대표적으로 Scribe, Flume도 있지만 사실 자신들의 환경에 맞추어 최적화해야 하거나 커스터마이징을 해야하는 것은 피할 수 없다고 봅니다. 오픈 소스는 아니지만 이런 측면에서 최근 Splunk는 정말 많이 주목받는 솔루션이기도 합니다. 그러면서 ETL이 아니라 ELT 라는 말도 나오기도 했죠.
그런데 제가 오늘 말하려고하는 것은 이 영역에서의 업무가 얼마나 중요성한가에 대해서 강조드리고 싶어서 포스팅을 하게 되었습니다.
사실 기업내에 흩어져 있는 다양한 데이터를 수집하고 이의 정합성을 맞춘다는 것이 보통일이 아닙니다. 아무리 각각의 시스템이 잘 개발되고 문제없이 잘 구축되었다고 하여도 운영을 하다보면 데이터를 주는 쪽에서의 문제, 네트워크 환경, 예기치 않은 데이터 오류, 데이터량이 증가함에 따라서 다시 튜닝해야하고 모니터링해야 할 것이 한두가지가 아닙니다. 그리고 애시당초 이러한 데이터를 한데 모아서 분석하거나 한다는 생각으로 설계되고 구현된 것들이 아니기 때문에 더욱 어렵지요.
그래서 현업에서 어떤 문제가 발생했을 경우 데이터에 복구와 정합성을 다시 맞추기 위한 일은 사실 데이터를 분석하고 원하는 결과를 뽑아내는 일 이상으로 중요한 것입이다. 가장 큰 이유중 하나는 데이터 규모가 매우 커지게 되면 롤백을 하거나 정합성을 다시 맞추기 위한 일이 생각한 것만큼 만만치 않기 때문입니다. 데이터 복구도 복구지만 복구 자체에 걸리는 시간이 매우 오래걸릴 수 있기 때문입니다. 따라서 대용량 데이터를 처리함에 있어서 이러한 복구와 정합성을 빠르게 하기 위해서는 (네 100% 회피할 수 없으니까요) 초기에 데이터를 저장하는 정책과 구조에 대해서도 반드시 고려를 해야하는 것은 당연합니다.
사실 이게 어떤 정답이 있는 것도 아닙니다. 상황에 따라 쌓이는 데이터의 양, 업데이트주기, 데이터의 중요성, 투자할 수 있는 인프라와 인력에 에 따라서 천차만별일 수 밖에 없는 것입니다. 그래서 이 일을 맡고 있는 개발자나 시스템운영자 입장에서는 노심초사할 수 밖에 없게됩니다. 그런데 이러한 중요성에 비해서 담당자 입장에서는 티가 나는 일도 아닙니다. 문제가 생길때에만 욕만 먹는 위치이고 역할인 것이죠.
빅데이터에 대한 분석과 이를 통한 다양한 가치창출에 대해서들 많이 얘기하시지만 상대적으로 이러한 데이터를 수집하고 정제하는 일은 덜 강조되는 것 같습니다. 이 위치에서 일하는 개발자, 운영자에 대한 역량과 그 역할의 중요성에 대해서 잊지 말아야하고 이 일을 맡는 사람에게도 이점을 강조하고 필요에 따라서는 이에 맞는 대우를 해주어야 한다고 생각합니다.
자동차에 들어가는 맑고 투명한 가솔린을 얻기 위해서 누군가는 사막 한가운데서 바다 한가운데서 시커먼 원유를 온몸에 뒤집어쓰고 시추하는 사람들이 있듯이 다양한 포맷으로 여기저기 저장된 여러 데이터 소스로부터 Raw 데이터를 모으고 처리하는 이 일이 단순하고 저급의 일인듯 하지만 사실상 가장 중요하고 제대로 설계되고 관리되어야 한다는 것입니다.
쓰다보니 중언부언이네요. ^^;
이러한 일이 그다지 힘들지 않고 크게 대수롭게 느끼지 않다고 생각하신다면 대용량 데이터를 다루고 있는 것이 아니실테니 이런 분은 패쑤~ 🙂