[AWS] Datalake DevOps

1. Datalake란?

  • 모든 정형 및 비정형 데이터를 규모에 상관없이 저장할 수 있는 하나의 중앙 집중식 저장소
  • 데이터를 구조화 할 필요 없이 있는 그대로 저장이 가능
  • 대시보드 및 시각화에서 빅 데이터 처리, 실시간 분석 및 머신 러닝에 이르기까지 다양한 유형의 분석을 실행하여 더 나은 결정을 내릴 수 있습니다.
  • 클라우드는 더 나은 보안, 더 빠른 배포 시간, 더 나은 가용성, 더 빈번한 기능 업데이트, 더 많은 탄력성, 더 많은 지리적 범위, 실제 활용과 관련된 비용 효율성으로 인해 데이터레이크 구축시 이상적입니다.
  • 현대적 데이터 아키텍쳐는 데이터 레이크, 데이터 웨어하우스 및 목적별 스토어를 통합하여 통합 거버넌스와 간편한 데이터 이동을 지원

Datalake DevOps Techday Architecture

2. 빅데이터 처리 과정

2.1 빅데이터 기획

  • 기획이란 무엇을, 왜 해야 하는지를 명확히 하는 것. 

  • 목표달성 최적화를 위해 의사결정과 실행 과정에 필요한 정보와 인사이트를 과학적 분석 을 통해 제공하는 분석체계를 수립하는 것을 말합니다.

2.2 빅데이터 수집

  • 데이터를 검색하여 수집하여 데이터를 확보하는 과정

  • 세부 절차로는 대상 데이터 선정 > 세부계획 수립 > 수집 실행 순으로 수집됨.

2.3 빅데이터 저장/관리

  • 수집한 데이터를 분석에 사용하기에 적합, 안전하게 영구적인 방법으로 보관하는 것

  • 대용량의 다양한 형식의 데이터를 고성능으로 저장하고, 필요 시 데이터 검색, 수정, 삭제 또는 원하는 내용을 읽어오는 방법 제공까지 포함

  • 빅데이터 저장을 위한 고려 요소
    • 저장 단가를 절감할 수 있는 비용 문제      
    • 자료 저장과 인출 속도를 향상시킬 수 있는 성능 문제
    • 저장의 신뢰도와 안정성을 보장하는 문제
    • 저장 공간의 확장성 문제
    • 데이터 스키마 및 구조에 상관없이 검색, 수집, 저장, 편집할 수 있는 환경 구축

<S3 이점>

<저장단계에서의 s3적재>

  • 많은 사용자가 접속을 해도 이를 감당하기 위해서 시스템적인 작업을 하지 않아도 됨.
  • 저장할 수 있는 파일 수의 제한이 없다.
  • 최소 1바이트에서 최대 5TB의 데이터를 저장하고 서비스 할 수 있다.
  • 파일에 인증을 붙여서 무단으로 엑세스 하지 못하도록 할 수 있다.
  • REST, SOAP 인터페이스를 제공한다.
  • 데이터를 여러 시설에서 중복으로 저장해 데이터의 손실이 발생할 경우 자동으로 복원한다.
  • 버전관리 기능을 통해서 사용자에 의한 실수도 복원이 가능하다.
  • 정보의 중요도에 따라서 보호 수준을 차등 할 수 있고, 이에 따라서 비용을 절감 할 수 있다.

2.4 빅데이터 처리

  • 빅데이터에서 유용한 정보와 의미 있는 지식을 찾아내기 위한 데이터 가공이나 데이터 분석 과정을 지원하는 과정

  • 지속적으로 발생하는 스트림 데이터나 기존 저장소에 저장된 대규모 저장 데이터의 적시 처리를 지원

  • 데이터 셋에서 원하는 부분만 혹은 전체를 추출하고, 분석을 위해 데이터셋을 재배치 하는 등의 데이터 셋의 폼을 바꾸는 과정

<Lambda>

< 코드 기반의 lambda 처리>

  • 이벤트에 대한 응답으로 코드를 실행하고 자동으로 기본 컴퓨팅 리소스를 관리하는 서버리스 컴퓨팅 서비스이다.
  • 가용성이 뛰어난 컴퓨팅 인프라에서 코드를 실행하고 컴퓨팅 리소스 관리를 모두 수행한다. 
  • 서버 및 운영 체제 유지 관리, 용량 프로비저닝 및 자동 크기 조정, 코드 및 보안 패치 배포와 코드 모니터링 및 로깅이 포함된다.
  • 개발자는 코드를 제공하기만 하면 된다.
  • 기본적으로 Java, Go, PowerShell, Node.js, C#, Python 및 Ruby 코드를 지원, 그 밖에 프로그래밍 언어를 사용해 함수를 작성할 수 있도록 Runtime API도 제공된다.

