한참 교육기관같은데서 요즘 팔아먹는게 빅데이터 같은데....
사실 이쪽 대표선수인 hadoop ecosystem은
늬들도 알듯이 구글에서 자기들이 쓰려고 만든 gfs, mapreduce 논문 보고 역시 검색엔진 만들던 사람이또 오픈소스로 만든게 hadoop이고
지들이 쓰려고 만든 bigtable 논문 보고 만든게 hbase고, 지들이 쓰려고 만든 chubby 논문보고 만든게 zookeeper고
facebook에서 지들이 쓰려고만든게 hive고 뭐 그래
구글이 gfs, mapreduce를 만들었을 때는 크롤링된 웹페이지가 졸라 많고 얘들가지고 역인덱스 생성같은거를 하려니까 어쩔수 없이 분산처리를 할 수 밖에 없어서 지들 용도에 맞게 만든거야. 분산/병렬 처리를 하려할때 immutable 해야 효율적으로 처리를 할 수 있기 때문에 hdfs 보면 다른 파일시스템처럼 seek해서 write해서 내용을수정을하고 뭐 그런거 없어. append 도 한참 있다가 들어간거고
트랜잭션 처리나 데이터의 컨시스턴시 이런게 중요한 데이터에 쓸려고 만든게 아니야..
그리고 nosql도.... 초창기에 아마존 dynamo 논문 보면 지들장바구니데이터 같은거 저장해놓고 분석하려고 만든거지, 절대로 정합성이나 일관성, 무결성이 중요한 데이터를 처리하기 위해서 만든것이 아니고
그래서 nosql 쓴다고 시작했다가 결국은 rdbms 엔진에서 처리해 줘야 될 일들을 어플리케이션 로직에서 하고있는 어처구니 없는 상황이 왕왕 발생하기도 해
SI의 대부분을 차지하는 대부분의 기업용 시스템은 학부 데이터베이스 시간에 배우는 릴레이셔널 모델이 대부분은 잘 맞아
데이터의 정합성, 무결성 이런게 중요한 데이터가 많으니까는..
다만, 일부 응용은 rdbms가 안 맞는 부분이 있어
위에서 이야기한 구글처럼 테라나 페타단위 웹페이지의 데이터를 처리하고 분석을 하는 경우나..
통신사에서 쏟아지는 데이터 트래픽로그나 망품질 분석을 위해 cdr, 프로토콜 메세지 로그를 분석하는 경우등
이런건 전통적인 rdbms를 수백, 수천대 붙인다고 그만큼 효과를 볼 수 있는게 아니야..
이거를 서양애들이 horizontal scalability 가 떨어진다고 이야기해..
그런데, 이런거는 아주 특수한 경우야..
rdbms 엔진 만드는 회사들도 수십년 공력 있는회사들이라, 어지간한 사이즈 데이터는 얘들이 잘 처리할 수 있어.
전통적인 rdbms 엔진들이 처리할 수 없을 만큼 유의미한 데이터가 많이 쌓이고 얘들을 전수 분석해야 하는 케이스는 위에서 얘기했듯 많지 않다고 보면되.
특히, SI 땔감들이 할 프로젝트들은 기업용 트랜젝션 시스템들이 많고 이런 시스템들은 거의가 해당 사항없다고 봐도 돼
뭐 쓸데없는 데이터들 막 쌓으면 용량이야 많을 수 있겠지만 얘들이 과연 전수 분석할 가치가 있는 데이터들인가.....
아닌 경우가 더 많을거야
그래도 니가 저런 특수한 인더스트리에서 개발/분석할 거다 하는 횽들은..
일단 저쪽 동네도 시스템/플랫폼 쪽, 즉 소위 말하는 하둡이니 hbase니 카싼드라니 하는 솔루션이나 프레임워크에 대해 잘아는 사람들도 필요하고..
전통적인 데이터 분석가들 역할을 하는 사람들도 필요해
물론 어느쪽 전문가가 되는 양쪽 다 어느정도 알기는 해야 되는데. (DB 설계 하는 잘하는 사람들이 비지니스 도메인도 잘 알고 오라클 옵티마이저에 대해서도 잘 알듯이) 어쨌든 양쪽 모두에 전문가가 되기는 힘드니까
시스템/플랫폼 쪽 전문가가 되려면 분산 시스템에 대해서 잘 알아야 하고..
분석을 하려면은 일단 수학부터 해.. 확률/통계, 선형대수는 맨날 나오는 거니까잘 알아야돼
그런데, 어차피 도메인별로 데이터 특성이나 그런게 있어서 결론은 자기 도메인에서 경험이 있어야 돼..
또, 전통적인 머신 러닝 알고리즘 중에 분산/병렬 처리로 효율적으로 처리하기 힘들 것 같은 경우 문제를 어떻게 풀어야 하나 고민을 해야 하기도 하고
어찌됐든 분석은 생각보다 그렇게 재미있는 경험은 아닐 수 있어
직관을 데이터가 배신하는 일도 많고
코딩할땐
일단 뭐 hadoop의 구현은 java로 되어있고, mapreduce api도 java야..
이 api로 개발하는게 제일 추상화 수준이 낮은 거고..
hadoop streaming 이란걸 이용하면 python이나 ruby 같은 스크립트언어로 짠 코드를 mapreduce에 태울수도 있고,
hive 같은거는 sql 로 개발할 수 있게 하는거고.. pig라는 괴랄한 녀석도 나온지 좀 오래됐고..
요즘은 impala 니 하면서 sql on hadoop 솔루션들도 많이 나오고 있어
뭐 추상화 수준이 높은 애들 가지고 개발하다 답답하면 mapreduce api 써서 개발하다가 하면은 돼
그리고.. 요즘은 일부사람들중에서는 hadoop의 mapreduce framework은 레거시고 spark 이 대세라고 하는 사람도 있어.....
아직 한국에서는 프로덕션에 쓰는 레퍼런스가 얼마나 될지 모르겠지만은 분석이야 데이터만 나오면 돼니까 쓰는 사람들도 있고....
뭐 분석만 들어갔다 하면은 요새는 그냥 빅데이터란 말을 붙이고 싸구려 유행어가 되가는데
위에서 얘기했듯 SI 땔감들 일거리 중에 전통적인 솔루션들 대신에 굳이 저런 시스템을 써야 되는 경우가 얼마나 될지는 회의적이야
결론은 SI 땔감은 그냥 오라클 열심히 하는게좃다
디씨에서 병림픽짓 하는건 피곤해서 늬들에 태클이나 질문은 거부한다
세줄요약:
쓰이는 영역은 분명히있어
그렇지만 대부분의 SI 땔감들이 하는 일에서는 맞지 않아
식고자라
.
기네요물론읽진않았읍니다
길지만 다읽었다! 잘읽엇습니다
개추
빅 데이터는 거품이 많음. 현업 디비 전문가들 말 들어보면 말만 빅 데이터 빅 데이터 거리지 실제론 RDBMS 수천대 이어붙여서 하고 있다더만 뭘.
그리고 빅 데이터는 수집이 문제가 라니라 분석 방법론이 문제.
라니라 > 아니라
맞다. 땔감이 배워서 이걸로 돈 벌거라는 생각은 버려야 함