본문 바로가기
Cloud/Google Cloud Platform

GCP Fundamentals #8 - Big Data and Machine Learning in the Cloud

by HaningYa 2020. 5. 22.
728x90

 

[코스정보]

 

 

Cloud Engineering with Google Cloud 전문 자격증 | Coursera

Learn Cloud Engineering with Google Cloud 전문 자격증 from Google 클라우드. This program provides the skills you need to advance your career as a cloud engineer and recommends training to support your preparation for the industry-recognized Google Cloud ...

www.coursera.org


Google Cloud Big Data Platform

Google Big Data Service

  • 비즈니스와 유저 경험을 유의미한 데이터로 바꿔주는 솔루션 이다.
  • Integrated serverless platform 이라고 부른다.
  • compute instance를 신경쓰지 않아도 되고
  • service가 전체적으로 관리되며
  • 쓴 리소스 만큼 비용을 지불하면 되기 때문이다.
  • 플랫폼은 필요한 GCP 데이터 서비스들의 조합으로 커스텀한 솔루션을 만들 수 있다.
  • Apache Hadoop : 오픈소스 빅데이터 프레임워크
    MapReduce programming model 에 기반한다.(구글이 만듬)
  • MapReduce Model 이란 "map function" 이라 불리는 하나의 함수가 parallel 하게 실행되어 많은 양의 데이터셋을 처리하여 결과를 도출하는 것이다.
  • 다른 function 으로는 "Reduce function" 이 있다.
  • Reduce function은 앞선 결과물들 전체에 대한 최종 결과물을 만들어 낸다.
  • Hadoop은 Apache Hadoop이나 연관된 프로젝트 예를들어 Apache Spark, Pig, Hive 같은걸 총칭해서 부른다.

 

Cloud Dataproc

  • Dataproc 은 빠르고 쉽게 GCP 상에서 Hadoop을 관리할 수 있다.
  • 그냥 Hadoop cluster를 요청하면 90초 이내에 compute engine 에 원하는 갯수와 타입으로 만들어 진다.
  • cluster 가 실행되는 중에도 언제나 scale up, down 이 가능하다.

왜 Dataproc 인가

  • hadoop cluster를 만들땐 default 설정을 선택하거나 customize 가 가능하다.
  • Stackdriver를 통해 cluster를 모니터링할 수 있다.
  • Dataproc 상에서 이러한 작업을 돌리면 cluster를 쓸 때만 돈을 내면 된다.
  • 비용 측정은 시간당으로 계산되지만 Cloud Dataproc은 초단위로 청구된다.
  • 만약 cluster작업이 끝나면 삭제할 수 있고 비용 청구는 멈춘다.
  • 실제 하드웨어를 구매하는 것 보다 훨씬 절약할 수 있다.
  • preemptible compute engine 을 사용하게 하여 batch process를 더욱 싸게 처리할 수 있다.
  • 이렇게 하려면 작업이 중단되도 괜찮아야 한다.
  • 이러한 방식은 보통보다 80퍼센트 싸다. (근데 compute engine가격 뿐만 아니라 다른 요소도 있기 때문에 조심해라)
  • 데이터가 cluster내에 있다면 Spark 와 Spark SQL 을 통해 데이터 마이닝이 가능하다.
  • 또한 MLib를 쓸 수 있다.

Cloud Dataflow

Cloud Dataflow

  • 그럼 실시간으로 데이터 사이즈도 모르는 경우는 어떻게 처리할 것인가.
  • Cloud Dataflow 는 통합된 프로그래밍 모델이고 관리되는 서비스이다.
  • 데이터 프로세싱 패턴을 개발하고 실행할 수 있게 해준다.
    - extract, transform, load batch computation, continuous computation

dataflow pipline

  • 데이터 파이프라인을 만들기 위해 Dataflow를 사용한다.
  • batch 데이터와 streaming 데이터 둘다 같은 파이프라인을 사용한다.
  • scalce 할 필요없이 데이터 처리에 필요한 리소르를 자동으로 관리해 준다.
  • Cloud Dataflow는 리소스 관리, 성능 최적화 같은거 신경 쓰지 않게 해준다.
  • 예를 들어 dataflow 파이프라인은 big query table에서 데이터를 읽어와서 여러 방법으로 처리한다.
  • 그리고 그 결과값을 cloud storage인 Sink에 저장한다.
  • 몇몇은 map operation 일 것이고 몇몇은 reduce operation 일 것이다.
  • 파이프 라인의 각 단계는 유연하게 scale 된다.
  • 지연되는 작업을 동적으로 조정해 준다. (한 파이프라인에 큰 데이터 안쏠리게)