<Glue>

<Glue Studio를 통한 ETL>

<Glue Crawler로 s3에 적재된 파일의 테이블 스키마 생성>

  • 완전 관리형 추출, 변환 및 로드(ETL) 서비스
  • 효율적인 비용으로 간단하게 여러 데이터 스토어 및 데이터 스트림 간에 원하는 데이터를 분류, 정리, 보강, 이동한다. 
  • AWS Glue는 AWS Glue Data Catalog로 알려진 중앙 메타데이터 리포지토리, 자동으로 Python 및 Scala 코드를 생성하는 ETL 엔진, 그리고 종속성 확인, 작업 모니터링 및 재시도를 관리하는 유연한 스케줄러로 구성된다. 
  • 서버리스이므로 설정하거나 관리할 인프라가 없다.

<Parquet 데이터 포맷>

  • 데이터를 저장하는 방식 중 하나로 하둡생태계에서 많이 사용되는 파일 포맷
  • 빅데이터 처리는 많은 시간과 비용이 들어가서 빠르게 읽어야 하고, 압축률이 좋아야 하고, 특정언어에 종속되지 않아야 한다.
  • 압축률이 좋다. 컬럼단위로 구성하면 데이터가 균일하므로 압축률이 높아 파일의 크기도 작다.
  • 디스크 I/O가 적다. 컬럼단위로 데이터가 저장되어 필요한 컬럼만 읽는다. 선택하지 않은 컬럼의 데이터는 디스크에서 읽지 않기 때문에 디스크 I/O가 적다.
  • 컬럼별로 적합한 인코딩을 사용 가능하다.

<Snappy 압축방식>

  • 구글에서 자체 개발한 압축 라이브러리로 소요되는 리소스 비용이 적절하고 매우 빠른 압축률을 제공하기 위한 목적으로 개발되었다.
  • 빠르고 안정적이고 무료이다.
  • Gzip 압축과 비교하여 Snappy 압축이 빠르지만 약간 더 높은 저장 비용을 고려해야 할 수도 있다. Snappy를 사용하면 저장 파일이 더 커진다.
  • 반대로 컴퓨팅 비용이 절감된다. Snappy를 사용하여 데이터를 압축 형식으로 처리하는 데 더 적은 리소스가 필요하다. 일반적으로 컴퓨팅 리소스는 스토리지보다 비싸다. 

2.5 빅데이터 분석

  • 의미 있는 지식을 얻고 효율적인 의사결정에 활용하기 위한 분석과정 

  • 효과적인 분석방법과 다양한 인프라가 필요함. 

정량 분석과 정성 분석은 각각의 특징을 가지기 때문에 실제로 데이터 분석 시 2가지 데이터 분석 방법을 조합하는 경우가 많다. 

<정량 데이터 분석>

  • 정량 데이터 분석이란 ‘수치데이터’를 바탕으로 분석하는 방법이다. 
  • 구체적으로는 사이트의 접속수, 순이익 등 객관적으로 현상을 평가하는 것을 가리킨다. 
  • 정량 데이터 분석은 사람의 경험이나 느낌에 좌우되지 않는 장점이 있다. 
  • 다만, 분석 결과의 확실성을 보장하기 위해 많은 샘플을 수집할 필요가 있다.

<정성 데이터 분석>

  • 정성 데이터 분석은 숫자를 사용하지 않고, ‘질적 데이터’를 바탕으로 분석하는 방법이다. 
  • 예를 들면, 고객에게 제품 이용의 느낌에 관한 설문조사를 실시할 때, 수치만으로 나타낼 수 없는 정보가 있다. 혹은 성별, 꽃의 종류, 날씨(맑음이나 비) 등이 있다. 
  • 정량 데이터 분석에 비해 객관성이 부족하다는 단점이 있다. 
  • 전체의 과제나 논점을 파악하기 위한 대국적인 정보를 읽어낼 수 있다.

<Athena>

