빅데이타 & 머신러닝 191

실시간 빅데이타 처리를 위한 스트리밍 처리의 개념

데이타 스트리밍 처리에 대한 이해 조대협 (http://bcho.tistory.com) 근래에 Apache Beam 프로젝트를 공부하게 되서, 그간 묵혀놨던 데이타 스트리밍 처리에 대해서 다시 정리중인데, 예전에 Apache Storm을 봤을때 보다 트리거나, 윈도우등 많은 개념들이 들어가 있어서 데이타 스트리밍에 대한 개념 부터 다시 정리를 시작을 하고자한다. Apache Storm에서 부터, Apache Spark 기반의 데이타 스트림 처리뿐 아니라 근래에는 Apache Flink와 같은 새로운 스트리밍 프레임웍크과 구글이 이미 클라우드를 통해서 서비스 하고 있는 google cloud dataflow (Apache Beam이라는 프로젝트로 오픈소스화 되었고, 현재 인큐베이션 단계에 있다.) 까지 빅..

빅쿼리-#3 데이타 구조와 접근(공유)

빅쿼리-#3 데이타 구조와 데이타 공유 권한관리 조대협 (http://bcho.tistory.com) 빅쿼리에 대한 개념 및 내부 구조에 대한 이해가 끝났으면, 빅쿼리의 데이타 구조와, 데이타에 대한 권한 관리에 대해서 알아보도록 한다.데이타 구조빅쿼리의 데이타 구조는 다음과 같은 논리 구조를 갖는다. 일반적인 RDBMS와 크게 다르지 않다. 데이타 구조프로젝트 (Project)먼저 프로젝트라는 개념을 가지고 있다. 하나의 프로젝트에는 여러개의 데이타셋이 들어갈 수 있다. 데이타셋 (Dataset)데이타셋은 MySQL의 DB와 같은 개념으로, 여러개의 테이블을 가지고 있는 테이블의 집합이다. 이 단위로 다른 사용자와 데이타를 공유할 수 있다.테이블 (Table)데이타를 저장하고 있는 테이블이다. 잡 (J..

구글 빅데이타 플랫폼 빅쿼리 아키텍쳐 소개

빅쿼리 #2-아키텍쳐 조대협 (http://bcho.tistory.com) 이번글에서는 앞에서 소개한 구글의 대용량 데이타 저장/분석 시스템인 빅쿼리의 내부 아키텍쳐에 대해서 알아보도록 한다.컬럼 기반 저장소다음과 같은 테이블이 있다고 하자 전통적인 데이타 베이스는 파일에 물리적으로 데이타를 저장할때 개념 적으로 다음과 같은 방식으로 저장한다. FILE 1 : “001;Cho;Terry;Seoul;30,002;Lee;Simon;Suwon;40,003;Kim;Carl;Busan;22” 그래서 하나의 레코드를 가지고 오면 그 레코드에 해당하는 모든 값을 가지고 올 수 있다. 반면 컬럼 기반 저장소의 경우에는 각 컬럼을 다음과 같이 다른 파일에 나눠서 저장한다. FILE 1: 001:Cho,002:Lee,00..

구글 빅데이타 플랫폼 빅쿼리(BIGQUERY)에 소개

구글 빅데이타 플랫폼 빅쿼리 소개 조대협 (http://bcho.tistory.com) 구글의 클라우드 관련 기술중 무엇이 좋은게 있을까 살펴 보면서 기술을 하나하나씩 보다 보니, 구글 클라우드의 특징은 여러가지가 있겠지만, 데이타 회사 답게 빅데이타 및 머신 러닝 플랫폼이 상당히 강하다. 그중에서 빅데이타 플랫폼의 중심에 BIG QUERY라는 빅데이타 플랫폼이 있어서, 몇 회에 걸쳐서 빅쿼리에 대해서 소개해보고자 한다.구글 빅데이타 분석의 역사구글은 빅데이타를 다루면서, 그 근간이 되는 기술들의 논문들을 공개했다. 하둡 파일 시스템의 시초가 되는 GFS나, 하둡의 시초인 MapReduce 논문, 그리고 Hive를 통해 오픈소스화가 된 Big Table등의 논문들이 있다. 구글의 빅쿼리는 Dremel 이..

BI 툴 태블로(Tableau)

AdHoc BI 리포팅 도구 태블로 (Tableau) 조대협 (http://bcho.tistory.com) 근래에 들어서 빅데이타 관련해서 태블로 라는 도구가 이름이 꽤나 들려오고, 아시는 분이 태블로 관련 파트너사 관련 창업을 하셨길래 시간이 나면 봐야지 하다가 오늘 퀵하게 한번 쓰윽 훝어 보았다. 한마디로 BI 리포팅 도구이다. http://get.tableau.com/campaign/business-intelligence.htmlMySQL,MS SQL, ORACLE등의 OLAP 데이타 백앤드에 연결해서 AD HOC 방식으로 리포트를 뽑아낼 수 있는 도구이다.AD HOC방식이란, OLAP의 필드를 가지고, X,Y,Z 측으로 지정하여 분석하고 리포트나 그래프등을 표현할 수 있는 툴이다.비교하자면 엑셀의..

구글 클라우드 비젼 API 사용하기 (Google Cloud Vision API)

Google Cloud Vision API 사용하기 구글 클라우드 비젼 API 사용하기조대협 (http://bcho.tistory.com) 빅데이타와 머신러닝과 같은 기술이 요즘 인터넷을 매우고 있는 시대에, 구글이 얼마전 이미지 디텍션 (Image detection)이 가능한, Cloud Vision API라는 오픈 API를 발표하였다. 현재는 베타버전 상태인데, 호기심에 빠르게 한번 테스트를 해봤다. node.js를 이용하여, 간단한 테스트 프로그램을 만들어서 테스트를 해봤는데, 구현에 걸리는 시간은 불과 10분이 안된듯... (node.js는 역시 프로토타이핑용으로는 정말 좋은듯) Cloud Vision API 억세스 권한 얻기 Cloud Vision API는 현재 베타 상태이다. 접근을 하려면 별..

Apache Spark-Python vs Scala 성능 비교

스파크 성능이 안나오면, 우리 회사 데이타팀 팀장왈. 먼저 파이썬으로 짰는지 확인 부터 해보라길래, 파이썬과 스칼라로 만들어진 스파크 성능 차이가 얼마나 나는지 찾아봤더니 다음과 같은 수치가 나왔다. http://emptypipes.org/2015/01/17/python-vs-scala-vs-spark/ (원본 출처) 일단 스파크를 할려면 스칼라는 필수인듯 하다. 간단한 프로토타입핑등에는 파이썬을 사용할 수 있겠지만 결국 프로적션은 스칼라로 최적화해야 할듯.근데. 자바대 스칼라 성능 비교는 없네

Apache Spark - Key/Value Paris (Pair RDD)

Spark Key/Value Pairs조대협 http://bcho.tistory.com RDD에는 어떤 데이타 형식이라던지 저장이 가능한데, 그중에서 Pair RDD라는 RDD가 있다. 이 RDD는 Key-Value 형태로 데이타를 저장하기 때문에, 병렬 데이타 처리 부분에서 그룹핑과 같은 추가적인 기능을 사용할 수 있다. 예를 들어 reduceByKey 와 같이 특정 키를 중심으로 데이타 연산 (각 키 값 기반으로 합이나 평균을 구한다던가) key 기반으로 join 을 한다던가와 같은 그룹핑 연산에 유용하게 사용할 수 있다. Pair RDD를 생성하는 방법은 다음과 같다. JavamapToPair나 flatMapToPair 라는 메서드를 사용하면 된다. mapToPair등의 함수를 이용할때, 아래와 같..

Apache Spark - RDD (Resilient Distributed DataSet) Persistence

Apache Spark(스파크) - RDD Persistence (스토리지 옵션에 대해서) 조대협 (http://bcho.tistory.com) Spark Persistence에 대해서 앞에 글에서 Spark RDD가 메모리에 상주 되는 방법에 대해서 간략하게 언급했는데, 다시 되 짚어 보면 Spark의 RDD는 filter() 등. 여러 Transformation Operation을 실행하더라도 Transformation 단계가 아니라 Action이 수행되는 단계에 로드된다고 설명하였다. 그리고, 매번 해당 RDD가 Action으로 수행될 때마다 다시금 소스에서 부터 다시 로드되서 수행된다고 했는데, 그렇다면 매번 로드 해서 계산하여 사용하는 것이 아니라, 저장해놓고 사용 하는 방법이 무엇이 있을까? ..

Apache Spark - RDD (Resilient Distributed DataSet) 이해하기 - #2

Apache Spark RDD 이해하기 #2 스파크에서 함수 넘기기 (Passing function to Spark) 조대협 (http://bcho.tistory.com) Passing function스파크는 개발자가 비지니스 로직을 함수로 정의한 후에, 이 함수를 스파크 클러스의 노드들로 보내서 수행할 수 있다. 스파크가 지원하는 프로그래밍 언어에 따라서, 이 함수를 넘기는 방법이나 특성이 다른데, 여기서는 Python을 이용하는 방법에 대해서 설명한다. (스칼라는 아직 공부를 못해서) 파이썬으로 함수 넘기기 파이썬으로 함수를 넘기는 방법은 크게 3가지가 있다. 람다 표기법을 이용하는 방식모듈 상의 탑레벨 함수(Top-level function)파이썬 클래스 안에서 함수를 정의하여, 클래스 안에서 그 ..