ETL 편집하기
편집을 되돌릴 수 있습니다.
이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 저장해주세요.
최신판 | 당신의 편집 | ||
3번째 줄: | 3번째 줄: | ||
== 개요 == | == 개요 == | ||
[[파일:ETL.gif|400픽셀|섬네일|오른쪽|ETL]] | [[파일:ETL.gif|400픽셀|섬네일|오른쪽|ETL]] | ||
− | + | ETL(Extract, transform, load)이란, 다양한 소스 시스템(source system)으로부터 필요한 데이터를 추출(extract)하여 변환(transform) 작업을 거쳐 타깃 시스템(target system)으로 전송 및 로딩(loading)하는 모든 과정을 말한다. 방대한 규모의 운영 데이터를 얻기 위해서는 BI(business intelligence) 인프라가 OLTP(online transaction processing) 시스템에 부담을 주지 않으면서 분석을 위해 데이터를 수집, 이동, 변환 및 저장할 수 있어야 한다. 서로 다른 운영 시스템, 데이터베이스, 하드웨어 플랫폼 및 네트워크 환경을 고려하면 복잡하다. 그러므로 추출 루틴 개발, 비즈니스 로직 디버깅 및 데이터를 안전하게 로딩하여 사용자 요구사항을 만족시켜야 하는 IT부서에게는 상당한 부담이 된다. 또한 데이터 관리의 필요성도 증대되고 있다. 소스 시스템에서 획득되는 원본 데이터는 서버로 전송하도록 메타데이터를 생성하고, 서버로 전송된 소스 데이터와 타깃 테이블 간에 매핑을 생성한다. 그리고 세션을 생성한 후 실행하고, 모니터링한다. | |
− | 데이터 모델링, 매핑(mapping), | + | 데이터 모델링, 매핑(mapping), bi(business intelligence) 제품 사이에 [[데이터 웨어하우스]] 및 [[데이터마트]]와 관련된 모든 [[메타데이터]]가 통합관리되어야 한다.<ref name='etl_main'>COREMETA,〈[http://www.coremeta.co.kr/?p=630 ETL의 개념]〉, 2014-01-22</ref> |
− | + | === 추출(extract) === | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | = | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | == 추출(extract) == | ||
* ETL 프로세스의 입력데이터는 다양한 소스들(mainframe applicaiton, ERP applicaiton, CRM package, flat file, excel spreadsheet, message queue 등)로부터 추출될 수 있다. | * ETL 프로세스의 입력데이터는 다양한 소스들(mainframe applicaiton, ERP applicaiton, CRM package, flat file, excel spreadsheet, message queue 등)로부터 추출될 수 있다. | ||
* 추출 방법으로는 JDBC, ODBC 기술의 이용, 둑자 code, flat file 생성, CDC(change data capture) 등이 있다.<ref name='etl_main'></ref> | * 추출 방법으로는 JDBC, ODBC 기술의 이용, 둑자 code, flat file 생성, CDC(change data capture) 등이 있다.<ref name='etl_main'></ref> | ||
− | == 변형(transform) == | + | === 변형(transform) === |
* 추출 후 데이터는 타깃 리포지토리(target repository)로 보내질 수 있도록 구체적인 비즈니스 로직(business logic)에 의해 수정되거나 변형된다. | * 추출 후 데이터는 타깃 리포지토리(target repository)로 보내질 수 있도록 구체적인 비즈니스 로직(business logic)에 의해 수정되거나 변형된다. | ||
* 변형은 모든 데이터가 서로 연결될 수 있도록(예: 송장과 주문) 각 소스로부터의 데이터가 매핑, 정제, 일치화될 때에 발생된다. 일치화된 후 데이터는 회전시간(cycle time), 총 미불 수취계정 등의 분석을 위해 데이터 웨어하우스 내로 전송, 적재된다. | * 변형은 모든 데이터가 서로 연결될 수 있도록(예: 송장과 주문) 각 소스로부터의 데이터가 매핑, 정제, 일치화될 때에 발생된다. 일치화된 후 데이터는 회전시간(cycle time), 총 미불 수취계정 등의 분석을 위해 데이터 웨어하우스 내로 전송, 적재된다. | ||
29번째 줄: | 14번째 줄: | ||
* 추가로 ETL 프로세스는 이름과 주소, 전화번호 등을 검증하고 표준화하거나 다른 시스템들로부터의 인구통계 정보를 포함하는 필드들을 추가하여 레코드를 확장할 수도 있다. | * 추가로 ETL 프로세스는 이름과 주소, 전화번호 등을 검증하고 표준화하거나 다른 시스템들로부터의 인구통계 정보를 포함하는 필드들을 추가하여 레코드를 확장할 수도 있다. | ||
* 데이터 통합 및 정제가 과도히 요구되는 경우, ETL 작업의 80%는 변형(transform)에서 발생된다.<ref name='etl_main'></ref> | * 데이터 통합 및 정제가 과도히 요구되는 경우, ETL 작업의 80%는 변형(transform)에서 발생된다.<ref name='etl_main'></ref> | ||
− | == 적재(load) == | + | === 적재(load) === |
* 추출(extract), 변형(transform)된 데이터를 타깃(데이터 웨어하우스, 데이터 마트) 데이터베이스 내에 저장하는 프로세스이다. | * 추출(extract), 변형(transform)된 데이터를 타깃(데이터 웨어하우스, 데이터 마트) 데이터베이스 내에 저장하는 프로세스이다. | ||
* 적재(load)의 수행 방식에는 기본적으로 append, delete/insert, update 가 있으며, 이를 지원하기 위한 각 DBMS의 고유기능/utility들이 있다. | * 적재(load)의 수행 방식에는 기본적으로 append, delete/insert, update 가 있으며, 이를 지원하기 위한 각 DBMS의 고유기능/utility들이 있다. | ||
37번째 줄: | 22번째 줄: | ||
== 참고자료 == | == 참고자료 == | ||
− | * | + | * |
− | |||
− | |||
== 같이 보기 == | == 같이 보기 == | ||
− | * | + | * |
− | |||
− | |||
− | {{ | + | {{프로그래밍|검토 필요}} |