<표준 SQL로 Athena에서 데이터 분석>

  • Amazon Athena는 표준 SQL을 사용해 Amazon S3에 저장된 데이터를 간편하게 분석할 수 있는 대화식 쿼리 서비스이다.
  • Athena는 서버리스 서비스이므로 관리할 인프라가 없으며 실행한 쿼리에 대해서만 비용을 지불하면 된다.
  • 쿼리를 실행하면서 스캔한 데이터용량의 1TB당 5$이다.
  • 데이터를 압축 및 파티셔닝하고 컬럼형식으로 변환함으로써 쿼리당 비용을 절감하고 성능 향상이 가능하다.
  • Athena는 사용이 쉽다. Amazon S3에 저장된 데이터를 가리키고 스키마를 정의한 후 표준 SQL을 사용하여 쿼리를 시작하기만 하면 된다. 대부분 결과가 수 초 이내에 제공됩니다. 
  • Athena에서는 데이터 분석을 준비하기 위한 복잡한 ETL 작업이 필요 없다. 
  • SQL을 다룰 수 있는 사람은 누구나 신속하게 대규모 데이터 세트를 분석할 수 있다.
  • Athena는 AWS Glue 데이터 카탈로그와 즉시 통합된다. 다양한 서비스에 걸쳐 통합된 메타데이터 리포지토리를 생성하고, 데이터 원본을 크롤링하여 스키마를 검색하고 카탈로그를 신규 및 수정된 테이블 정의와 파티션 정의로 채우며, 스키마 버전을 관리할 수 있다.

2.6 빅데이터 시각화

  • 빅데이터 분석 결과를 쉽게 이해할 수 있도록 시각적으로 표현하여 전달하는 과정이다.

  • 다양한 시각화 방법을 통해 보는 사람의 흥미를 유발하고, 정보를 습득하는 시간을 단축 시켜 빠른 상황판단을 돕는다.

  • 정보를 빠르게 확산 시킬 수 있고, 한번 보고도 자료를 오래 기억할 수 있으며 무엇보다도 정보에 대해 효과적으로 커뮤니케이션 할 수 있다.

<QuickSight>

  • 클라우드 규모의 비즈니스 인텔리전스 (BI) 서비스로, 어디서든 함께 작업하는 사람들에게 이해하기 쉬운 인사이트를 제공하는 데 사용할 수 있다.
  • 인 메모리 엔진, SPICE를 통해 빠른속도로 분석이 가능하다.
  • 라이센스에 대한 선결제 비용이 없으며 총 소유 비용 (TCO) 이 저렴하다.
  • 애플리케이션을 설치할 필요 없이 협업 분석 가능하다.
  • 다양한 데이터를 하나의 분석으로 결합한다.
  • 분석을 대시보드로 게시하고 공유한다.

– Standard Vs Enterprise –

1. 공통점

  • 두 에디션 모두 데이터 시각화 생성 및 공유를 위한 전체 기능 세트를 제공한다.
  • 모든 에디션은 현재 Amazon QuickSight에서 지원하는 모든 AWS 리전에서 사용 가능하다.

2. Enterprise

  • 저장 데이터 암호화 및 Microsoft Active Directory 통합 기능을 제공한다.
  • 데이터 액세스에 대한 세분화된 권한을 제공한다.
  • ML Insight 기능을 제공한다.
  • 대시보드 템플릿을 프로그래밍 방식으로 스크립팅 가능하다.
  • SPICE 영역에 더 큰 데이터를 할당할 수 있으며 가능한 예약된 데이터 새로고침 빈도 횟수가 증가한다. 

– SPICE –

  • 직접 SQL 쿼리를 사용하지 않고 데이터 세트로 데이터를 가져오는 저장 방식인 SPICE  데이터를 지원한다.
  • SPICE(Super-fast, Parallel, In-memory Calculation Engine) 는 Amazon QuickSight에서 사용하는 강력한 인메모리 엔진이다. 
  • 고급 계산을 신속하게 수행하고 데이터를 제공하도록 설계되었다.
  • 데이터를 SPICE로 가져오면( 수집 이라고도 함 ) 시간과 비용을 절약할 수 있다.
  • 분석 쿼리가 더 빠르게 처리된다.
  • 직접 쿼리가 처리될 때까지 기다릴 필요가 없다.
  • SPICE에 저장된 데이터는 추가 비용 없이 여러 번 재사용할 수 있다. 쿼리당 요금이 청구되는 데이터 원본을 사용하는 경우 데이터 세트를 처음 생성할 때와 나중에 데이터 세트를 새로 고칠 때 데이터 쿼리에 대한 요금이 부과된다.

<QuickSight 대시보드를 통한 빅데이터 분석 결과 가시화>

[Hands On]

[Lambda] S3트리거에 의한데이터 전처리
[Glue] ETL처리와 S3 스키마 크롤링
[Athena] 공공데이터 분석하기