본문 바로가기

[Data Engineering]/[Gloud-GCP]

(13)
[GCP] 6-2. Quantization using Spark SQL - 들어가기 전에 - 이번에는 빅쿼리를 이용해서 개별성 검사를 진행해보도록 하겠다. 데이터 셋이 개별적인지 판단하는 일을 하는 이유는, 이전에 소개한 베이즈 분류에서 각 빈에서 지연된 항공편의 비율을 계산해야 하는데 이 이전에 지연과 거리라는 개념을 양자화 하는 방법을 결정해야하기 때문이다. 클라우드 데이터프록에 실행중인 노트북에서 빅쿼리를 호출할 수 있다. dataproc과 관련된 내용은 미흡한 부분이 있어, ssh가 아닌, GCP에서 실습을 이어간다. dataproc은 책에 소개된 내용과는 다른 방법으로 이어 설명을 하도록 하겠다. datalab에 레퍼지토리를 먼저 클론하자. !git clone https://github.com/GoogleCloudPlat..
[GCP] 6-1. Dataproc cluster, bayes classification 6장에서 배울 내용은 항공편의 도착지연을 예측하기 위한 베이지안 모델을 생성해서 데이터 과학의 다음 단계를 다루는 일이다. 빅쿼리, 스파크 SQL, 아파치 피그(Apache Pig)를 통합하는 워크플로우로 이를 진행한다. 또한 클라우드 데이터 프록(Cloud Dataproc)을 이용해 지정된 하둡 클러스터를 생성하고, 크기를 조정하고 삭제하는 방법도 배운다. 머신 클러스터에서 대용량 데이터셋은 어떻게 처리할 수 있을까? 책에서는 제프 딘(Jeff Dean)과 산자이 게마왓(Sanjay Ghemawat)의 논문에서 소개된 맵리듀스 방식을 소개하고 있다. 맵리듀스 방식에 대해 알아보자. - 맵리듀스 - 큰 크기의 문서들이 있고, 이 문서들에서 단어의 빈도를 계산..
[GCP] 5-3. Data refining & model eval - 이상치(outlier) 확인 - 클라우드 데이터랩으로 쿼리를 계속 작성할 수 있다. 하지만 빅쿼리 콘솔에서 쿼리문을 작성하면 즉각적인 피드백을 얻을 수 있으므로 빅 쿼리로 접속해 해당 쿼리문을 입력해 보자. 출발지연시간에 따른 항공편 숫자와 도착지연 평균을 나타낸다. select DEP_DELAY, AVG(ARR_DELAY) AS arrival_delay, COUNT(ARR_DELAY) AS numflights from flights.tzcorr group by DEP_DELAY order by DEP_DELAY 두번째 행을 살펴보면 82분이나 먼저 출발한 항공편도 있다. 이런 소수의 데이터까지 포함시켜 통계에 혼란을 줄 필요가 있을까? 이런 이상값들로 통계 모델링을 혼란스..
[GCP] 5-2. Cloud Data LAB Cloud Data LAB은 Google Cloud Platform에서 Jupyter notebook을 호스팅된 버전으로 제공한다. 이미 플랫폼에 인증이 되어 있으므로, 클라우드 스토리지, 빅쿼리, 데이터 플로우, 클라우드 ML 엔진 등에 쉽게 접근할 수 있다. 다음 내용은 구글 컴퓨트 엔진 인스턴스에서 클라우드 데이터 랩을 실행하고, 로컬 머신에서 접속하는 방법을 설명한다. 0. 제일 먼저 관련 api 설정을 해 주어야 만사가 평안하다... 아래의 사진에 보이는 Cloud Source Repositories API를 사용설정을 통해 인증해 주고 시작한다. 1. Cloud Shell에 영역 지정, 인스턴스명 지정, 인스턴스 생성 datalab create --zo..
[GCP] 5-1. Bigquery, Data Loading EDA( Exploratory Data Analysis, 탐색적 데이터 분석 )이라는 것은 데이터셋에 대한 통찰력을 발전시키고, 견고한 통계모델을 개발할 수 있는 접근법으로 존 투기( John W. Tukey )에 의해 만들어졌다. EDA는 다음과 같은 5가지 조건을 만족하는 그래프를 작성해야 한다. 그래프 전체를 뒷받침하는 기본 가정( ex> 특정 값이 항상 존재할 것이다. or 특정 범위에 값이 항상 존재할 것이다. )을 평가해야 한다. 중요한 변수를 식별하기 위해 직감과 논리를 사용해야 한다. 데이터의 하부 구조를 찾아야 한다. 여기서 하부 구조란 중요한 변수와 특정한 통계적 패턴으로 들어간 데이터와 같은 상황 사이의 관계 등을 말한다. 간략한 모델을 개발해야 한다. 특이..
[GCP] 4-2. Stream Processing 실시간 streaming에 관한 내용은 추후 gcp 관련 개인 프로젝트를 포스팅 하며 보충하도록 하겠다. - 1 - cd realtime ./run_on_cloud.sh # 파일명이 변경되어 run_oncloud.sh로 실행시킨다 #!/bin/bash if [ "$#" -ne 1 ]; then echo "Usage: ./run_on_cloud.sh bucket-name" exit fi PROJECT=$(gcloud config get-value project) BUCKET=$1 cd chapter4 bq rm flights.streaming_delays # delete existing table mvn compile exec:java \ -Dexec.mainCl..
[GCP] 4-1. ETL Pipeline 3장에 만든 Dash-Board는 부족한 점이 있다. 바로 현재 수행중인 데이터를 반영하지 못하고, 과거의 데이터로만 보여준다는 점이다. 이를 보완하기 위해, 이번장에서는 실시간으로 데이터를 수집하고 이 데이터셋을 데이터베이스로 스트링하는 과정을 실습해 볼 것이다. 먼저 사용할 데이터를 수집하고, 이를 사용할 목적에 맞게 전처리 하는 과정을 거치는데 이를 ETL 파이프라인 단계라고 한다. 이번 장을 공부하면서 느낀점은 데이터 플로우 파이프라인을 구축하는 과정도 과정이고, 실시간으로 데이터를 스트리밍하는 과정도 멋있었지만 무엇보다 관련 데이터를 이토록 세밀하게 분석하고, 발생가능한 오류들을 미리 예상해서 전처리하는 저자의 꼼꼼함에 감탄하지 않을 수 없었다. 마치 관..
[GCP] 3-3. DashBoard 지금까지 GCP를 활용해서 데이터를 가져오고 이를 SQL에서 처리하는 과정까지를 살펴보았다. 하지만 이를 최종결정권자나 사용자에게 설득력있게 다가가기에는 부족함이 있었다. 이제 우리는 우리가 설계한 모델을 가지고 DashBoard를 직접 작성하여 이를 어떻게 적용시킬것인지를 살펴보도록 하겠다. GCP에서는 DashBoard를 제작하는데에 Data-Studio를 사용한다. 이를 어떻게 이용할 지를 알아보고 이전에 작성한 모델을 바탕으로 직접 제작하는 실습을 가져보자. 먼저 데이터 스튜디오로 작업하기 위해서는 데이터스튜디오(https://datastudio.google.com)로 접속해야한다. 아래에 보이는 화면이 데이터스튜디오에 처음 접속하였을 떄의..
[GCP] 3-2. Decision Model 원래 관련 포스팅 기록을 남기는 과정에서 기술적으로 GCP를 다루는 과정을 중점적으로 기록하려했지만, 친구들과 진행하는 주식 관련 프로젝트에 GCP를 이용하기로 하면서, 관련 모델에 대한 설계를 확률적으로 어떻게 하는지 자세히 살펴보려고 한다. 책에서는 의사 결정 규칙이 다음과 같이 나타나있다. DEP_DELAY ≥ 15분 이면 회의를 취소한다. 그렇지 않으면 회의를 진행한다. 위의 규칙에 따라 회의 취소 결정을 위한 분류결과표 ( contingency table / confusion matrix )를 만를어 확인해보자. 도착지연 ( ARR_DELAY ) < 15분 도착 지연 ( ARR_DELAY ) ≥ 15분 회의를 취소하지 않는다. ( DEP_DELAY = 15 ..
[GCP] 3-1. How to make Dataset 머신러닝의 모델을 구체화하기 이전에 데이터셋을 직관적으로 이해하고 이를 자료로 활용하는 것은 매우 중요한 작업이다. 이는 개발자와 데이터과학자, 최종 의사결정자에게까지 두루 설득력있는 근거로 활용할 가치가 충분하다. 이를 위해 사용하는 분석기법이 바로 탐색적 데이터 분석( EDA, Exploratory Data Analysis )이다. 아래에 보이는 표는 책에서 발췌한 대쉬보드와 EDA의 차이를 나타내는 표이다. 이를 보면 EDA의 결과를 dashboard로 나타냈을때 시각적이고 유용한 자료로 활용할 수 있다는 점을 알 수 있다. 책에서는 DashBoard로 모델을 설명하기 위한 디자인을 구성할 때 세가지 측면에서 디자인을 평가해야된다고 말하고 있다. 정확하고 정직하게 데이터를 ..