Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

[Pgday.Seoul 2018] Greenplum의 노드 분산 설계

47 views

Published on

[Pgday.Seoul 2018] Greenplum의 노드 분산 설계 - 피보탈 이상희 상무

Published in: Software
  • Be the first to comment

[Pgday.Seoul 2018] Greenplum의 노드 분산 설계

  1. 1. 1 pgday.Seoul 2018 Greenplum의 노드 분산 설계 대용량 분석을 위한 분산 병렬 분석 시스템 2018. 11. 03 Pivotal Korea 이상희
  2. 2. 2 데이터 분석에 기반한 의사 결정 지난 3년간의 추이를 보자면.. 새로운 패턴을 추가로 분석해 보니.. 예측모델을 적용한 결과로는.. 관련 업계와의 교차 분석을 통해.. 지리적 여건을 함께 분석해보니..
  3. 3. 3 많은 데이터, 높은 확률, 정확한 의사 결정
  4. 4. 4 PostgreSQL을 이용해볼까 100 TB100 GB 1 TB 10 TB
  5. 5. 5 만약 여러 PostgreSQL이 동시에 일을 한다면 데이터 처리량에 한계가 없겠구나 10 TB 10 TB 10 TB 10 TB 10 TB 10 TB 10 TB 10 TB 10 TB 10 TB
  6. 6. 6 2005년 Greenplum의 탄생! Network Interconnect … Segment Node Standby MasterMaster Node SEQ SCAN HASH SEQ SCAN HASH JOIN HASH SEQ SCAN HASH JOIN SEQ SCAN HASH SEQ SCAN HASH JOIN HASH SEQ SCAN HASH JOIN • 세션 연결 • HA 구조로 장애 상황 대응 • 데이터 및 메세지 교환 • 병렬 데이터 저장, 연산, 집계 • 머신러닝 등 고급분석 기법을 병렬로 처리 • 외부 소스(File Server, Hadoop, Cloud등)를 고속 병렬 처리로 직접 연계 • 자체 데이터 이중화 저장 구조로 시스템 고가용성 확보
  7. 7. 7 Greenplum의 고성능 병렬 처리 대량의 데이터를 노드 단위로 분산 저장 모든 노드에서 고속의 병렬 데이터 처리 PLA N PLA N PLA N PLA N 이중화된 데이터로 안정성 보장 증설과 함께 선형적인 성능 향상
  8. 8. 8 오픈소스와의 유연한 결합, 환경의 제약 없는 구성 Deploy Anywhere On-premise Private Cloud Public Cloud Pivotal Container Service (PKS)
  9. 9. 9 질문1. 얼마나 많은 사람들이 Greenplum을 사용하는가? 17국내 고객수 42클러스터수 12 > 200TB 대용량 클러스터수 6.2전체 데이터량 480 단일클러스터기준 최대 데이터량 다수의 고객사로부터 검증된 분석 플랫폼
  10. 10. 10 질문2. 하둡과 Greenplum 연동이 원할 한가? HDFS Cluster Computing Cloud Storage In-Memory Data Grid interconnect master master System B interconnect master master System A 일반적인 1:1방식의 연계방식으로는 마스터간 병목 발생 • Spark에서 Greenplum의 테이블에 Read 및 Write • 데이터 사이언티스트의 Spark 스킬셋 확장 • 고객사 성능비교 테스트 4.8 Hour with Spark connector vs 15 days with JDBC (75배 향상) Yes! 세그먼트에서 직접 고속 병렬 연계 기능이 그린플럼의 강점
  11. 11. 11 질문3. 비정형 분석을 위해서 하둡을 함께 사용해야만 하는가? No. 그린플럼은 비정형 데이터까지 통합하여 분석 REGRESSIONCLASSIFICATIONCLUSTERINGGraph GeospatialTraditional BI / ReportSQL TEXT Transformation Structured Data Any Workload Any Data 비정형 데이터 통합 분석 사례 : 국지성 이상기후 예측 다양한 유형의 날씨 관련 데이터를 병렬 시뮬레이션을 통해 국지성 집중호우 발생 10분 전 예측함 Data 수집 Data 통합/처리 및 분석 Application 활용 § 다양한 유형의 대용량 데이터 수집 § Large-scale 3D rain computer simulation - 100개의 날씨 병렬 시뮬레이션 동시 수행 (↔ 기존: 1개씩 시뮬레이션 순차 실행) - 100m 그리드 공간 대상 예측 (↔ 기존: 2km 또는 5km 그리드 공간 대상) § 3D Nowcasting - 모바일앱을 통해 실시간 국지성 집중호우 발생 10분 전 경고 - 정확도 80% 이상 (↔ 기존 50% 내외) - Phased-array radar 측정 데이터 : 15개 층의 대기 습도 3차원 측정 (↔ 기존: 1개 층 2차원 측정) : 30초 단위 업데이트 - 날씨 위성 측정 데이터 : 최상부 구름의 높이, 바람, 온도, 대기 내 습도 - 지도 데이터 - 교통 흐름 데이터 - 위치 태그된 트위터 데이터 ü 인명 및 재산 피해 최소화 [ GPDB 기반 국지성 집중호우 예측 플랫폼 ] 텍스트 벡터 데이터 비트맵 이미지 센서 데이터 - 인구 이동 데이터 대용량 데이터 분산 병렬 처리 (Massively Parallel Processing) ü 다양한 유형의 데이터를 단일 플랫폼 내 저장 In-Database 예측 모형 분석 … GPText * source: “Greenplum for Extreme Weather Predictions and Analytics at Japan’s NICT” (https://www.youtube.com/watch?v=pjDSi1KGaDU)
  12. 12. 12 질문4. 머신러닝 기법을 활용할 수 있을까? Yes! Greenplum의 인-데이터베이스 분석 기법 사용 In-Database Analytics Native support 확장 Language 기존분석 환경에서는 분석의 신뢰도 저하 분석 성능 한계 DW 샘플링된 데이터만 사용 데이터 전송 속도 한계 상세 데이터 통합 머신 러닝 분석을 통해 저수율 원인 분석 요약데이터 (summary) 상세데이터 (raw data) 일부 공정 전체 공정 기존 불량원인 분석 빅데이터 기반 불량원인 분석 … 약 50만개 데이터 전수 분석
  13. 13. 13 1.검증된 대용량 처리 2.다수의 국내외 레퍼런스 3.향후 클라우드 환경을 고려한 유연한 구성 옵션 신뢰할 수 있는 차세대 분석 플랫폼
  14. 14. 14 Appendix : Greenplum Tuning을 위한 물리 설계 1 데이터 Skew 제거 모든 세그먼트 노드가 동시에 일을 할 수 있도록 데이터를 분산시킨다 Seg1 Seg2 Seg3 Seg4 CREATE TABLE customer ( cust_id VARCHAR(80) ,gender CHAR(5)) DISTRIBUTED BY(gender); Data Data Seg1 Seg2 Seg3 Seg4 CREATE TABLE customer ( cust_id VARCHAR(80) ,gender CHAR(5)) DISTRIBUTED BY(cust_id); Data Data Data Data
  15. 15. 15 Appendix : Greenplum Tuning을 위한 물리 설계 2 파티션으로 필터링 디스크 I/O량을 최소화할 수 있는 파티션을 구성하고 사용한다 Seg1 Seg2 Seg3 Seg4 CREATE TABLE orders ( order_id INT ,order_date DATE ) DISTRIBUTED BY (order_id) ; Data Data Seg1 Seg2 Seg3 Seg4 : DISTRIBUTED BY (order_id) PARTITION BY RANGE (order_date) (START (‘2018-01-01’) END (‘2018-12-031’) EVERY (INTERVAL ‘1 month’)); 06 06 06 06 Data Data SELECT COUNT(*) FROM orders WHERE order_date BETWEEN ‘2018-10-22’ and ‘2018-10-27’ 07 07 07 07 08 08 08 08 09 09 09 09 10 10 10 10
  16. 16. 16 Appendix : Greenplum Tuning을 위한 물리 설계 3 압축으로 I/O 감소 디스크 I/O량을 최소화할 수 있는 파티션을 구성하고 사용한다 Seg1 Seg2 Seg3 Seg4 CREATE TABLE orders ( order_id INT ,order_date DATE ) DISTRIBUTED BY (order_id) PARTITION BY RANGE (order_date) : Seg1 Seg2 Seg3 Seg4 CREATE TABLE orders WITH ( appendonly=true, compresslevel=5)( order_id INT ,order_date DATE ) : 06 06 06 06 07 07 07 07 08 08 08 08 09 09 09 09 10 10 10 10
  17. 17. 17 Appendix : Greenplum Tuning을 위한 물리 설계 4 필요시 인덱스생성 특정 데이터만 빠르게 조회하기 위한 경우에 한정적으로 인덱스를 생성한다 Seg1 Seg2 Seg3 Seg4 CREATE TABLE orders ( order_id INT ,order_date DATE ,product_id INT ) DISTRIBUTED BY (order_id); Seg1 Seg2 Seg3 Seg4 CREATE INDEX idx_order_pid ON orders (product_id); Data Data Data Data Data Data Data Data
  18. 18. 18 GREENPLUM SUMMIT at PostgresConf 2019 by Pivotal

×