2009-07-29 4 views
6

나는 Talend와 Apatar와 같은 몇몇 ETL 도구에 최근 노출되어 왔고, 나는이 도구들의 목적/주요 목적이 laymans의 관점에서 무엇인지 정확히 궁금해했다. 누가 그것을 주로 사용하는지, 그리고 사용한다면 어떤 종류의 스크립트를 작성하는 것보다 (내 이해로) 더 나은 방법을 제공합니다.ETL 도구 ... 정확히 무엇을합니까? laymans terms please

+0

"사용 하시겠습니까?" "용도"란 무엇을 의미합니까? 사람들은 그것들을 씁니다. 그런 다음 그들은 도망갑니다. "용도"는 관련된 "최종 사용자"가 없을 때 무엇이든 의미 할 수 있습니다. –

+0

[관련 질문에 대한 내 대답] (http://stackoverflow.com/questions/51198/what-etl-tool-do-you-use/67784#67784)을 알려 드리겠습니다. – runrig

+0

연결된 SO 스레드가 제거되었으므로 [여기 ETL의 정의] (http://www.dbasupport.com/forums/showthread.php?35663-what-s-ETL&p=155078#post155078) – runrig

답변

14

ETL은 "추출/변환 /로드"를 나타냅니다. 이 도구는 한 소스에서 데이터를 가져 와서 다른 소스로 옮깁니다. 고유 한 방법으로 소스에서 대상으로 스키마를 매핑하고, 대상으로 이동하기 전에 데이터를 변환 및 정리하고, 효율적인 방식으로 대상을로드 할 수 있습니다. ETL 작업을 일괄 처리로 예약 할 수 있습니다.

이러한 데이터 소스

등 관계형 데이터베이스, 스프레드 시트, XML 파일을 할 수있다


누가 "사용"그들? "용도"가 의미하는 바에 달려 있습니다. 그것들은 단지 코드 일 뿐이며, 일반적인 작업의 일환으로 예정되어 있습니다. 최종 사용자 기능은 없습니다. 그들은 프로그래머가 운영 할 운영체제를 만들고 운영하는 데 전적으로 달려 있습니다.

Advantage over scripts? 없음. 이 스크립트는 원본에서 "추출"하고 대상으로 "변환"및 "로드"하는 데 전적으로 초점을 둔 도메인 별 언어 (DSL)로 작성된 스크립트입니다. 스크립트의 흥미로운 부분은 대부분 각 단계에서 필드별로 매핑됩니다.

+0

@duffymo : 나는 뛰어 들어가 훌륭한 토대를 마련해야했습니다. –

+0

@ S.Lott : 나는 당신이 좋아하는 누군가가 내가 쓴 것이 '우수'하다고 생각할 것을 매우 기쁘게 생각합니다. 개선과 지속적인 교육에 감사드립니다. 당신의 블로그를 읽으면서 - 꽤 굉장합니다. 파이썬 학습 곡선을 빨리 올라갈 수 있다면 당신 같은 누군가와 함께 일하는 것을 좋아할 것입니다. – duffymo

2

ETL은 데이터웨어 하우징 응용 프로그램에서 일반적으로 사용됩니다.

예를 들어, Oracle 또는 SQL Server 주문 처리 시스템이있을 수 있습니다. 주문이 배송 될 때까지 모든 데이터가 유지 될 수 있지만 수년간 오래된 주문이 시스템을 막히게하는 것은 바람직하지 않습니다.

또한 회사에서 이와 같이 서로 독립적으로 개발 된 시스템이 여러 개있을 수 있습니다.

그래서, 과거 데이터를 통합, 당신은 당신에게 등을보고, 계획, 데이터 마이닝,

을 할 수있는 좋은 장소를 허용, 이러한 이기종 시스템의 모든의 데이터는 결국 데이터웨어 하우스를 설정할 수 있습니다

모든 데이터 소스가 다르므로 장기 저장하려는 데이터의 종류가 소규모 데이터베이스의 데이터와 다를 수 있으므로 ETL 시스템을 설정하여 데이터 흐름을 변환하고 관리하십시오.

4

ETL은 단순히 데이터를 가져와 데이터를 어딘가에 저장합니다.

  1. 추출 - 어딘가에서 데이터를 가져옵니다 (위치는 소스라고 함). 소스는 파일, 데이터베이스 테이블, 파이프 등일 수 있습니다.

  2. 변환 - 소스 데이터에 무언가를하십시오. 예 : 출처에는 출생자와 생년월일이 포함되어 있으므로 데이터를 "변형시켜"사람의 나이를 결정할 수 있습니다.

  3. 로드 - 변형 된 데이터를 가져 와서 다른 데이터베이스 또는 동일한 데이터베이스와 같은 어딘가에 배치하십시오. 이를 목표라고합니다. Source가 될 수있는 거의 모든 유형의 데이터 저장소를 Target으로 사용할 수도 있습니다.


몇 가지 예 : DB2의 데이터웨어 하우스에서

  1. 데이터를 추출. 특정 날짜 범위와 일치하는 데이터 만 보내도록 필터를 사용하여 데이터를 변환하십시오. 필터링 된 데이터를 SQL Server 데이터 마트에로드합니다.

  2. XML 파일의 데이터를 추출합니다. 데이터를 행으로 "평평하게"변형하십시오. 데이터를 쉼표로 구분 된 파일로로드하십시오.

  3. IBM MQ와 같이 파이프 또는 대기열에 들어오는 데이터를 추출합니다. 대기중인 메시지의 키 필드를 구문 분석하여 데이터를 변환하십시오. 구문 분석 된 데이터를 메인 프레임에로드합니다.


일부 도구 :

  1. 큰 달러, 엔터프라이즈 클래스 : Ab의 론적, 인포매티카, IBM의 데이터 스테이지

  2. 덜 비싼 : Jitterbit, Talend

  3. 어딘가에 중간에 : SQL Server 용 SSIS


누가 사용합니까? 주로 복잡한 데이터웨어 하우스를 구축하고 유지 관리해야하는 회사는 ETL 도구에 투자합니다. ETL 도구는 프로그래밍 방식 기술 만 사용하는 것이 아니라 시각적으로 ETL 프로그램을 작성할 수있게 해주는 시각 디자인 도구입니다.

관련 문제