왜 dataflow 써야하는가

  • ETL툴 이고 가짜 감지나 금융 서비스, IoT 분석, 헬스케어, 물류, 매출 등등의 데이터 분석 엔진이다.
  • 이런 파이프라인 덕분에 여러 서비스들 (외부 서비스 까지) orchestrate 할 수 있다.

Big Query

BigQuery

  • 구글이 관리하는 페타바이트 스케일의 저렴한 분석용 데이터 저장소이다.
  • 관리할 인프라가 없기 때문에 데이터에서 인사이트만 찾으면 된다.
  • 익숙한 SQL을 사용할 수 있다.
  • cloud storage 나 cloud data store에서 데이터를 들고오거나 초당 100,000 row를 BigQuery로 Stream 할 수 있다.
  • BigQuery 내에서 엄청 빠른 SQL 쿼리들을 몇 테라바이트의 데이터에 몇 초만으로 처리할 수 있다.
  • 쿼리문 뿐만 아니라 Cloud Dataflow, Hadoop, Spark 에서도 BidQuery의 데이터를 읽거나 쓸 수 있다.
  • monthly free quotas가 있다.
  • BigQuery에서 데이터가 저장될 region을 선택할 수 있다.
  • 예륻들어 유럽에 데이터를 저장하고 싶다면 데이터 셋을 만들 때 위치를 EU로 잡아라
  • US 와 Asia 도 가능하다.

bigQuery

  • BigQuery는 storage와 computation 을 분리했기 때문에 쿼리와 별개로 데이터 저장에 대한 비용을 지불한다.
  • 쿼리문을 사용할 때만 computaion 비용을 지불한다.
  • 다른 프로젝트의 인원 등등에 데이터를 공유하는 등 접근 권한도 설정 해줄 수 있다.
  • 공유하는 사람들이 실행한 쿼리는 그 사람들이 비용을 지불한다.
  • 긴 기간동안 저장되면 구글이 자동으로 가격을 discount 해준다. (90일)

Cloud Pub/Sub and Cloud Datalab

Cloud Pub/Sub

  • 실시간 이벤트에 대해 작업하고 있다면 messaging service 가 도움이 될 것이다.
  • 이게 Cloud Pub/Sub이 하는 역할이다.
  • 간단하고 믿을 수 있고 scalable 한 stream analytics이다.
  • 독립적인 어플리케이션으로 메시지를 주고 받게 할 수 있다.
  • 그렇게 되면 독립적으로 scale 된다.
  • publishers 와 subscribers의 줄임말로 어플리케이션은 message를 publish 할 수 있고 하나 이상의 subscriber가 메시지를 받을 수 있다.
  • 메시지를 받는건 synchronous 하지 않아도 된다는 점이 분리된 시스템을 만드는데 장점이 된다.
  • Pub/Sub은 최소 한번의 낮은 레이턴시로 전달하기 위해 디자인 되었다.
  • 최소 한번이란 뜻은 메시지가 한번 이상 전달될 수 도 있다는 뜻이니 개발할 때 이점 유의하도록!
  •  Cloud Pub/Sub은 on-demand scalability를 지원하여 초당 백만 메시지 이상을 처리할 수 있다.
  • 구글 내부적으로 쓰이는 기술과 동일하다.

왜 pub/sub을 써야할까

  • IoT 시스템과 같이 데이터가 예측할 수 없는 rate를 가질 땐 데이터 받는 부분은 중요하다.
  • 데이터 흐름을 분석할 때 Cloud Datatflow는 Pub/Sub과 찰떡궁합이다.
  • GCP Compute platform 과 함께 동작 될 수 있다.
  • subscriber가 메시지를 받는 방법을 push 나 pull 중에서 선택할 수 있다.
  • 새로운 메시지가 있을때 notified되거나 새로운 메시지가 있는지 간격을 두어 체크할 수 있다.

