© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
이경수, 솔루션즈아키텍트
AWS를 통한 빅데이터 기반
비지니스 인텔리전스 구축
Amazon Athena, Amazon QuickSight 활용방안
본 강연에서 다룰 내용
• 빅데이터 수집 – Amazon Kinesis Firehose
• 빅데이터 저장소(Data Lake) – Amazon S3
• 빅데이터 처리 – Amazon Athena, Amazon Redshift
• 시각화(BI) – Amazon QuickSight
Amazon S3
Amazon
DynamoDB
Amazon RDS
Amazon Mobile
Analytics Amazon EMR
Amazon Redshift
Amazon
Lambda
Amazon Kinesis
Stream/Firehose
Amazon Machine
Learning
Amazon
Athena
Amazon
Glacier
Amazon
EFS
Amazon
Elasticsearch
Service
Amazon
Kinesis
Analytics
Amazon QuickSight
AWS
Import/Export
Snowball
StoreCollect Process Visualize
AWS 빅데이터 분석 빌딩 블록
Collect – Kinesis Firehose
Amazon S3
Amazon
DynamoDB
Amazon RDS
Amazon Mobile
Analytics Amazon EMR
Amazon Redshift
Amazon
Lambda
Amazon Machine
Learning
Amazon
Athena
Amazon
Glacier
Amazon
EFS
Amazon
Elasticsearch
Service
Amazon
Kinesis
Analytics
Amazon QuickSight
AWS
Import/Export
Snowball
StoreCollect Process Visualize
Amazon Kinesis
Firehose
AWS 빅데이터 분석 빌딩 블록
Amazon Kinesis Firehose
• 완전 관리형 데이터 스트리밍 서비스로 데이터를 스토리지나
데이터웨어하우스로 저장
• 데이터를 압축하거나 암호화하여 스트리밍 할 수 있음
• 전송량에 따라 즉시 스케일링 됨(샤딩을 고민할 필요 없음)
• 처리된 GB당 과금($0.035 per GB)
Store – S3
Amazon S3
Amazon
DynamoDB
Amazon RDS
Amazon Mobile
Analytics Amazon EMR
Amazon Redshift
Amazon
Lambda
Amazon Machine
Learning
Amazon
Athena
Amazon
Glacier
Amazon
EFS
Amazon
Elasticsearch
Service
Amazon
Kinesis
Analytics
Amazon QuickSight
AWS
Import/Export
Snowball
StoreCollect Process Visualize
Amazon Kinesis
Firehose
AWS 빅데이터 분석 빌딩 블록
Amazon S3
• 고가용성 오브젝트 스토리지
• 99.999999999% 데이터 내구성
• 3개 시설을 걸친 데이터 복제
• 가상적으로 무제한 용량
• 사용한만큼 과금(사전 provisioning
불필요)
• event notification 기능을 통해 추가
작업 가능
Amazon S3
Kinesis
for Real-
Time
Process - Athena
Amazon S3
Amazon
DynamoDB
Amazon RDS
Amazon Mobile
Analytics Amazon EMR
Amazon Redshift
Amazon
Lambda
Amazon Machine
Learning
Amazon
Athena
Amazon
Glacier
Amazon
EFS
Amazon
Elasticsearch
Service
Amazon
Kinesis
Analytics
Amazon QuickSight
AWS
Import/Export
Snowball
StoreCollect Process Visualize
Amazon Kinesis
Firehose
AWS 빅데이터 분석 빌딩 블록
고객들이 겪고 있는 어려움들
• S3 에 있는 데이터 분석에 너무 많은 작업이 필요해요
• 수집된 데이터세트에 접근만 하면 되는데..
• 우리는 하둡 클러스터나 데이터 웨어하우스 운영에
대한 전문성이 조금..
Amazon Athena
Amazon S3에 저장된 데이터를
직접 접근하여, 표준 SQL 구문으로,
손쉽게 분석할 수 있는
대화형 쿼리 서비스(interactive query service)
Athena is Serverless
• 인프라, 관리자 없이
• 즉시 사용 가능하며
• 업그레이드 등 유지보수
없음
Amazon Athena – 사용 편리성
• 콘솔 로그인
• 테이블 생성
• Hive DDL 구문
• ‘Add Table wizard’를 콘솔 상에서 사용
• 쿼리 실행!
Amazon S3로 부터 직접 질의
• 데이터 로딩이 필요치 않음
• raw 포맷 데이터에 질의(query)
• Text, CSV, JSON, weblogs, AWS service logs
• 최대의 성능과 낮은 비용을 위해 ORC 나 Parquet 같은 최적화된
포맷으로 변환
• 데이터 변환을 위한 ETL이 필요하지 않음
• S3 로부터의 직접 연결
• Amazon S3 의 내구성 및 가용성 활용
ANSI SQL 지원
• ANSI SQL 지원
• 복잡한 join, nested 쿼리, window
함수들 지원
• 복잡한 데이터 유형 지원 (arrays,
structs)
• 데이터 파티션닝 지원
• (date, time, custom keys)
• e.g., Year, Month, Day, Hour or
Customer Key, Date
친숙한 기술들을 활용
SQL 쿼리 사용
메모리 기반 분산 쿼리 엔진
확장성을 지닌 ANSI-SQL 호환
DDL(Data Definition Language) functionality
복잡한 데이터 유형
다양한 데이터 포맷
데이터 파티션닝 지원
하둡기반 아파치 에코 시스템
• Map,Reduce 한계 극복
• 실시간성 분석
• SQL기반 데이터 처리
• 사용자 경험 확대의 시각화 필요
• 다양한 분석 방식 적용
SQL
Processing/Analysis
Real-Time
Machine Learning
NoSQL
다양한 Open Source Software
HDFS (Hadoop File System)
YARN (Cluster Resource Manager)
Tez
Spark
Cascading
Pig
MR Mahout
MLLib
Hive
Impala
Tez
SparkSQL
Drill
Hbase
Phoenix
Spark
Streaming
StormAccumulo
Sqoop
Flume
Kafka
NFS
Ranger
Knox
HTTPFS
WebHDFS
HDFS
Encryption
Sentry
oozie
Data
Integration
Batch ML SQL NoSQL Stream Security Monitoring
Zookeeper
HUE
Ambari
Presto
Apache Hive
• Java code가 아닌 SQL(HQL)기반
• 사용자 SQL을 MapReduce로 자동 변환하여 처리
• DW 대체가능
일반적인 Hive 기반 BI 구성
정기적인
배치작업
관계형 데이터베이스
또는
데이터웨어하우스
대시보드 / BI
• 확장성 결여
• 추가 비용
실시간
데이터
쿼리 불가
Presto
A distributed SQL query engine for interactive data analysis against
GBs to PBs of data
What’s the problems to solve?
• Hive 는 BI용 대쉬보드에 사용하기에 너무 느려서
• Hive 기반 수행된 결과 저장용 DB(PostgreSQL, Redshift ) 별도 필요
• 데이터 소스가 HDFS가 아닌 경우도 있음
일반적인 Presto 기반 BI 구성
NoSQL
대시보드 / BI툴
RDB
…
대화형 쿼리
친숙한 기술들을 활용
SQL 쿼리 사용
메모리 기반 분산 쿼리 엔진
확장성을 지닌 ANSI-SQL 호환
DDL(Data Definition Language) functionality
복잡한 데이터 유형
다양한 데이터 포맷
데이터 파티션닝 지원
Amazon Athena 지원하는 다양한 포맷들
• Text 파일(CSV, raw logs)
• Apache Web Logs, TSV 파일
• JSON (simple, nested)
• 압축된 파일
• Columnar 포맷 (Apache Parquet & Apache ORC)
• AVRO
Amazon Athena – 비용 효율성
• Pay per query
• $5 per TB scanned from S3
• DDL 쿼리와 실패한 쿼리는 무료
• 압축, columnar 포맷, 파티션을 사용하여 비용 절감 가능
고객의 어려움 해결
S3 에 있는 데이터 분석에 너무 많은 작업이 필요해요
 No ETL, No 데이터 로딩, 라이브 데이터에 직접 쿼리
