본문 바로가기

메타인지/TIL

TIL 12/20~12/26

 - AWS GLUE에 대한 이해

AWS Glue는 완전관리형 ETL(추출, 변환, 로드) 서비스로, 효율적인 비용으로 간단하게 원하는 데이터를 분류, 정리, 보강하고 다양한 데이터 스토어 간에 이동합니다. 

 

 - AWS S3를 AWS 인프라 구축시 속도는 느리지만 큰 데이터를 저장하는 용도로

파이썬 코드를 트리깅하여 s3에 json,csv,parquet 형식으로 저장하면 장땡 

 -  AWS Athena와 Presto 학습

페이스북에서 SQL쿼리 엔진를 프레스토라고 한다. 

mysql을 통해서 구축햇을는 sql로 처리했엇다 

 

하지만 빅데이터로 처리시 s3버킷에 븐리도어 있는 데이터를  

하나의 쿼리를 통해서 처리한다. 

다양한 데이터소스를 싱글 쿼리로 처리 

aws의 경우에는 athena 

 

서버리스, ETL 불필요 

Athena는 서버리스 서비스입니다. 

 

개방성, 강력함, 표준 

Presto 기반, 표준 SQL 실행 

Amazon Athena는 ANSI SQL을 지원

 -  서버리스 아키텍쳐에 대해서 학습

서버리스 : 서버가 없는 서버다 

보통의 서비스를 만들때 우리가 가지고 있는 로컬을 통해서 

로컬의 가상의 제약조건을 해결할려고 지속적으로 쓰이는 클라우드 환경의 서버를 만들려고 한다. 

 

서버 부하의 대표 해결 방법 2가지

Scale-up : Server가 더 빠르게 동작하기 위해 하드웨어 성능을 올리는 방법. 

Scale-out : 하나의 Server 보다는 여러 대의 Server가 나눠서 일을 하는 방법. 

 

서버리스는 Scale-out에 해당

 

Load Balancing이란? 

하나의 인터넷 서비스가 발생하는 트래픽이 많을 때 여러 대의 자동으로 서버가 분산처리

 

 - AWS EMR PySpark, Zeplin 학습 

- EMR c4.large 로 여러번 시도 했는데 재대로 지원이 안된다!  4시간 삽질..

 Emr 관리형 하둡 프레임워크 

(엘라스틱  리듀스) 

클러스터(서버들) 

 

전체데이터을 읽고 쓰는데 속도 비용이 크다 

맵 리듀스는 맵핑을 통해 데이터를 잘개 쪼개고, 리듀싱을 통해 다시 데이터를 합친다. 

맵자체를 노드로 나누어 분할 처리한다 

 

스파크는 스피드에 특화되어 있다.  

 

RDD RESILIENT DISTRIBUTED DATASET 탄력 분산 데이터셋 

분산되어 존재하는 데이터들의 모임,  

클러스터(서버들)에 분배 되어있는 데이터 들을 하나로 모임 

스파크의 데이터 타입을 RDD기반 

데이터연산은 RDD의 연산 

RDD,HDFS처럼 WRITE가 불가능 

 

Udf :유저가 직접 스파크 내에서  작성할수 있는 함수

 

대체로 함수형 프로그래밍의 구조 

 

 - 서버리스 프레임워크 WorkFlow 학습(DAGs)

데이터 파이프라인 예시 

하나의 잡이 다른 잡을 트리거 시키고  그다음의 잡이 트리거리를시킨다 

EC2에서 S3로이터를 저장 

REST API로 람다를 트리거 

 

이러한 형식을 DAG라고 한다 

Directed Acyclic Graphs(DAGs) 

 - Crontab과 쉘 스크립팅에 대한 학습

 

Crontab -e로 들어가서진행 

Crontab -l 들어가서 설정 확인 

 -  모놀리틱 VS 마이크로 서비스 아키텍쳐

 

모놀리틱: 하나의 어플리케이션에서 다 돌아가는 서비스 (컨트롤이 쉽고 전체 프로세스가 보인다) 

람다는 하나가 무너져도 다른 람다가 제역할을 함 

하나의람다구문이 여러 역할을 가능 

마이크로 서비스는 서비스를 최소단위로 독립적으로 관리한다. 

 - AWS Lambda 및 클라우드 워치로 로깅 정리 공부

 - 통계공부 살짝 ( 유클리드 거리, 통계에서의 정규화)

유클리드 거리는 a와 b사이이 유사도 거리를 계산

정규화는 0~1사이의 데이터로 

 - AWS Athena의 쩌는 장점들을 공부

 - 오라클 DB처럼 마우스로 드래그한 상태로 독립적으로 하나의 쿼리씩 실행해야함 (삽질 4시간..)

AWS내 다른 데이터베이스들 하나의 쿼리로 해결이 됨

 

ddl 예시)

CREATE EXTERNAL TABLE IF NOT EXISTS  테이블( 

 컬럼정보

)PARTITIONED BY (파시텨닝 할부분 대체로 date time 자주씀) 

STORED AS PARQUET LOCATION [S3나 db 주소 엔드포인트]' tblproperties("parquet.compress"="압축방법") 

 

MSCK REPAIR TABLE 로 데[이터를 적재후

select * 

from  

where

dml쓰면 된다

 

 

'메타인지 > TIL' 카테고리의 다른 글

TIL 01/03~01/09  (0) 2020.01.09
TIL 12/27~01/02  (0) 2020.01.02
TIL 12/13~12/19  (0) 2019.12.19
TIL 12/06~12/12  (0) 2019.12.12
TIL 11/29~12/05  (0) 2019.12.05