Big Data/빅데이터: 36개의 글
통계분석 데이터 처리 데이터의 특성이 의미있게 드러나도록 표, 차트, 도식으로 표현. 관심대상 선정 -> 테이블로 정리 (관찰 대상 선정 -> 속성 선정)ex. 관찰대상: 대학생 / 속성: 성별, 이름, 성적 등. 대상별로 서로 다른 값을 가질 수 있어. 속성을 변수(variable)라고 표현. variable이 정해지면, 변수에 기록값을 관찰치/측정치(case, observed value) 또는 변수값(value)라고 함. 관찰치의 모음(set) --> data / 관찰대상(행) 변수(열)의 합을 다시 자료(data) 또는 자료집합(data set)이라고 함. 통계분석은 주로 집단의 특성치 / 상관이나 인과를 파악하는 목적이므로. 하나의 관찰치는 분석 목적으로 유요하지 않음.(하나의 열: 최댓값, 최솟..
검색이란 무엇인가? "책이나 컴퓨터에서 목적에 따라 필요한 자료를 찾아내는 일"검색 시스템 이란 무엇인가? "전자화된 문서로부터 사용자가 원하는 정보"를 찾는 작업을 수행하는 시스템 집합 백그라운드 작업 (수집 / 정제 / 색인): 문서가 새로 생성되고 바뀌므로, 주기적으로 계속 반복해서 일어난다. 리얼타임 작업 (서빙): 사용자가 일회성으로 검색 요청을 보냈을때 응답을 준다. 1) 수집 (전자화된 문서를 모으는 시스템) - 검색할 문서를 수집 - 다양한 문서양식 이해, 문서/사이트 품질 판단 - 수집 시스템 2) 정제 (문서를 검색에 알맞게 가공하는 시스템) - 문서에서 검색에 유효한 부분을 추출하고 가공 - 대규모 데이터 처리, 시스템 가용성 - 저장소 + 정제 플랫폼 + 문서 관리 3) 색인 (가공..
최상단 레벨에서 패키지는 세 개의 추상 클래스를 가지고 있습니다(트랜스포머, 에스티메이터, 파이프라인) 이 각각 클래스에 대해서 간단하게 설명하겠습니다. 트랜스포머(Transformer)트랜스포머를 하이레벨 뷰 관점에서 생각해보면, 트랜스포머의 추상 클래스로부터 상속될 때 각각의 모든 트랜스포머는 transform() 함수를 구현해야 합니다. 이 함수는 변형될 데이터프레임을 첫번째 파라미터로 받습니다. 이는 필수 파라미터로, ML 패키지의 함수마다 다릅니다. 다른 중요한 파라미터로는 inputCol과 outputCol이 있고 특정 디폴트 값을 가지고 있습니다. - Binarizer: 이 함수는 주어진 임계치를 기준으로 연속적인 변수를 이진 변수로 변환합니다. - Bucketizer: Binarizer와 ..
모든 데이터는 보통 지저분하고 데이터가 의도한 것에 대한 충분한 신뢰성을 가지고 있지 않습니다. 데이터가 깨끗한 상태에 있다는 것을 스스로 증명하거나 테스트하기 전까지는 데이터를 모델링에 사용하거나 지나치게 신뢰하면 안됩니다. 데이터는 중복 데이터나 관찰되지 않은 값, 아웃라이어, 존재하지 않는 주소, 잘못된 폰번호 또는 지역 코드, 올바르지 않은 지역 좌표, 잘못된 데이터나 레이블, 대소문자 구분, 공백 관련 문제를 가지고 있습니다. 데이터 과학자나 데이터 엔지니어는 통계 모델 또는 머신러닝 모델을 빌드하기 위해 이러한 데이터를 깨끗하게 만들어야 합니다. 데이터는 앞에서 말한 문제점들이 없을 경우 기술적으로 깨끗하다고 말할 수 있습니다. 그러나 모델링을 목적으로 데이터셋을 깨끗하게 하기 위해서는 피처의..
데이터프레임은 관계형 데이터베이스의 테이블에서 칼럼 이름(named columns)으로 구성된 변경 불가능한 분산 데이터 컬렉션입니다. 아파치 스파크 1.0에서의 경험적 피처로서 스키마 RDD(SchemaRDD)가 소개된 것처럼, 스키마RDD가 아파치 스파크 1.3 버전에서 데이터프레임이라는 이름으로 바뀌었습니다. 파이썬 Pandas의 데이터프레임 또는 R의 데이터프레임에 익숙한하다면 스파크 데이터프레임은 구조적인 데이터로 작업을 쉽게 해준다는 측면에서 Pandas의 데이터프레임 또는 R의 데이터프레임과 비슷한 개념일 것입니다. 분산된 데이터 컬렉션에 구조체를 씌움으로써 스파크 사용자는 스파크 SQL로 구조적 데이터를 쿼리하거나 람다 대신에 표현 함수를 사용할 수 있습니다. 이번 포스팅에서는 두 함수를 ..
분산된 이뮤터블 자바 객체 컬렉션인 RDD(Resilient Disributed Data)는 연산을 매우 빠르게 하며 아파치 스파크의 핵심입니다. 이름에서 알 수 있듯이, 데이터셋은 분산돼 있습니다. 데이터셋은 키를 기반으로 덩어리(Chunk) 단위로 쪼개져 있고 실행 노드(Executor Node)로 분산돼 있습니다. 이렇게 함으로써 데이터셋에 대한 연산 속도를 매우 빠르게 할 수 있습니다. RDD는 각각 덩어리에 적용된 모든 트랜스포메이션을 추적하는데, 이는 연산 속도를 빠르게 하고 어떤 문제로 인해 데이터 손실이 발생했을 때 대비책을 제공하기 위함입니다.(데이터 손실이 발생할 경우 RDD는 데이터를 복구시킬 수 있습니다) 데이터 흐름은 데이터 손실에 대한 다른 방어책으로 데이터 복제가 아닌 다른 방..
2013년에 생산된 데이터는 약 4.4ZB로 추정됩니다. 이는 44억 테라바이트입니다. 2020년에는 그 10배에 달하는 데이터가 생산될 것으로 예측됩니다. 데이터는 매초마다 증가하고 있으며, 이런 상황에 비춰 2004년 구글의 제프리 딘과 산자 제마왓은 'MapReduce: Simplified Data Processing on Large Clusters'라는 세미 논문을 발표했습니다. 그때부터 아파치 하둡과 같이 맵리듀스를 사용하는 개념이 매우 유명해지기 시작했습니다. 피그 하이브 머하웃과 같은 추상 층을 포함하는 하둡 에코시스템도 개발되었습니다. 이 모든 것이 간단한 맵리듀스 개념을 사용합니다. 매일 수 페타바이트를 다룰수 있으에도 불구하고, 맵리듀스는 상당히 제한적인 프레임워크입니다. 또한 대부분의..
ELK스택 ElasticSearch를 실습하기 전에 ELK스택에 대해 알아보겠습니다. 데이터과학은 깊고 넓은 분야입니다. 분야가 다양하기때문에 데이터과학은 각 분야의 팀워크가 생명입니다. 아래는 데이터 과학을 구성하는 각각의 영역을 다이어그램으로 나타낸 그림입니다. 빅데이터 개발자는 어떤 데이터이든지 수집하고 빠르게 검색하고 데이터 무더기에서 쓸만한 정보를 보기좋게 시각화 할수 있어야 합니다. 오픈소스를 이용해 어떤 운영체제를 만나도 운영 가능하도록, 만약 ELK 스택을 마스터한다면, 어떤 빅데이터를 만나도 쉽게 관련 개발을 할 수 있습니다. 위 그림은 특정 로그를 수집하고 이를 시각화하는 전체 구조를 도식화 한 것입니다. Logstash는 데이터베이스에 무관하게 어떠한 데이터든지 수집해주는 역할을 합니..
개발자로써 빅데이터를 다뤄볼 수 있는 영역은 빅데이터 엔지니어링 분야입니다. 대용량 데이터 수집이나 분석을 돕기위한 기술을 제공하는 가장 대표적인 영역이 ELK 스택으로 알고 있습니다. 개념은 익히 들어 알고 있지만 이 내용을 실제로 다뤄본적은 없는데요. IT 인터넷 강의 사이트 "인프런"에서 ELK 스택 관련 강좌를 무료로 제공하고 있습니다. 개발에 욕심있는 개발자라면 관심을 가질만한 기술 스택입니다. 강좌명은 "ELK 스택(ElasticSearch, Logstash, Kibana)으로 데이터"이며,총 19개 강의로 1시간 19분으로 구성되어 있습니다. 섹션1. 데이터과학 소개 및 환경 구축01 데이터 과학 소개 - 02:00 수강완료02 우분투에 엘라스틱서치 설치하기 - 03:00 수강완료 섹션2. ..
맵리듀스는 여러 노드에 태스크를 분배하는 방법으로 각 노드 프로세스 데이터는 가능한 경우, 해당 노드에 저장됩니다. 맵리듀스 태스크는 맵(Map)과 리듀스(Reduce) 총 두단계로 구성됩니다. 간단한 예를 들면 fork-join의 개념을 들 수 있습니다. 큰 작업에 대해 fork로 분할하고 또다시 fork로 분할합니다. 작은 작업을 다시 join하게 됩니다. 하둡에서는 큰 데이터가 들어왔을 때 64MB단위 블럭으로 분할합니다. 각각 블럭에 대한 연산을 합니다. 구글에는 많은 텍스트 파일이 존재합니다. Word1, Word2, Word3... 텍스트 안에 단어가 몇 번 나왔는가하는 것을 계산하는 작업을 수행하게 됩니다. 즉, 텍스트파일을 64MB 단위로 잘라내어 각 블럭에 대해서 특정 단어가 몇번 출현했..