수집된 데이터세트에 접근만 하면 되는데..
 사용자들이 원하는 모든 데이터를 점진적으로 쿼리 가능
우리는 하둡 클러스터나 데이터 웨어하우스 운영에 대한 전문성이
조금..
 인프라를 관리할 필요가 없음
Amazon Athena 사용
매우 간단한 쿼리 실행
실행 시간과
스캔된
데이터 양
쿼리 히스토리
쿼리 저장
쿼리 결과 저장
JDBC 사용
JDBC 기반 프로그래밍 방법
/* Setup the driver */
Properties info = new Properties();
info.put("user", "AWSAccessKey");
info.put("password", "AWSSecretAccessKey");
info.put("s3_staging_dir", "s3://S3 Bucket Location/");
Class.forName("com.amazonaws.athena.jdbc.AthenaDriver");
Connection connection = DriverManager.getConnection("jdbc:awsathena://athena.us-east-
1.amazonaws.com:443/", info);
• http://docs.aws.amazon.com/athena/latest/ug/connect-with-jdbc.html
• https://s3.amazonaws.com/athena-downloads/drivers/AthenaJDBC41-1.0.0.jar
Creating Tables - DDL 샘플
CREATE EXTERNAL TABLE heartrate_iot_data (
heartRate int, userId string, rateType string, dateTime timestamp)
PARTITIONED BY(rateType)
ROW FORMAT serde 'org.apache.hive.hcatalog.data.JsonSerDe'
with serdeproperties( 'ignore.malformed.json' = 'true' )
LOCATION 's3://<CREATED-BUCKET>/iot_to_bi_example/’
• Apache 웹 로그: "org.apache.hadoop.hive.serde2.RegexSerDe"
• CSV: "org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe"
• TSV: "org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe"
• 사용자 지정 구분 기호: "org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe"
• Parquet: "org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe"
• Orc: "org.apache.hadoop.hive.ql.io.orc.OrcSerde"
• JSON: “org.apache.hive.hcatalog.data.JsonSerDe” 또는
org.openx.data.jsonserde.JsonSerDe
Seriailizer / Deserializer
https://github.com/awslabs/aws-big-data-blog/tree/master/aws-blog-spark-parquet-conversion
ORC 와 Parquet 으로 변환
• Hive CTAS 를 사용하여 변환 가능
CREATE TABLE new_key_value_store
STORED AS PARQUET
AS
SELECT col_1, col_2, col_3 FROM noncolumnartable
SORT BY new_key, key_value_pari;
• Spark 를 사용하여 Parquet/ORC 로 변환 가능
• EMR 에서 동작하는 20 줄의 Pyspark 코드
• 1TB 텍스트 데이터를 130GB 의 snappy 및 Parquet 으로 변환
• $5 비용 발생
Pay By the Query - $5/TB Scanned
• Query별 스캔된 데이터 양 만큼 과금
• 비용 절감 방법
• 압축
• Columnar 포맷으로 변환
• 파티션닝 적용
• 무료 : DDL 쿼리, 실패한 쿼리
Dataset Size on Amazon S3 Query Run time Data Scanned Cost
Logs stored as Text
files
1 TB 237 seconds 1.15TB $5.75
Logs stored in
Apache Parquet
format*
130 GB 5.13 seconds 2.69 GB $0.013
Savings 87% less with Parquet 34x faster 99% less data scanned 99.7% cheaper
Process - Redshift
Amazon S3
Amazon
DynamoDB
Amazon RDS
Amazon Mobile
Analytics Amazon EMR
Amazon Redshift
Amazon
Lambda
Amazon Machine
Learning
Amazon
Athena
Amazon
Glacier
Amazon
EFS
Amazon
Elasticsearch
Service
Amazon
Kinesis
Analytics
Amazon QuickSight
AWS
Import/Export
Snowball
StoreCollect Process Visualize
Amazon Kinesis
Firehose
AWS 빅데이터 분석 빌딩 블록
Amazon Redshift 시스템 아키텍처
Leader node
• SQL 엔드포인트
• 메타데이터 저장
• 쿼리 실행을 조율
Compute nodes
• Local, columnar 스토리지
• 쿼리 병렬 실행
• Load, backup, restore via
Amazon S3; load from
Amazon DynamoDB, Amazon EMR, or SSH
Two hardware platforms
• 데이터 처리에 최적화
• DS2: HDD; scale from 2TB to 2PB
• DC1: SSD; scale from 160GB to 356TB
10 GigE
(HPC)
JDBC/ODBC
Amazon Redshift는 빠릅니다
Dramatically less I/O
Column storage
Data compression
Zone maps
Direct-attached storage
Large data block sizes
analyze compression listing;
Table | Column | Encoding
---------+----------------+----------
listing | listid | delta
listing | sellerid | delta32k
listing | eventid | delta32k
listing | dateid | bytedict
listing | numtickets | bytedict
listing | priceperticket | delta32k
listing | totalprice | mostly32
listing | listtime | raw
10 | 13 | 14 | 26 |…
… | 100 | 245 | 324
375 | 393 | 417…
… 512 | 549 | 623
637 | 712 | 809 …
… | 834 | 921 | 959
10
324
375
623
637
959
Amazon Redshift 는 관리형 서비스 입니다
지속적인 증분 백업
클러스터 내 다중 복사본
지속적인 증분 백업을 S3에 저장
지속적인 증분 백업을 크로스 리전에
복제
Streaming 복구
Amazon S3
Amazon S3
Region 1
Region 2
Amazon Redshift 는 확장 가능합니다
• 근사 함수(Approximate functions)
• 사용자 정의 함수(User Defined Function)
• 머신러닝 / 데이터 사이언스
Template
CREATE [ OR REPLACE ] FUNCTION
f_function_name
( [ argument_name arg_type, ... ] )
RETURNS data_type
{ VOLATILE | STABLE | IMMUTABLE }
AS $$
python_program
$$ LANGUAGE plpythonu;
Scalar UDF 예제 – URL parsing
Example
CREATE FUNCTION f_hostname (url
VARCHAR)
RETURNS varchar
IMMUTABLE AS $$
import urlparse
return
urlparse.urlparse(url).hostname
$$ LANGUAGE plpythonu;
SELECT REGEXP_REPLACE(url, '(https?)://([^@]*@)?([^:/]*)([/:].*|$)', ‘3')
FROM table;
SELECT f_hostname(url)
FROM table;
Querying Redshift with R 패키지
• RJDBC – supports SQL queries
• dplyr – Uses R code for data
analysis
• RPostgreSQL - R compliant
driver or Database Interface
(DBI)
R User
R Studio
Amazon
EC2
Unstructured Data
Amazon S3
User Profile
Amazon RDS
Amazon Redshift
Connecting R with Amazon Redshift blog post: https://blogs.aws.amazon.com/bigdata/post/Tx1G8828SPGX3PK/Connecting-R-with-Amazon-Redshift
Data Engineer 친숙한 Hadoop, Spark 연계
Data Engineer
Existing Structured Data
Amazon Redshift
New Structured Data
Amazon Redshift
Amazon EMR
spark-redshift
Enrichment /
Transformation
ETL
Data Source
Amazon Redshift
Integration
Visualize - QuickSight
Amazon S3
Amazon
DynamoDB
Amazon RDS
Amazon Mobile
Analytics Amazon EMR
Amazon Redshift
Amazon
Lambda
Amazon Machine
Learning
Amazon
Athena
Amazon
Glacier
Amazon
EFS
Amazon
Elasticsearch
Service
Amazon
Kinesis
Analytics
Amazon QuickSight
AWS
Import/Export
Snowball
StoreCollect Process Visualize
Amazon Kinesis
Firehose
AWS 빅데이터 분석 빌딩 블록
Amazon Quicksight
• 빠르고 클라우드 기반 BI 서비스로 기존
BI 솔루션 대비 1/10 비용
• AWS 서비스, 외부 플랫폼, 파일등을
데이터 소스로 활용
• 인메모리 계산 엔진(SPICE)기반으로
분석 및 시각화를 가속
• 다른 파트너사 BI 솔루션으로 연계 확장
• 월 사용자 당 $9 부터 시작
기본 개념
Retail Data
Ops Data
Marketing Data
Relational
Databases
Flat Files
Athena
QuickSight API
Data Prep Metadata SuggestionsConnectors SPICE
QuickSight UI
Mobile Devices Web Browsers
Partner BI products
Amazon
S3
Amazon
Athena
Amazon
DynamoDB
Amazon
EMR
Amazon
Redshift
Amazon
RDS
Files Apps
Direct connect
JDBC/ODBC
On
premises
Data
BI Analyst Data Scientist / EngineerApplication User
QuickSight + Amazon Redshift
Amazon Redshift
QuickSight + Amazon RDS
Amazon RDS
QuickSight + Athena
Amazon Athena
3단계 Athena 쿼리 결과 시각화
Free
(60 days)
$9
(Annual)
$12
(Month to Month)
$18
(Annual)
$24
(Month to Month)
사용 예
Amazon S3
EMR Athena
QuickSight
Redshift
Amazon Redshift, EMR 그리고 Athena
DW, 자동화된 리포트
TB-PB 단위의 정형화된
데이터를
주기적인 시간,일,주
단위 배치 분석
빠른 쿼리
DW 팀, BI 팀, 분석가
Adhoc 쿼리, 로그 분석
SQL 기술만으로
히스토리컬
데이터/로그를
새로운 아이디어로 분석
분석가, BI 팀, 데이터
엔지니어
Data Transformation,
ETL
비정형데이터의 변환
Spark, MapReduce,
Hadoop cluster
데이터 엔지니어, 데이터
사이언티스트
Amazon Redshift, EMR 그리고 Athena
RedshiftEMR Athena
빅데이터 분석 파이프라인 샘플
다양한
데이터들을
S3로 저장
EMR을 통해
데이터 트랜스폼
및 클린징
(ETL)
정형화된
데이터를
S3에 저장
빠른 분석질의를
위해 Redshift에
데이터를 병렬로
로딩
Quicksight를 통해
분석 및 시각화
SQL 을 사용하여 raw data 에 애드혹 접근
다양한
데이터들을
S3로 저장
EMR을 통해
데이터 트랜스폼
및 클린징
(ETL)
정형화된
데이터를
S3에 저장
빠른 분석질의를
위해 Redshift에
데이터를 병렬로
로딩
Quicksight를 통해
분석 및 시각화
빅데이터 분석 파이프라인 샘플
SQL 을 사용하여 raw data 에 애드혹
접근
Athena 는 수집된
데이터세트에도 추가 쿼리
가능
다양한
데이터들을
S3로 저장
EMR을 통해
데이터 트랜스폼
및 클린징
(ETL)
정형화된
데이터를
S3에 저장
빠른 분석질의를
위해 Redshift에
데이터를 병렬로
로딩
Quicksight를 통해
분석 및 시각화
빅데이터 분석 파이프라인 샘플
꼭 기억해 주세요!
Amazon
S3
Collect Store Process Visualize
Amazon
Kinesis
Firehose
Amazon
Athena
Amazon
QuickSight
AWS 서버리스 서비스만으로 대규모 데이터를
손쉽게 분석할 수 있습니다!
본 강연이 끝난 후…
• [AWS Big Data Blog] Derive Insights from
IoT in Minutes using AWS IoT, Amazon
Kinesis Firehose, Amazon Athena, and
Amazon QuickSight
• 한글 랩 가이드 - http://bit.ly/2pjTVzt
Thank you!
함께 해주셔서 감사합니다!
https://www.awssummit.kr
AWS Summit 모바일 앱을 통해 지금 세션 평가에
참여하시면, 행사 후 기념품을 드립니다.
#AWSSummitKR 해시태그로 소셜 미디어에
여러분의 행사 소감을 올려주세요.
발표 자료 및 녹화 동영상은 AWS Korea 공식 소셜
채널로 공유될 예정입니다.
여러분의 피드백을 기다립니다!

AWS를 통한 빅데이터 기반 비지니스 인텔리전스 구축- AWS Summit Seoul 2017

  • 1.
    © 2017, AmazonWeb Services, Inc. or its Affiliates. All rights reserved. 이경수, 솔루션즈아키텍트 AWS를 통한 빅데이터 기반 비지니스 인텔리전스 구축 Amazon Athena, Amazon QuickSight 활용방안
  • 2.
    본 강연에서 다룰내용 • 빅데이터 수집 – Amazon Kinesis Firehose • 빅데이터 저장소(Data Lake) – Amazon S3 • 빅데이터 처리 – Amazon Athena, Amazon Redshift • 시각화(BI) – Amazon QuickSight
  • 3.
    Amazon S3 Amazon DynamoDB Amazon RDS AmazonMobile Analytics Amazon EMR Amazon Redshift Amazon Lambda Amazon Kinesis Stream/Firehose Amazon Machine Learning Amazon Athena Amazon Glacier Amazon EFS Amazon Elasticsearch Service Amazon Kinesis Analytics Amazon QuickSight AWS Import/Export Snowball StoreCollect Process Visualize AWS 빅데이터 분석 빌딩 블록
  • 4.
  • 5.
    Amazon S3 Amazon DynamoDB Amazon RDS AmazonMobile Analytics Amazon EMR Amazon Redshift Amazon Lambda Amazon Machine Learning Amazon Athena Amazon Glacier Amazon EFS Amazon Elasticsearch Service Amazon Kinesis Analytics Amazon QuickSight AWS Import/Export Snowball StoreCollect Process Visualize Amazon Kinesis Firehose AWS 빅데이터 분석 빌딩 블록
  • 6.
    Amazon Kinesis Firehose •완전 관리형 데이터 스트리밍 서비스로 데이터를 스토리지나 데이터웨어하우스로 저장 • 데이터를 압축하거나 암호화하여 스트리밍 할 수 있음 • 전송량에 따라 즉시 스케일링 됨(샤딩을 고민할 필요 없음) • 처리된 GB당 과금($0.035 per GB)
  • 7.
  • 8.
    Amazon S3 Amazon DynamoDB Amazon RDS AmazonMobile Analytics Amazon EMR Amazon Redshift Amazon Lambda Amazon Machine Learning Amazon Athena Amazon Glacier Amazon EFS Amazon Elasticsearch Service Amazon Kinesis Analytics Amazon QuickSight AWS Import/Export Snowball StoreCollect Process Visualize Amazon Kinesis Firehose AWS 빅데이터 분석 빌딩 블록
  • 9.
    Amazon S3 • 고가용성오브젝트 스토리지 • 99.999999999% 데이터 내구성 • 3개 시설을 걸친 데이터 복제 • 가상적으로 무제한 용량 • 사용한만큼 과금(사전 provisioning 불필요) • event notification 기능을 통해 추가 작업 가능 Amazon S3
  • 10.
  • 11.
  • 12.
    Amazon S3 Amazon DynamoDB Amazon RDS AmazonMobile Analytics Amazon EMR Amazon Redshift Amazon Lambda Amazon Machine Learning Amazon Athena Amazon Glacier Amazon EFS Amazon Elasticsearch Service Amazon Kinesis Analytics Amazon QuickSight AWS Import/Export Snowball StoreCollect Process Visualize Amazon Kinesis Firehose AWS 빅데이터 분석 빌딩 블록
  • 13.
    고객들이 겪고 있는어려움들 • S3 에 있는 데이터 분석에 너무 많은 작업이 필요해요 • 수집된 데이터세트에 접근만 하면 되는데.. • 우리는 하둡 클러스터나 데이터 웨어하우스 운영에 대한 전문성이 조금..
  • 14.
    Amazon Athena Amazon S3에저장된 데이터를 직접 접근하여, 표준 SQL 구문으로, 손쉽게 분석할 수 있는 대화형 쿼리 서비스(interactive query service)
  • 15.
    Athena is Serverless •인프라, 관리자 없이 • 즉시 사용 가능하며 • 업그레이드 등 유지보수 없음
  • 16.
    Amazon Athena –사용 편리성 • 콘솔 로그인 • 테이블 생성 • Hive DDL 구문 • ‘Add Table wizard’를 콘솔 상에서 사용 • 쿼리 실행!
  • 17.
    Amazon S3로 부터직접 질의 • 데이터 로딩이 필요치 않음 • raw 포맷 데이터에 질의(query) • Text, CSV, JSON, weblogs, AWS service logs • 최대의 성능과 낮은 비용을 위해 ORC 나 Parquet 같은 최적화된 포맷으로 변환 • 데이터 변환을 위한 ETL이 필요하지 않음 • S3 로부터의 직접 연결 • Amazon S3 의 내구성 및 가용성 활용
  • 18.
    ANSI SQL 지원 •ANSI SQL 지원 • 복잡한 join, nested 쿼리, window 함수들 지원 • 복잡한 데이터 유형 지원 (arrays, structs) • 데이터 파티션닝 지원 • (date, time, custom keys) • e.g., Year, Month, Day, Hour or Customer Key, Date
  • 19.
    친숙한 기술들을 활용 SQL쿼리 사용 메모리 기반 분산 쿼리 엔진 확장성을 지닌 ANSI-SQL 호환 DDL(Data Definition Language) functionality 복잡한 데이터 유형 다양한 데이터 포맷 데이터 파티션닝 지원
  • 20.
    하둡기반 아파치 에코시스템 • Map,Reduce 한계 극복 • 실시간성 분석 • SQL기반 데이터 처리 • 사용자 경험 확대의 시각화 필요 • 다양한 분석 방식 적용 SQL Processing/Analysis Real-Time Machine Learning NoSQL
  • 21.
    다양한 Open SourceSoftware HDFS (Hadoop File System) YARN (Cluster Resource Manager) Tez Spark Cascading Pig MR Mahout MLLib Hive Impala Tez SparkSQL Drill Hbase Phoenix Spark Streaming StormAccumulo Sqoop Flume Kafka NFS Ranger Knox HTTPFS WebHDFS HDFS Encryption Sentry oozie Data Integration Batch ML SQL NoSQL Stream Security Monitoring Zookeeper HUE Ambari Presto
  • 22.
    Apache Hive • Javacode가 아닌 SQL(HQL)기반 • 사용자 SQL을 MapReduce로 자동 변환하여 처리 • DW 대체가능
  • 23.
    일반적인 Hive 기반BI 구성 정기적인 배치작업 관계형 데이터베이스 또는 데이터웨어하우스 대시보드 / BI • 확장성 결여 • 추가 비용 실시간 데이터 쿼리 불가
  • 24.
    Presto A distributed SQLquery engine for interactive data analysis against GBs to PBs of data What’s the problems to solve? • Hive 는 BI용 대쉬보드에 사용하기에 너무 느려서 • Hive 기반 수행된 결과 저장용 DB(PostgreSQL, Redshift ) 별도 필요 • 데이터 소스가 HDFS가 아닌 경우도 있음
  • 25.
    일반적인 Presto 기반BI 구성 NoSQL 대시보드 / BI툴 RDB … 대화형 쿼리
  • 26.
    친숙한 기술들을 활용 SQL쿼리 사용 메모리 기반 분산 쿼리 엔진 확장성을 지닌 ANSI-SQL 호환 DDL(Data Definition Language) functionality 복잡한 데이터 유형 다양한 데이터 포맷 데이터 파티션닝 지원
  • 27.
    Amazon Athena 지원하는다양한 포맷들 • Text 파일(CSV, raw logs) • Apache Web Logs, TSV 파일 • JSON (simple, nested) • 압축된 파일 • Columnar 포맷 (Apache Parquet & Apache ORC) • AVRO
  • 28.
    Amazon Athena –비용 효율성 • Pay per query • $5 per TB scanned from S3 • DDL 쿼리와 실패한 쿼리는 무료 • 압축, columnar 포맷, 파티션을 사용하여 비용 절감 가능
  • 29.
    고객의 어려움 해결 S3에 있는 데이터 분석에 너무 많은 작업이 필요해요  No ETL, No 데이터 로딩, 라이브 데이터에 직접 쿼리 수집된 데이터세트에 접근만 하면 되는데..  사용자들이 원하는 모든 데이터를 점진적으로 쿼리 가능 우리는 하둡 클러스터나 데이터 웨어하우스 운영에 대한 전문성이 조금..  인프라를 관리할 필요가 없음
  • 30.
  • 31.
    매우 간단한 쿼리실행 실행 시간과 스캔된 데이터 양
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
    JDBC 기반 프로그래밍방법 /* Setup the driver */ Properties info = new Properties(); info.put("user", "AWSAccessKey"); info.put("password", "AWSSecretAccessKey"); info.put("s3_staging_dir", "s3://S3 Bucket Location/"); Class.forName("com.amazonaws.athena.jdbc.AthenaDriver"); Connection connection = DriverManager.getConnection("jdbc:awsathena://athena.us-east- 1.amazonaws.com:443/", info); • http://docs.aws.amazon.com/athena/latest/ug/connect-with-jdbc.html • https://s3.amazonaws.com/athena-downloads/drivers/AthenaJDBC41-1.0.0.jar
  • 37.
    Creating Tables -DDL 샘플 CREATE EXTERNAL TABLE heartrate_iot_data ( heartRate int, userId string, rateType string, dateTime timestamp) PARTITIONED BY(rateType) ROW FORMAT serde 'org.apache.hive.hcatalog.data.JsonSerDe' with serdeproperties( 'ignore.malformed.json' = 'true' ) LOCATION 's3://<CREATED-BUCKET>/iot_to_bi_example/’ • Apache 웹 로그: "org.apache.hadoop.hive.serde2.RegexSerDe" • CSV: "org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe" • TSV: "org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe" • 사용자 지정 구분 기호: "org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe" • Parquet: "org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe" • Orc: "org.apache.hadoop.hive.ql.io.orc.OrcSerde" • JSON: “org.apache.hive.hcatalog.data.JsonSerDe” 또는 org.openx.data.jsonserde.JsonSerDe Seriailizer / Deserializer
  • 38.
    https://github.com/awslabs/aws-big-data-blog/tree/master/aws-blog-spark-parquet-conversion ORC 와 Parquet으로 변환 • Hive CTAS 를 사용하여 변환 가능 CREATE TABLE new_key_value_store STORED AS PARQUET AS SELECT col_1, col_2, col_3 FROM noncolumnartable SORT BY new_key, key_value_pari; • Spark 를 사용하여 Parquet/ORC 로 변환 가능 • EMR 에서 동작하는 20 줄의 Pyspark 코드 • 1TB 텍스트 데이터를 130GB 의 snappy 및 Parquet 으로 변환 • $5 비용 발생
  • 39.
    Pay By theQuery - $5/TB Scanned • Query별 스캔된 데이터 양 만큼 과금 • 비용 절감 방법 • 압축 • Columnar 포맷으로 변환 • 파티션닝 적용 • 무료 : DDL 쿼리, 실패한 쿼리 Dataset Size on Amazon S3 Query Run time Data Scanned Cost Logs stored as Text files 1 TB 237 seconds 1.15TB $5.75 Logs stored in Apache Parquet format* 130 GB 5.13 seconds 2.69 GB $0.013 Savings 87% less with Parquet 34x faster 99% less data scanned 99.7% cheaper
  • 40.
  • 41.
    Amazon S3 Amazon DynamoDB Amazon RDS AmazonMobile Analytics Amazon EMR Amazon Redshift Amazon Lambda Amazon Machine Learning Amazon Athena Amazon Glacier Amazon EFS Amazon Elasticsearch Service Amazon Kinesis Analytics Amazon QuickSight AWS Import/Export Snowball StoreCollect Process Visualize Amazon Kinesis Firehose AWS 빅데이터 분석 빌딩 블록
  • 42.
    Amazon Redshift 시스템아키텍처 Leader node • SQL 엔드포인트 • 메타데이터 저장 • 쿼리 실행을 조율 Compute nodes • Local, columnar 스토리지 • 쿼리 병렬 실행 • Load, backup, restore via Amazon S3; load from Amazon DynamoDB, Amazon EMR, or SSH Two hardware platforms • 데이터 처리에 최적화 • DS2: HDD; scale from 2TB to 2PB • DC1: SSD; scale from 160GB to 356TB 10 GigE (HPC) JDBC/ODBC
  • 43.
    Amazon Redshift는 빠릅니다 Dramaticallyless I/O Column storage Data compression Zone maps Direct-attached storage Large data block sizes analyze compression listing; Table | Column | Encoding ---------+----------------+---------- listing | listid | delta listing | sellerid | delta32k listing | eventid | delta32k listing | dateid | bytedict listing | numtickets | bytedict listing | priceperticket | delta32k listing | totalprice | mostly32 listing | listtime | raw 10 | 13 | 14 | 26 |… … | 100 | 245 | 324 375 | 393 | 417… … 512 | 549 | 623 637 | 712 | 809 … … | 834 | 921 | 959 10 324 375 623 637 959
  • 44.
    Amazon Redshift 는관리형 서비스 입니다 지속적인 증분 백업 클러스터 내 다중 복사본 지속적인 증분 백업을 S3에 저장 지속적인 증분 백업을 크로스 리전에 복제 Streaming 복구 Amazon S3 Amazon S3 Region 1 Region 2
  • 45.
    Amazon Redshift 는확장 가능합니다 • 근사 함수(Approximate functions) • 사용자 정의 함수(User Defined Function) • 머신러닝 / 데이터 사이언스
  • 46.
    Template CREATE [ ORREPLACE ] FUNCTION f_function_name ( [ argument_name arg_type, ... ] ) RETURNS data_type { VOLATILE | STABLE | IMMUTABLE } AS $$ python_program $$ LANGUAGE plpythonu; Scalar UDF 예제 – URL parsing Example CREATE FUNCTION f_hostname (url VARCHAR) RETURNS varchar IMMUTABLE AS $$ import urlparse return urlparse.urlparse(url).hostname $$ LANGUAGE plpythonu; SELECT REGEXP_REPLACE(url, '(https?)://([^@]*@)?([^:/]*)([/:].*|$)', ‘3') FROM table; SELECT f_hostname(url) FROM table;
  • 47.
    Querying Redshift withR 패키지 • RJDBC – supports SQL queries • dplyr – Uses R code for data analysis • RPostgreSQL - R compliant driver or Database Interface (DBI) R User R Studio Amazon EC2 Unstructured Data Amazon S3 User Profile Amazon RDS Amazon Redshift Connecting R with Amazon Redshift blog post: https://blogs.aws.amazon.com/bigdata/post/Tx1G8828SPGX3PK/Connecting-R-with-Amazon-Redshift
  • 48.
    Data Engineer 친숙한Hadoop, Spark 연계 Data Engineer Existing Structured Data Amazon Redshift New Structured Data Amazon Redshift Amazon EMR spark-redshift Enrichment / Transformation ETL Data Source Amazon Redshift Integration
  • 49.
  • 50.
    Amazon S3 Amazon DynamoDB Amazon RDS AmazonMobile Analytics Amazon EMR Amazon Redshift Amazon Lambda Amazon Machine Learning Amazon Athena Amazon Glacier Amazon EFS Amazon Elasticsearch Service Amazon Kinesis Analytics Amazon QuickSight AWS Import/Export Snowball StoreCollect Process Visualize Amazon Kinesis Firehose AWS 빅데이터 분석 빌딩 블록
  • 51.
    Amazon Quicksight • 빠르고클라우드 기반 BI 서비스로 기존 BI 솔루션 대비 1/10 비용 • AWS 서비스, 외부 플랫폼, 파일등을 데이터 소스로 활용 • 인메모리 계산 엔진(SPICE)기반으로 분석 및 시각화를 가속 • 다른 파트너사 BI 솔루션으로 연계 확장 • 월 사용자 당 $9 부터 시작
  • 52.
    기본 개념 Retail Data OpsData Marketing Data Relational Databases Flat Files Athena
  • 53.
    QuickSight API Data PrepMetadata SuggestionsConnectors SPICE QuickSight UI Mobile Devices Web Browsers Partner BI products Amazon S3 Amazon Athena Amazon DynamoDB Amazon EMR Amazon Redshift Amazon RDS Files Apps Direct connect JDBC/ODBC On premises Data BI Analyst Data Scientist / EngineerApplication User
  • 54.
    QuickSight + AmazonRedshift Amazon Redshift
  • 55.
    QuickSight + AmazonRDS Amazon RDS
  • 56.
  • 57.
    3단계 Athena 쿼리결과 시각화
  • 58.
    Free (60 days) $9 (Annual) $12 (Month toMonth) $18 (Annual) $24 (Month to Month)
  • 59.
  • 60.
  • 61.
    DW, 자동화된 리포트 TB-PB단위의 정형화된 데이터를 주기적인 시간,일,주 단위 배치 분석 빠른 쿼리 DW 팀, BI 팀, 분석가 Adhoc 쿼리, 로그 분석 SQL 기술만으로 히스토리컬 데이터/로그를 새로운 아이디어로 분석 분석가, BI 팀, 데이터 엔지니어 Data Transformation, ETL 비정형데이터의 변환 Spark, MapReduce, Hadoop cluster 데이터 엔지니어, 데이터 사이언티스트 Amazon Redshift, EMR 그리고 Athena RedshiftEMR Athena
  • 62.
    빅데이터 분석 파이프라인샘플 다양한 데이터들을 S3로 저장 EMR을 통해 데이터 트랜스폼 및 클린징 (ETL) 정형화된 데이터를 S3에 저장 빠른 분석질의를 위해 Redshift에 데이터를 병렬로 로딩 Quicksight를 통해 분석 및 시각화
  • 63.
    SQL 을 사용하여raw data 에 애드혹 접근 다양한 데이터들을 S3로 저장 EMR을 통해 데이터 트랜스폼 및 클린징 (ETL) 정형화된 데이터를 S3에 저장 빠른 분석질의를 위해 Redshift에 데이터를 병렬로 로딩 Quicksight를 통해 분석 및 시각화 빅데이터 분석 파이프라인 샘플
  • 64.
    SQL 을 사용하여raw data 에 애드혹 접근 Athena 는 수집된 데이터세트에도 추가 쿼리 가능 다양한 데이터들을 S3로 저장 EMR을 통해 데이터 트랜스폼 및 클린징 (ETL) 정형화된 데이터를 S3에 저장 빠른 분석질의를 위해 Redshift에 데이터를 병렬로 로딩 Quicksight를 통해 분석 및 시각화 빅데이터 분석 파이프라인 샘플
  • 65.
    꼭 기억해 주세요! Amazon S3 CollectStore Process Visualize Amazon Kinesis Firehose Amazon Athena Amazon QuickSight AWS 서버리스 서비스만으로 대규모 데이터를 손쉽게 분석할 수 있습니다!
  • 66.
    본 강연이 끝난후… • [AWS Big Data Blog] Derive Insights from IoT in Minutes using AWS IoT, Amazon Kinesis Firehose, Amazon Athena, and Amazon QuickSight • 한글 랩 가이드 - http://bit.ly/2pjTVzt
  • 67.
  • 68.
    https://www.awssummit.kr AWS Summit 모바일앱을 통해 지금 세션 평가에 참여하시면, 행사 후 기념품을 드립니다. #AWSSummitKR 해시태그로 소셜 미디어에 여러분의 행사 소감을 올려주세요. 발표 자료 및 녹화 동영상은 AWS Korea 공식 소셜 채널로 공유될 예정입니다. 여러분의 피드백을 기다립니다!