2021. 10. 10. 14:28ㆍCloud/AWS 기초
Big Data (빅데이터란)? (tistory.com) 글을 참조하기 바란다.
Big Data (빅데이터란)?
2017년 5월 영국의 “the economist”에 따르면 “세계에서 가장 가치 있는 자원은 이상 기름이 아니라 Data이다.” 라는 선언을 했고 이 선언은 2021년 현재에도 막강한 힘을 가지고 있다. 기업에게 있
chicode.tistory.com
이전 시간 빅데이터에 대한 설명에 이어서 Amazon 에서 사용하는 bigdata에 대해 알아보도록 하자. 다음의 그림은 AWS에서 배포한(데이터 웨어하우스 | Redshift | Amazon Web Services) redshif에 대한 이미지이다.
아마존에서는 amazon redshift라고 하는 서비스를 통해 데이터 웨어하우징(DW)을 제공하고있다 redshift는 대용량 병렬이며, 규모가 엄청나게 큰 페타바이트 규모이다. 특이한 점으로는 완전관리형이다. 저장장소의 플렛폼으로는 모두가 사용하고 있는 HDD와 SSH플렛폼을 가지구 있다.
Redshift Spectrum
AWS의 특징중 하나인 단독으로 사용하는것이 아닌 다른 서비스와 함께 사용할 수 있다. 특히 데이터 관련 서비스인 만큼 S3에 저장되 있는 데이터에 의해 사용하고자 하는 데이터를 테이블 형태로 매핑을 시키고 이 테이블과 amazon redshift 안에있는 데이터를 join하는 Redshift Spectrum이라는 기술이 있다. 무려 엑사바이트 규모로 확장할 수 있으며
탄력적이며 가용성이 뛰어나다. 쿼리단위로 비용이 지불되서 낭비가 없으며 한번 만든 스팩트럼 구조를 바탕으로 여러 레디시프트 플랫폼이 같은 데이터에 엑세스할 수 있다. 다양한 형태의 파일에 대해 in-place데이터 쿼리를 할 수 있으며 redshift sql을 지원한다. 오라클 등과 유사하게 사용가능하다
Apaache Hive(hadoop hive)
aws에서 제공하는 EMR의 일종이다.
여기서 말하는 hadoop이란 뭘까? 바로 분산 컴퓨팅을 통해 대용량의 데이터(빅데이터)를 처리하기 위한 프레임워크를 의미한다. 전통적으로 빅데이터라고하는것은 많은 량이 빠르게 처리되야하고 중요한 비즈니스적으로 중요한 목적을 두고 사용되기에 고가용성으로 매우 비싼 거대한 기기를 사용해 관리했다. 일반적으로 사용하는 서버를 여러대를 가지고 클러스터를 만들어서 이 클러스터를 병렬로 처리하도록 만든것이 하둡이다.보통 수십~수천개 이상의 노드에서 병렬로 데이터가 처리될 수 있는 특징을 가지고있다.
이 하둡을 관리형으로 제공하는게 Amazon EMR이다
관리형 클러스터 플랫폼으로서 하둡, spark, presto 등 기타 애플리케이션을 실행할 수 있다. 최소 몇 분안에 클러스트를 시작을 할 수 있으며 동적으로 조정할 수 있다.(그것도 무려 실행중인 클러스터를!!) 다수의 클러스터를 배포할 수 있으며 이 emr을 통해서 비용효율적으로 처리할 수 있으며 기존의 하둡으로 나온 솔루션이 emr에서 그대로 설치할 수 있고 사용할 수 있다. 간소화가 가능한것이 가장 큰 특징이다. 노드를 프로비저닝 할 필요도 없으며 클러스터 설정도 없다.하둡을 따로 구성할 필요가 없으며 클러스터를 튜닝할 필요가 아예 없다. 이런 장점을 포함하자면 클러스터의 유지/관리에 시간과 노력을 쓰는 대신 분석에 집중할 수 있다는 장점이 생기게 된다.
emr은 단수로, 혹은 2개 이상의 복수의 데이터를 사용할 수 있으며 다양한 스토리지인 s3, 하둡, dynamodb, redshift, s3 glacier, relational database dervice, kinesis 뿐만 아니라 이 외의 수없이 다양한 AWS서비서와도 연동해서 사용할 수 있다. 또한 cloudwatch와 같은 모니터링 서비스도 존제한다.
이런 하둡의 기능중 굉장히 인기있는 hive가 있는데 하둡에 대해서 하둡이 처리하는 데이터를 일종의 데이터 웨어하우스 처럼 사용할 수 있는(하둡을 데이터웨어로사용하도록하는)솔루션이다. 이것을 사용하면 s3와 같은 파일베이스로 저장된 db를 테이블형태로 매핑하고 이것에 대해서 sql로 분석하거나 데이터를 조작할 수 있다.
내부테이플
내부 hdfs상에 보관되는 테이블
좀더 빠르고 클러스터가 유지되는 동안에만 같이 유지가되고 가용을 할 수 있다. 클러스터가 사라지게 되면 내부 태이블도 삭제가 된다. 주로 중요자료를 보관하며 내부에만 있는 db가 있으면 외부에 백업을 할 필요가 있다.
외부테이블
보통 s3와 같은 외부 저장장소에 있는 db들을 테이블형식으로 매핑해 놓은것이다. 특징으로는 클러스터가 사라지더라도 데이터는 남아있다.
aws에서 제공하는 emr같은 경우
하이브 메타스토어를 통해 클러스터 자체가 삭제되거나 새로운 클러스터가 만들어지거나 혹은 여러개의 클러스터가 존재하더라도 이런 하이브에서 구성해놓은 테이블 매핑에 대한 정보를 공유할 수 있도록 하는 기술이다.
spark와 glue
정규 표현된 것을 일일이 하나하나 자르거나 매핑시키거나 저장된 데이터들의 구조를 파악할 수 있는 방법을 찾다가 만들어진 기술이 Spark와 Glue이다.
Apache Spark
디스크중심으로 제공되던 하둡, emr에서 조금 더 진보해서 값도 싸지고 용량도 많아진 메모리, 렘을 사용해서 빅데이터를 처리해 보자 라는 아이디어에 나온 오픈소스 프로젝트이다. 스파크는 실제로 기존의 디스크를 사용하는 리딩보다 최대 10배 빠르며 map reduce보다 10배 이상빠른 장점을 가지고 있다.
스파크는RDD(resilient distributed datasets)라는 프로그래밍 모델을 사용한다. 여러대의 기게에 메모리가 캐싱(탑재)되어잇므여 병렬로 사용할 수 있다. 내결함성과 데이터 지역성, 확장성을 그대로 유지하며 좀 더빠르게 사용할 수 있다.
여기서 기술적으로 상당히 진화하여 2.0버전이 되며 rdd, dataframe까지 도입되었다. R등 여러 패키지 분석 프로그렘을 그대로 긁어온 것으로써 좀 더 편리하고 다양하게 작업을 수행할 수 있도록 해준다. 마치 sql과 흡사하며 간단하게 할 수 있다
spark sql이라고 sql을 스파크로 넣어 sql로 스파크를 사용할 수 있도록 해 주는것이 있는데 하이브 메타스토어를 사용해 매핑할 수 있다. 다른 json, jdbc등과 같은 데이터원본과 호환할 수 있으며 jdbc or odbc 커넥터를 통해 연결한다.
기존의 인기있는 툴들을 스파크와 연결해 분석하거나 통제, 정제하는데 사용할 수 있다.
이런 스파크를 aws에서 관리형태로 제공하는것이 aws gloue가된다. 아파치 스파크를 기반으로 구현된 서버리스 etl서비스이며 다양한 데이터 소스 이용을 할 수 있는 장점이 있다. emr 보다 좀 더 인프라 관리에 덜 신경써도 되도록 만들어져있어서 인프라관리에 신경을 쓰지 않아도 된다는 큰 장점이 있다.
aws 내부에 있는 다양한 데이터 소스와 손ㅅ쉽게 연결하여 사용할 수 있따
워크플로우 조정 간소화, 내부적 자동화 가능
서버 관리 불필요
개발 단순화 ==> 오로지 개발에 투자할 수 있다.
glue studio라고 기능이 추가되었는데 시각적으로 확인할 수 있는 비쥬얼에디터를 제공한다. 기존에는 글루를 사용하기 위해 스파크에서 제공되는 프로그램의 모델을 배울 필요가 있었는데 여기서는 말 그대로 웹 인터페이스를 이용해서 어디서 데이터를 가저오고 어떤 키를 가지고 조인할지 어디로 출력할지에 대한 것들을 비쥬얼 에디터를 통해 손쉽게 데이터의 정제작업을 할 수 있다.
glue databrew라고 하는 기능도 있다.
s3에 저장되어 있는 데이터들이 어떤 형태로 저장되어 있는지 어떤 데이터가 얼마나 어떤식으로 저장되고 어떤 분포를 가지고 있는지 데이터 자체에 대한분석이 필요할때가 있는데 이때 사용한다.
시각적 인터페이스를 통해 데이터의 현재 모습, 패턴, 이상치 등을 프로파일링 할 수 있는 작업을 자동으로 수행해준다.
샘플링을통해 일부만 사용할 수 있으며 전체 대이터를 모두 사용해서 대규모 데이터 세트 작업을 할 수 있다.
이런 모든걸 결합해서 빅데이터를 좀 더 편하게 사용할 수 있는 어프로치가 있다
'Cloud > AWS 기초' 카테고리의 다른 글
CDN이란? (AWS's CloudFront) (0) | 2021.11.24 |
---|---|
Amazon BigDATA part.2 (0) | 2021.10.12 |
AWS Container part.2 (Docker 개요) (0) | 2021.10.04 |
AWS Container part.1(Container란 무엇일까?) (0) | 2021.10.04 |
Amazon EC2 Part.3 (공유 파일 시스템) (0) | 2021.09.10 |