Cloud Data lab

  • 데이터 과학을 호스팅 하기위한 환경에 Jupyter이 적절하다.
  • 웹 기반 notebook을 만들고 유지할 수 있다.
  • 파이썬 코드를 사용해서 대화식으로 실행하고 결과를 볼 수 있따.

cloud datalab

  • Clooud Datalab은 compute engine 에서 실행된다.
  • 바로 사용가능한 Python 환경을 제공한다.
  • 여러 GCP 서비스들을 자동으로 오케스트레이션 한다.
  • 사용한 리소스에 대해서만 비용을 지불하고 Datalab 자체에 대한 추가 비용은 없다.
  • BIgQuery, Compute Engine, Cloud Storage 를 사용하면 데이터 엑세스가 편하다.
  • 구글 차트를 통한 데이터 시각화나 파이썬 커뮤니티를 통해 배울 수 있다.
  • 여러 통계를 위한 패키지가 많다.

 

Google Cloud Machine Learning Platform

구글 내부에서 사용되는 ML 기술

  • GCP 프로덕트들과 마찬가지로 일반적인 서비스 부터 커스터마이즈된 서비스 까지 선택 할 수 있다.

ML API 들

  • 텐서플로우는 오픈소스 라이브러리로 neural network 와 같은 머신러닝에 적합한 소프트웨어이다.
  • 텐서플로우는 오픈소스이기 때문에 어무데나 실행할 수 있지만 GCP 상에서 실행하기가 제일 적합하다.
  • 머신러닝모델은 고성능의 컴퓨팅 파워와 대용량의 training data 가 필요하기 때문이다.
  • 텐서플로우는 또한 Tensor Processing Unit을 사용할 수 도 있는데 텐서플로우의 머신러닝 작업을 가속화 새줄수 있는 하드웨어 이다.
  • GCP 는 compute engine 을 통해 클라우드에서 제공되며 각각의 클라우드 TPU 는 180테라플롭의 성능을 보여준다.
  • 사용한 만큼만 비용을 지불하기 때문에 어느 비용도 미리 지불할 필요가 없다.

여러 사용 예시

  • 만약 상세한 구현 없이 다양한 머신러닝 기능을 추가하고 싶다면 구글의 머신러닝 API 를 쓰면 된다.
  • 사람들이 머신러닝 기능을 쓰는 카테고리는 크게 두개인데 데이터가 구조화되있거나 아니거나이다.
  • 구조화된 데이터일 경우 classification, regression 을 통해 제풀 분석과 예측 등을 수행할 수 있다.
  • 상품 추천 엔진의 중심이 될 수 도 있다.
  • 비정형 데이터를 통해 손상된 선적물 처럼 이미지 분석을 수행할 수 도 있다.
  • 만약 고객에 상품에 대한 좋은 평가를 적었다면 자동으로 할인 쿠폰을 발급한는 것 처럼 좀더 상호작용이 가능한 어플리케이션을 만들 수 있다. 

Machine learning APIs

 

Cloud VIsion API

 

Cloud Speech API

 

 

Cloud Natural Language API

 

Cloud Translation API

 

Cloud VIdeo Intelligence


실습 : GCP Fundamentals: Getting Started with BigQuery

 

https://googlecoursera.qwiklabs.com/focuses/8306392?parent=lti_session

 

  • Google Cloud Dataproc 을 쓸 수 있는 경우는 용량이 정해진 데이터에 대한 데이터 마이닝과 데이터 셋 분석과 클라우드 밖의 하둡 작업을 클라우드 로 Import 할 때 사용할 수 있다.
  • Google Cloud Dataflow 는 Orchestration 과 Extract, Transform, Load(ETL) 에 사용될 수 있다.
  • Google Cloud Machine Learning Platform 을 사용할 수 있는 경우는 content personalization, sentiment analysis, Fraud detection 에 사용할 수 있다.
  • BigQuery는 대용량 데이터베이스에 대해 SQL 쿼리를 빠르게 실행할 수 있고 데이터 분석 창고로 쓰일 수 있다.
  • Cloud Pub/Sub은 IoT, Analyzing streaming data 등에 쓰일 수 있다.
  • 텐서플로우는 managed service로 머신러닝 모델을 만드는데 쓰인다.
  • Cloud Natural Language API 는 임의의 문자열을 지원되는 언어로 번역해준다.
728x90

댓글