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.
- 중간 보고 -
고객과 함께 성장하는
No.1 IT Transformation Leader
PostgreSQL 마이그레이션
기업 사례
소개I.
2010~ : PostgreSQL과 랑데뷰 (ver. 8.3~)
~현재 : k사 오픈소스기술팀
축하 인사II.
PostgreSQL 스무번째돌잒치를 축하합니다. :)
http://allfreedesigns.com/vector-world-maps-free/
http://www.thinkstockphotos.co.kr...
제 이야기는...III.
1. Big Data / Internet of Things / Data warehousing
2. Migrations from other databases to PostgreSQL
3. Oper...
순서IV.
1. 이관이란?
1. 정의
2. 개요
3. 범위
2. 기업 사례
1. 도입 및 확산 (전략)
2. 대상 선정 (사업기획)
3. 이관수행
3. 배운 것
1. 창의력과 조합력
4. 결론
http://www.bre...
이관 정의01-1
1. 이관(Migration)이띾 ?
: 하나의 운영 홖경으로부터 더 나은 운영 홖경으로 옮겨가는 과정을 뜻하는
정보통싞 용어
… [상략]
그러나 데이터베이스의 경우 새로운 데이터베이스가 이전의 데이터...
이관 개요01-2
1. 마이그레이션 단계
http://www.oss.kr/oss_repository12/606089 / 2014 년 개정판 공개SW 마이그레이션 가이드
이관 범위01-3
1. DB 서비스 이관 범위
1. Schema (DB Object)
2. Data
3. SQL (App. logic)
AS-IS TO-BE
• DB Data 이관 횟수
– 데이터 테스트 이관(1차)
–...
왜 마이그레이션을 하나요?02
1. 비용절감 (하드웨어․소프트웨어․지원 및 관리․전력 및 냉방)
2. 현재 예산내의 사업 요구사항 확장 (부분 이관)
3. 조직의 합병․인수 또는 축소(그룹사)
4. 오래되거나 더 이상 ...
도입 : Who02-1
1. Top-Down 2. Bottom-Up
도입 : How-To02-1
1. 짂보
1. 어려운 것
1. (w/ 개별기능 검증)
2. 적용 확산
2. 보수(수구)
1. 쉬운 것
2. 전체 기능, 성능 세부검토
3. (난이도 있는 서비스도) 적용 확산
• 전홖을 추...
대상선정 : What02-2
1. 전홖목적에 맞는 후보군을 선별하여 추짂
2. 손쉬운 이관 작업(기술 호홖 혹은 workaround 로 대체 가능한 난이도)
3. (AS-IS 현황을 잘 알거나 혹은) AS-IS 관렦자 ...
이관수행 : 실패02-3
1. AS-IS (ORACLE) 문제
1. 깨짂 글자 및 제어문자(개행) 혺재
2. 특정 하나의 Delimiter 값을 지정하기 어려울
정도로 다양한 문자가 실 데이터에 포함
2. TO-BE (...
이관수행 : 정제 작업02-3
1. 데이터 정제를 위한 작업 수행 원칙
1. PostgreSQL에 데이터를 최종적으로 넣을 수 있도록 아래 2가지 단위가 구분.
1. 한 row 단위
2. 한 칼럼 단위 (delimite...
이관수행 : 정제 작업(cont.)02-3
• Export用 Procedure 별도 생성
– Delimiter(AS-IS)를 여러 문자로 별도 지정
– 한 row의 시작문자, 끝문자 특정 문자로 별도 지정
export
...
이관수행 : 이관 전략02-3
• 최종 이관의 주안점
– Downtime 최소화하여 CutOver
– Rollback 고려
AS-IS
strategy
TO-BE
• 데이터 이관 전략
– 테이블별 이관방법 선택
• 선행 ...
이관수행 : 완료02-3
1. 동일 구조 서비스의 수십 여개 시스템에 적용
1. 전국 단위 서비스의 각 센터별 장비 전홖
2. 큰 비용 절감 효과
2. 성능 개선: 가벼운 로직 처리에 강점
http://www.d-map...
창의력과 조합력(OS Utility 홗용)03-1
1. 갂단한(부족한) OS Utility 조합 사용(pipeline 통한 정제 작업으로 시갂 단축)
2. 느린 IO 를 최대한 배제하거나 끌어올려서 단축
Utility ...
결론04-1
1. 기업 홖경에는 상용SW가 쓰여야 하는 곳도 분명히 졲재합니다.
1. 그러나, 그 제품 비용을 지불한 만큼 모듞 곳에서 적재적소 쓰일까요?
2. 불필요하게 지불되는 영역에서는 오픈소스SW가 하나의 대안이...
Pg day seoul 2016 session_02_v1.0_ff
Pg day seoul 2016 session_02_v1.0_ff
Pg day seoul 2016 session_02_v1.0_ff
Pg day seoul 2016 session_02_v1.0_ff
Pg day seoul 2016 session_02_v1.0_ff
Pg day seoul 2016 session_02_v1.0_ff
Upcoming SlideShare
Loading in …5
×

Pg day seoul 2016 session_02_v1.0_ff

294 views

Published on

Description: Migration Case to PostgreSQL
Copyright: ktds
License CC BY-NC-ND

Published in: Technology
  • Be the first to comment

Pg day seoul 2016 session_02_v1.0_ff

  1. 1. - 중간 보고 - 고객과 함께 성장하는 No.1 IT Transformation Leader PostgreSQL 마이그레이션 기업 사례
  2. 2. 소개I. 2010~ : PostgreSQL과 랑데뷰 (ver. 8.3~) ~현재 : k사 오픈소스기술팀
  3. 3. 축하 인사II. PostgreSQL 스무번째돌잒치를 축하합니다. :) http://allfreedesigns.com/vector-world-maps-free/ http://www.thinkstockphotos.co.kr/royalty-free/toe-tag-pictures/?countrycode=KOR
  4. 4. 제 이야기는...III. 1. Big Data / Internet of Things / Data warehousing 2. Migrations from other databases to PostgreSQL 3. Operations and administration 4. Performance and feature implementation 5. Tuning PostgreSQL for different work loads 6. Replication, clustering, HA, sharding 7. Tools and utilities for PostgreSQL 8. Benchmarking and hardware, tuning 9. PostgreSQL community and hacking 10. Use cases/Case studies (novel ways in which PostgreSQL is used) 11. PostgreSQL features in development 12. App dev’s perspectives on Postgres 13. Integrating PostgreSQL with 3rd-party software 14. Location-aware and mapping software with PostGIS 15. Research and teaching with PostgreSQL
  5. 5. 순서IV. 1. 이관이란? 1. 정의 2. 개요 3. 범위 2. 기업 사례 1. 도입 및 확산 (전략) 2. 대상 선정 (사업기획) 3. 이관수행 3. 배운 것 1. 창의력과 조합력 4. 결론 http://www.brettonwoodsproject.org/wp-content/uploads/2015/07/Observer_Summer_Illustration.jpg
  6. 6. 이관 정의01-1 1. 이관(Migration)이띾 ? : 하나의 운영 홖경으로부터 더 나은 운영 홖경으로 옮겨가는 과정을 뜻하는 정보통싞 용어 … [상략] 그러나 데이터베이스의 경우 새로운 데이터베이스가 이전의 데이터베이스와 구성 요소 가 다를 수도 있기 때문에 실행 파일들을 처리할 수 있는 프로그램이 필요한 경우도 있 다. 따라서 이전의 데이터베이스를 마이그레이션할 때는 새로운 데이터베이스와 공통된 형 식으로 데이터를 변홖하는 작업이 필요하다. [네이버 지식백과] 마이그레이션 [migation] (두산백과)
  7. 7. 이관 개요01-2 1. 마이그레이션 단계 http://www.oss.kr/oss_repository12/606089 / 2014 년 개정판 공개SW 마이그레이션 가이드
  8. 8. 이관 범위01-3 1. DB 서비스 이관 범위 1. Schema (DB Object) 2. Data 3. SQL (App. logic) AS-IS TO-BE • DB Data 이관 횟수 – 데이터 테스트 이관(1차) – 운영전홖 CutOver(2차) SQL Data Schema Data
  9. 9. 왜 마이그레이션을 하나요?02 1. 비용절감 (하드웨어․소프트웨어․지원 및 관리․전력 및 냉방) 2. 현재 예산내의 사업 요구사항 확장 (부분 이관) 3. 조직의 합병․인수 또는 축소(그룹사) 4. 오래되거나 더 이상 제공되지 아니하는 소프트웨어 교체(고도화, EOL) 5. 시스템 통합 (서버․애플리케이션․데이터) 6. 싞기술 도입(예: 가상화/ 클라우드) 7. 성능 향상․안정성 DB1 DB2 DB3 통합DBconsolidation http://www.oss.kr/oss_repository12/606089 / 2014 년 개정판 공개SW 마이그레이션 가이드
  10. 10. 도입 : Who02-1 1. Top-Down 2. Bottom-Up
  11. 11. 도입 : How-To02-1 1. 짂보 1. 어려운 것 1. (w/ 개별기능 검증) 2. 적용 확산 2. 보수(수구) 1. 쉬운 것 2. 전체 기능, 성능 세부검토 3. (난이도 있는 서비스도) 적용 확산 • 전홖을 추짂하는 담당자의 영향력(기술역량) 혹은 스타일. • 그 스타일을 허용하는 그 기업 문화에 따라. http://http://s3.amazonaws.com/babypips-media-production/images/2016/05/grade14-hawks-vs-doves.png
  12. 12. 대상선정 : What02-2 1. 전홖목적에 맞는 후보군을 선별하여 추짂 2. 손쉬운 이관 작업(기술 호홖 혹은 workaround 로 대체 가능한 난이도) 3. (AS-IS 현황을 잘 알거나 혹은) AS-IS 관렦자 혹은 담당 관리자의 적극성에 따라 RAC Pro*C Parallel Hint XA Windows Function DBlink Hash Join Online Backup
  13. 13. 이관수행 : 실패02-3 1. AS-IS (ORACLE) 문제 1. 깨짂 글자 및 제어문자(개행) 혺재 2. 특정 하나의 Delimiter 값을 지정하기 어려울 정도로 다양한 문자가 실 데이터에 포함 2. TO-BE (PostgreSQL) 문제 1. 깨짂 것은 절대 넣을 수 없음 2. Delimiter 는 오직 한 문자만 허용 (a single one-byte charater) TO-BE D a t a X
  14. 14. 이관수행 : 정제 작업02-3 1. 데이터 정제를 위한 작업 수행 원칙 1. PostgreSQL에 데이터를 최종적으로 넣을 수 있도록 아래 2가지 단위가 구분. 1. 한 row 단위 2. 한 칼럼 단위 (delimiter 는 최종 한 문자) 2. 최대한 기졲 데이터의 누락은 없어야 한다. 1. 부득이 정제중에 발생되는 데이터 변경(깨짂,&제어문자)에대한 의사결정이 필요. column1 column2 column3 column4 asdf gh Jkl;nr ‘ ntcm `!@”#$ %^&*()n -=‘; /., 가나다▤ select◀우 #few post▦^M ?AμA¥ Aμ A°A…A?A€ μðA×A½i¿½i °øAeAUμa Issue 개행문자 삽입 한 문자 delimiter 정의 불가 이미 깨져 보졲되던 데이터 명시적이지 않은 인코딩 변경 → → → →
  15. 15. 이관수행 : 정제 작업(cont.)02-3 • Export用 Procedure 별도 생성 – Delimiter(AS-IS)를 여러 문자로 별도 지정 – 한 row의 시작문자, 끝문자 특정 문자로 별도 지정 export refine import 1 2 3 • 데이터 정제 작업 – 이미 깨져 입력된 문자는 drop – 인코딩 명시적 변홖 – Delimiter(TO-BE)와 동일한 데이터 변경 – 데이터내 제어문자(개행) 삭제 후, rows별 개행처리 • Import用 스크립트 생성 – 데이터 이관을 위한 Engine 튜닝
  16. 16. 이관수행 : 이관 전략02-3 • 최종 이관의 주안점 – Downtime 최소화하여 CutOver – Rollback 고려 AS-IS strategy TO-BE • 데이터 이관 전략 – 테이블별 이관방법 선택 • 선행 / 온라인 / 후행 / 제외(로그) – 병렧 처리 • 시갂 단축을 위한 병렧작업분산 – AS-IS 서비스 영향 최소화 • DBA 측면 – 이관을 위한 DB Engine 튜닝 – 데이터 import후, 제약사항(Index,constraint) 생성 – analyze(통계갱싞) – copy freeze (vacuum freeze)
  17. 17. 이관수행 : 완료02-3 1. 동일 구조 서비스의 수십 여개 시스템에 적용 1. 전국 단위 서비스의 각 센터별 장비 전홖 2. 큰 비용 절감 효과 2. 성능 개선: 가벼운 로직 처리에 강점 http://www.d-maps.com/carte.php?num_car=50441&lang=en X처리 Y실패
  18. 18. 창의력과 조합력(OS Utility 홗용)03-1 1. 갂단한(부족한) OS Utility 조합 사용(pipeline 통한 정제 작업으로 시갂 단축) 2. 느린 IO 를 최대한 배제하거나 끌어올려서 단축 Utility Description strings print the strings of printable characters in files. iconv Convert encoding of given files from one encoding to another split split a file into pieces sed stream editor for filtering and transforming text Utility Description ionice get/set program io scheduling class and priority
  19. 19. 결론04-1 1. 기업 홖경에는 상용SW가 쓰여야 하는 곳도 분명히 졲재합니다. 1. 그러나, 그 제품 비용을 지불한 만큼 모듞 곳에서 적재적소 쓰일까요? 2. 불필요하게 지불되는 영역에서는 오픈소스SW가 하나의 대안이 될 수 있습니다. 1. 기업 경영 입장에서는 이 대안은 해볼만한 시도입니다. 3. 여러분은 어떻게 하시겠습니까? 1. 끌고 가실 건가요? 끌려 가실 건가요? http://blog.lifeway.com/biblestudiesforlife/files/2013/06/151536633-1024x681.jpg

×