추출, 변환, 적재

Extract, transform, load

컴퓨팅에서 ETL(Extract, Transform, Load)은 데이터를 추출, 변환(청소, 소독, 스크러빙)하고 출력 데이터 컨테이너에 로드하는 3단계 프로세스입니다.데이터는 하나 이상의 소스에서 대조할 수 있으며 하나 이상의 대상으로 출력할 수도 있습니다.ETL 처리는 일반적으로 소프트웨어 응용 프로그램을 사용하여 실행되지만 시스템 운영자가 수동으로 수행할 수도 있습니다.ETL 소프트웨어는 일반적으로 전체 프로세스를 자동화하며 수동으로 실행하거나 반복되는 일정에 따라 단일 작업으로 실행하거나 작업 배치로 집계할 수 있습니다.

Conventional ETL diagram
기존 ETL 다이어그램[1]

적절히 설계된 ETL 시스템은 소스 시스템에서 데이터를 추출하고 데이터 유형 및 데이터 유효성 표준을 적용하며 출력의 요구 사항에 구조적으로 부합하도록 보장합니다.일부 ETL 시스템은 프레젠테이션 준비 형식으로 데이터를 전달하여 애플리케이션 개발자가 애플리케이션을 구축하고 최종 사용자가 의사 결정을 내릴 수도 있습니다.[1]

ETL 프로세스는 데이터 웨어하우징에 자주 사용됩니다.[2]ETL 시스템은 일반적으로 여러 애플리케이션(시스템)의 데이터를 통합합니다. 일반적으로 다른 공급업체에서 개발 및 지원하거나 별도의 컴퓨터 하드웨어에서 호스팅됩니다.원본 데이터를 포함하는 별도의 시스템은 다른 이해 관계자에 의해 자주 관리 및 운영됩니다.예를 들어, 비용 회계 시스템은 급여, 판매 및 구매 데이터를 결합할 수 있습니다.

압축풀기

데이터 추출은 동종 또는 이종 소스로부터 데이터를 추출하는 것을 포함하며, 데이터 변환데이터를 클리닝하고 질의 및 분석을 위해 적절한 스토리지 형식/구조로 변환함으로써 데이터를 처리합니다.데이터 로딩은 운영 데이터 저장소, 데이터 마트, 데이터 레이크 또는 데이터 웨어하우스와 같은 최종 대상 데이터베이스에 데이터를 삽입하는 것을 말합니다.[3][4]

ETL 처리는 소스 시스템에서 데이터를 추출하는 것을 포함합니다.많은 경우 데이터를 추출하는 것이 후속 프로세스의 성공을 위한 발판이 되기 때문에 이는 ETL의 가장 중요한 측면을 나타냅니다.대부분의 데이터 웨어하우징 프로젝트는 서로 다른 소스 시스템의 데이터를 결합합니다.각각의 별개의 시스템은 또한 다른 데이터 조직 및/또는 형식을 사용할 수 있습니다.일반적인 데이터 소스 형식에는 관계형 데이터베이스, 플랫 파일 데이터베이스, XMLJSON이 포함되지만, IBM Information Management System과 같은 비관계형 데이터베이스 구조 또는 VSAM(Virtual Storage Access Method) 또는 ISAM(Indexed Sequential Access Method)과 같은 다른 데이터 구조도 포함될 수 있습니다.또는크롤러 또는 데이터 스크래핑과 같은 방법으로 외부 소스에서 가져온 형식도 있습니다.중간 데이터 저장소가 필요 없을 때 추출된 데이터 소스를 스트리밍하고 대상 데이터베이스에 즉시 로드하는 것도 ETL을 수행하는 또 다른 방법입니다.

추출의 본질적인 부분은 소스에서 풀린 데이터가 특정 도메인에서 올바른/기대되는 값(예: 패턴/기본값 또는 값 목록)을 갖는지 확인하기 위한 데이터 검증을 포함합니다.데이터가 유효성 검사 규칙에 실패하면 전체 또는 부분적으로 거부됩니다.거부된 데이터는 잘못된 레코드를 식별하고 수정하거나 데이터 조정을 수행하기 위해 추가 분석을 위해 소스 시스템에 다시 보고되는 것이 이상적입니다.

변환

데이터 변환 단계에서는 추출된 데이터에 일련의 규칙 또는 함수를 적용하여 최종 대상에 로드할 수 있도록 준비합니다.

변환의 중요한 기능은 "적절한" 데이터만 대상에 전달하는 것을 목표로 하는 데이터 정리입니다.서로 다른 시스템이 상호 작용할 때의 과제는 관련 시스템의 인터페이스와 통신에 있습니다.한 시스템에서 사용할 수 있는 문자 집합은 다른 시스템에서는 사용할 수 없을 수 있습니다.

다른 경우에는 서버 또는 데이터 웨어하우스의 비즈니스 및 기술적 요구를 충족하기 위해 다음과 같은 변환 유형 중 하나 이상이 필요할 수 있습니다.

  • 로드할 특정 열만 선택:(또는 로드하지 않을 널 열 선택)예를 들어 원본 데이터에 roll_no, 연령 및 급여의 세 열(일명 "속성")이 있는 경우 선택 항목에서 roll_no와 급여만 선택할 수 있습니다.또는 급여가 존재하지 않는 모든 기록을 선택 메커니즘이 무시할 수도 있습니다(salary =null).
  • 코드화된 값의 변환: (예: 소스 시스템에서 남성을 "1"로, 여성을 "2"로 코드화하지만 창고에서 남성을 "M"으로, 여성을 "F"로 코드화하는 경우)
  • 자유 형식 값 인코딩: (예: "Male"을 "M"으로 매핑)
  • 새로운 계산값 도출: (예: sale_amount = qty * unit_price)
  • 검색 성능 향상을 위해 열 목록을 기준으로 데이터 정렬 또는 순서 지정
  • 여러 소스(예: 조회, 병합)의 데이터를 결합하고 데이터 중복 제거
  • 집계(예: 롤업 - 여러 행의 데이터 요약 - 각 상점 및 각 지역의 총 매출 등)
  • 대리 키 값 생성
  • 전치 또는 피벗(여러 열을 여러 행으로 바꾸거나 그 반대로 바꾸기)
  • 열을 여러 열로 분할(예: 한 열의 문자열로 지정된 쉼표로 구분된 목록을 다른 열의 개별 값으로 변환)
  • 반복 열 분리
  • 테이블 또는 참조 파일에서 관련 데이터 검색 및 검증
  • 모든 형태의 데이터 유효성 검사를 적용할 경우, 유효성 검사에 실패하면 데이터가 완전히 거부되거나, 부분적 거부 또는 전혀 거부되지 않을 수 있으며, 따라서 규칙 설계 및 예외 처리에 따라 다음 단계로 데이터가 넘어가지 않거나, 일부 또는 전부가 넘어갑니다. 예를 들어, 위와 같은 많은 변환으로 인해 예외가 발생할 수 있습니다.코드 변환이 추출된 데이터에서 알 수 없는 코드를 구문 분석할 때

적재

로드 단계는 데이터를 엔드 타겟으로 로드합니다. 엔드 타겟은 단순 구분된 플랫 파일 또는 데이터 웨어하우스를 포함한 모든 데이터 저장소가 될 수 있습니다.[5]조직의 요구 사항에 따라 이 프로세스는 매우 다양합니다.일부 데이터 웨어하우스는 기존 정보를 누적 정보로 덮어쓰기도 합니다. 추출된 데이터를 업데이트하는 작업은 일별, 주별 또는 월별로 수행되는 경우가 많습니다.다른 데이터 웨어하우스(또는 동일한 데이터 웨어하우스의 다른 부분)는 일정한 간격(예를 들어, 시간당)으로 새로운 데이터를 이력 형태로 추가할 수 있습니다.이를 이해하기 위해서는 작년의 매출 기록을 유지하는 데 필요한 데이터 웨어하우스를 고려해 보십시오.이 데이터 웨어하우스는 1년 이상 지난 데이터를 최신 데이터로 덮어씁니다.그러나 어느 한 해의 창에 대한 데이터 입력은 역사적인 방식으로 이루어집니다.교체하거나 추가할 시기와 범위는 사용 가능한 시간과 비즈니스 요구에 따라 전략적인 설계 선택입니다.보다 복잡한 시스템을 통해 데이터 웨어하우스에 로드된 데이터에 대한 모든 변경 내역 및 감사 내역을 유지할 수 있습니다.로드 단계가 데이터베이스와 상호 작용함에 따라 데이터 로드 시 활성화되는 트리거뿐만 아니라 데이터베이스 스키마에 정의된 제약 조건(예: 고유성, 참조 무결성, 필수 필드)이 적용되며, 이는 ETL 프로세스의 전반적인 데이터 품질 성능에도 기여합니다.

  • 예를 들어, 금융 기관은 여러 부서에 고객에 대한 정보를 가지고 있을 수 있으며 각 부서는 해당 고객의 정보를 다른 방식으로 나열할 수 있습니다.멤버십 부서는 고객을 이름으로 나열할 수 있고 회계 부서는 고객을 번호로 나열할 수 있습니다.ETL은 이러한 모든 데이터 요소를 번들링하여 데이터베이스 또는 데이터 웨어하우스에 저장하는 것과 같은 균일한 프레젠테이션으로 통합할 수 있습니다.
  • 기업이 ETL을 사용하는 또 다른 방법은 정보를 영구적으로 다른 애플리케이션으로 옮기는 것입니다.예를 들어, 새 애플리케이션은 다른 데이터베이스 공급업체를 사용할 수 있으며, 대부분 매우 다른 데이터베이스 스키마를 사용할 수 있습니다.ETL을 사용하여 데이터를 새로운 애플리케이션이 사용하기에 적합한 형식으로 변환할 수 있습니다.
  • 회계사, 컨설턴트법률 회사가 사용하는 것과 같은 비용 비용 회수 시스템이 예가 될 수 있습니다.일부 기업은 인사담당자(인사부서)에게 직원 생산성 보고서를 제출하거나 설비 관리 담당자에게 장비 사용 보고서를 제출할 때에도 원시 데이터를 활용할 수 있지만, 데이터는 일반적으로 시간 청구 시스템으로 끝납니다.

실생활 ETL 사이클

일반적인 실제 ETL 사이클은 다음과 같은 실행 단계로 구성됩니다.

  1. 사이클개시
  2. 참조 데이터 구축
  3. 추출(소스에서)
  4. 입증하다
  5. 혁신(클린, 비즈니스 규칙 적용, 데이터 무결성 검사, Aggregate 생성 또는 분리)
  6. Stage(스테이지 테이블에 로드, 사용되는 경우)
  7. 감사 보고서(예: 비즈니스 규칙 준수 여부).또한 고장시 진단/수리에 도움이 됨)
  8. 게시(대상 테이블로)
  9. 기록 보관소

과제들

ETL 프로세스는 상당한 복잡성을 수반할 수 있으며 부적절하게 설계된 ETL 시스템에서 심각한 운영 문제가 발생할 수 있습니다.

운영 시스템에서 데이터 값 또는 데이터 품질의 범위는 검증 및 변환 규칙이 지정될 때 설계자의 기대를 초과할 수 있습니다.데이터 분석 중 소스의 데이터 프로파일링은 변환 규칙 사양에 의해 관리되어야 하는 데이터 조건을 식별할 수 있으며, 이는 ETL 프로세스에서 명시적이고 암묵적으로 구현된 검증 규칙의 수정으로 이어집니다.

데이터 웨어하우스는 일반적으로 다양한 형식과 목적을 가진 다양한 데이터 소스로부터 조립됩니다.이와 같이 ETL은 표준적이고 균질한 환경에서 모든 데이터를 통합하는 핵심 프로세스입니다.

설계 분석은[6] 서비스 수준 계약 내에서 처리해야 하는 데이터의 양을 파악하는 것을 포함하여 사용 기간 전반에 걸친 ETL 시스템의 확장성을 확립해야 합니다.소스 시스템에서 추출할 수 있는 시간이 변경될 수 있으며, 이는 동일한 양의 데이터를 더 적은 시간에 처리해야 할 수도 있습니다.일부 ETL 시스템은 수십 테라바이트의 데이터로 데이터 웨어하우스를 업데이트하기 위해 테라바이트의 데이터를 처리하기 위해 확장해야 합니다.데이터의 양이 증가함에 따라 일일 배치에서 다중일 마이크로 배치로 확장할 수 있는 설계가 필요할 수 있으며, 지속적인 변환 및 업데이트를 위해 메시지 대기열 또는 실시간 변경 데이터 캡처와 통합할 수 있습니다.

성능

ETL 공급업체는 여러 CPU, 여러 하드 드라이브, 여러 기가비트 네트워크 연결 및 많은 메모리를 갖춘 강력한 서버를 사용하여 시간당 여러 TB(테라바이트)(또는 초당 최대 1GB)의 기록 시스템을 벤치마킹합니다.

실생활에서 ETL 프로세스의 가장 느린 부분은 보통 데이터베이스 로드 단계에서 발생합니다.데이터베이스는 동시성, 무결성 유지 및 인덱스를 처리해야 하기 때문에 성능이 느릴 수 있습니다.따라서 더 나은 성능을 위해 다음을 활용하는 것이 타당할 수 있습니다.

  • 고속 추출을 수행하면서 소스 시스템의 부하를 줄이기 위해 가능할 때마다 직접 경로 추출 방법 또는 대량 언로드(데이터베이스를 조회하는 대신)
  • 데이터베이스 외부의 대부분의 변환 처리
  • 가능할 때마다 대량 로드 작업

그러나 대량 작업을 사용하더라도 데이터베이스 액세스는 일반적으로 ETL 프로세스의 병목 현상입니다.성능을 높이는 데 사용되는 일반적인 방법은 다음과 같습니다.

  • 파티션 테이블(및 인덱스): 파티션 크기를 유사하게 유지합니다(주의).null분할을 스큐할 수 있는 값)
  • 로드 전에 ETL 계층에서 모든 유효성 검사 수행: 무결성 검사 비활성화(disable constraint...) 로드 중 대상 데이터베이스 테이블에서
  • 트리거 비활성화()disable trigger...) 로드 중 대상 데이터베이스 테이블: 별도의 단계로 효과 시뮬레이션
  • ETL 계층에서 ID 생성(데이터베이스에 없음)
  • 로드 전에 인덱스(테이블 또는 파티션)를 드롭하고 로드 후에 인덱스를 다시 작성합니다(SQL:drop index...; create index...)
  • 가능한 경우 병렬 벌크 로드 사용 - 테이블이 분할되어 있거나 인덱스가 없는 경우 잘 작동합니다(참고: 동일한 테이블(파티션)에 병렬 로드를 시도하면 일반적으로 데이터 행이 아닌 경우 인덱스에 잠금이 발생합니다).
  • 삽입, 업데이트 또는 삭제를 수행해야 하는 요구 사항이 있는 경우 ETL 계층에서 어떤 방식으로 처리해야 하는지를 찾은 다음 데이터베이스에서 이 세 가지 작업을 개별적으로 처리합니다. 삽입에 대해 대량 로드를 수행할 수 있는 경우가 많지만 업데이트 및 삭제는 일반적으로 API(SQL 사용)를 거칩니다.

데이터베이스에서 특정 작업을 수행할지 또는 외부에서 수행할지 여부는 절충을 수반할 수 있습니다.예를 들어 다음을 사용하여 중복 제거distinct데이터베이스가 느릴 수 있으므로 외부에서 수행하는 것이 타당합니다.반대쪽에, 사용하는 경우distinct(x100) 추출할 행의 수를 크게 줄이면 데이터를 언로딩하기 전에 데이터베이스에서 가능한 한 빨리 중복을 제거하는 것이 합리적입니다.

ETL의 일반적인 문제 원인은 ETL 작업 간의 많은 종속성입니다.예를 들어, 작업 A가 완료되지 않은 상태에서는 작업 B를 시작할 수 없습니다.일반적으로 그래프의 모든 프로세스를 시각화하고 병렬을 최대한 활용하여 그래프를 줄이고 연속적인 처리의 "체인"을 가능한 한 짧게 만들면 더 나은 성능을 얻을 수 있습니다.다시 말하지만, 큰 테이블과 그 지수를 분할하는 것이 정말 도움이 될 수 있습니다.

또 다른 일반적인 문제는 데이터가 여러 데이터베이스 간에 분산되어 있고 이러한 데이터베이스에서 순차적으로 처리가 수행되는 경우에 발생합니다.데이터베이스 복제는 데이터베이스 간에 데이터를 복사하는 방법으로 사용될 수 있습니다. 이는 전체 프로세스의 속도를 크게 저하시킬 수 있습니다.일반적인 해결책은 처리 그래프를 세 개의 레이어로만 줄이는 것입니다.

  • 원천
  • 중앙 ETL 계층
  • 대상

이 접근 방식을 사용하면 처리가 병렬의 이점을 최대한 활용할 수 있습니다.예를 들어, 데이터를 두 개의 데이터베이스에 로드해야 하는 경우 (첫 번째 데이터베이스에 로드한 다음 두 번째 데이터베이스에 복제하는 대신) 로드를 병렬로 실행할 수 있습니다.

때로는 순차적으로 처리가 이루어져야 합니다.예를 들어, 주요 "사실" 표의 행을 가져오고 유효성을 확인하려면 치수(기준) 데이터가 필요합니다.

병행처리

ETL 소프트웨어의 최근 발전은 병렬 처리의 구현입니다.많은 양의 데이터를 처리할 때 ETL의 전반적인 성능을 향상시킬 수 있는 여러 가지 방법을 가능하게 했습니다.

ETL 애플리케이션은 다음과 같은 세 가지 주요 병렬 유형을 구현합니다.

  • 데이터: 하나의 순차 파일을 작은 데이터 파일로 분할하여 병렬 액세스 제공
  • 파이프라인: 동일한 데이터 스트림에서 여러 구성 요소를 동시에 실행할 수 있습니다. 예를 들어 레코드 1의 값을 검색하는 동시에 레코드 2의 필드를 추가할 수 있습니다.
  • 구성요소:동일한 작업에서 서로 다른 데이터 스트림에서 여러 프로세스를 동시에 실행(예: 입력 파일을 정렬하는 동시에 다른 파일에서 중복 제거)

세 가지 유형의 병렬은 일반적으로 단일 작업 또는 작업에서 결합되어 작동합니다.

업로드되는 데이터가 비교적 일관성이 있는지 확인하는 데는 추가적인 어려움이 있습니다.여러 소스 데이터베이스의 업데이트 주기가 다를 수 있기 때문에(몇 분마다 업데이트되는 것도 있지만, 며칠 또는 몇 주가 걸릴 수도 있습니다), ETL 시스템은 모든 소스가 동기화될 때까지 특정 데이터를 보류해야 할 수도 있습니다.마찬가지로 창고가 소스 시스템 또는 일반 장부의 내용과 조정되어야 할 경우 동기화 및 조정 지점을 설정해야 합니다.

재실행 가능성, 복구 가능성

데이터 웨어하우징 절차는 일반적으로 큰 ETL 프로세스를 순차적 또는 병렬적으로 실행하는 작은 조각으로 세분화합니다.데이터 흐름을 추적하려면 각 데이터 행에 "row_id"를 태그하고 프로세스의 각 부분에 "run_id"를 태그하는 것이 합리적입니다.장애가 발생한 경우, 이러한 ID를 사용하면 장애가 발생한 작업을 롤백하고 다시 실행하는 데 도움이 됩니다.

모범 사례에는 프로세스의 특정 단계가 완료된 상태인 체크포인트도 필요합니다.일단 검문소에 가면 디스크에 모든 것을 기록하고, 일부 임시 파일을 정리하고, 상태를 기록하는 등의 방법을 사용하는 것이 좋습니다.

가상 ETL

2010년을 기점으로 데이터 가상화는 ETL 처리를 진전시키기 시작했습니다.데이터 가상화를 ETL에 적용함으로써 분산된 여러 데이터 소스에 대한 데이터 마이그레이션 및 애플리케이션 통합이라는 가장 일반적인 ETL 작업을 해결할 수 있었습니다.가상 ETL은 다양한 관계형, 반구조화형 및 비정형 데이터 소스에서 수집된 개체 또는 엔티티의 추상화된 표현으로 작동합니다.ETL 도구는 객체 지향 모델링을 활용하고 중앙에 위치한 허브 앤 스포크 아키텍처에 지속적으로 저장된 엔티티의 표현을 사용하여 작업할 수 있습니다.ETL 처리를 위해 데이터 소스에서 수집된 엔티티 또는 개체의 표현을 포함하는 이러한 컬렉션을 메타데이터 저장소라고 하며 메모리에[7] 상주하거나 영구적으로 만들 수 있습니다.ETL 툴은 영구 메타데이터 저장소를 사용함으로써 일회성 프로젝트에서 영구 미들웨어로 전환하여 데이터 조화 및 데이터 프로파일링을 일관되고 거의 실시간으로 수행할 수 있습니다.[8]

키 처리

고유 키는 모든 것을 연결하기 때문에 모든 관계형 데이터베이스에서 중요한 역할을 합니다.고유 키는 지정된 엔티티를 식별하는 열인 반면 외부 키는 기본 키를 참조하는 다른 테이블의 열입니다.키는 여러 열로 구성될 수 있으며, 이 경우 합성 키입니다.대부분의 경우 기본 키는 대표되는 비즈니스 개체에 대한 의미는 없지만 일반적으로 대리 키라고 하는 관계형 데이터베이스의 목적으로만 존재하는 자동 생성 정수입니다.

일반적으로 창고에 둘 이상의 데이터 소스가 로드되기 때문에 키는 해결해야 할 중요한 문제입니다.예를 들어, 고객은 여러 데이터 소스에 표시될 수 있으며, 한 소스에는 사회 보장 번호가 기본 키로, 다른 소스에는 전화 번호가, 세 번째 소스에는 대리 키로 표시될 수 있습니다.그러나 데이터 웨어하우스에서는 모든 고객 정보를 하나의 차원으로 통합해야 할 수도 있습니다.

문제를 해결하는 데 권장되는 방법은 사실 표에서 외부 키로 사용되는 창고 대리 키를 추가하는 것입니다.[9]

일반적으로 업데이트는 데이터 웨어하우스에 반영되어야 하는 차원의 소스 데이터에 발생합니다.

보고를 위해 원본 데이터의 기본 키가 필요한 경우 차원에는 각 행에 대한 해당 정보가 이미 포함되어 있습니다.원본 데이터가 대리 키를 사용하는 경우, 질의나 보고서에서 사용되지 않더라도 창고는 이를 추적해야 합니다. 이는 창고 대리 키와 원본 키가 포함된 룩업 테이블을 생성하여 수행됩니다.[10]이렇게 하면 업데이트 기능이 유지되는 동안 다양한 소스 시스템의 대체물로 치수가 오염되지 않습니다.

룩업 테이블은 소스 데이터의 특성에 따라 다른 방식으로 사용됩니다.5가지 유형을 고려해야 합니다.[10] 여기에는 3가지 유형이 포함됩니다.

유형 1
차원 행은 단순히 소스 시스템의 현재 상태에 맞게 업데이트되며, 창고는 기록을 캡처하지 않으며, 룩업 테이블은 업데이트하거나 덮어쓸 차원 행을 식별하는 데 사용됩니다.
유형 2
새 차원 행이 소스 시스템의 새 상태와 함께 추가되고, 새 대리 키가 할당되며, 소스 키가 룩업 테이블에서 더 이상 고유하지 않음
완전히 기록됨
새 차원 행이 소스 시스템의 새 상태와 함께 추가되는 반면 이전 차원 행은 더 이상 활성화되지 않고 비활성화 시간을 반영하도록 업데이트됩니다.

도구들

확립된 ETL 프레임워크는 연결성과 확장성을 향상시킬 수 있습니다.[citation needed]좋은 ETL 도구는 다양한 관계형 데이터베이스와 통신하고 조직 전체에서 사용되는 다양한 파일 형식을 읽을 수 있어야 합니다.ETL 툴은 이제 데이터의 추출, 변환 및 로딩 이상의 기능을 제공하는 엔터프라이즈 애플리케이션 통합 또는 엔터프라이즈 서비스 버스 시스템으로 마이그레이션되기 시작했습니다.많은 ETL 공급업체는 이제 데이터 프로파일링, 데이터 품질메타데이터 기능을 갖추고 있습니다.ETL 도구의 일반적인 사용 사례에는 CSV 파일을 관계형 데이터베이스에서 읽을 수 있는 형식으로 변환하는 것이 포함됩니다.사용자가 csv와 같은 데이터 피드/파일을 입력하고 가능한 한 적은 코드로 데이터베이스로 가져올 수 있도록 지원하는 ETL 툴을 사용하면 수백만 개의 레코드를 일반적으로 변환할 수 있습니다.

ETL 도구는 일반적으로 대용량 데이터 세트를 신속하게 가져오기를 원하는 컴퓨터 과학 전공 학생부터 회사 계정 관리를 담당하는 데이터베이스 설계자에 이르기까지 다양한 전문가가 사용하고 있습니다. ETL 도구는 최대 성능을 얻기 위해 사용할 수 있는 편리한 도구가 되었습니다.대부분의 경우 ETL 도구에는 파일을 구문 분석하고 데이터 유형을 수정하기 위한 대형 프로그램을 작성하는 것과 달리 시각적 데이터 맵퍼를 사용하여 사용자가 편리하게 데이터를 변환할 수 있도록 도와주는 GUI가 포함되어 있습니다.

ETL 툴은 전통적으로 개발자와 IT 직원을 위한 것이었지만, 조사업체 Gartner는 새로운 추세는 IT 직원에게 가는 것이 아니라 비즈니스 사용자가 필요할 때 직접 연결 및 데이터 통합을 생성할 수 있도록 이러한 기능을 제공하는 것이라고 밝혔습니다.[11]Gartner는 이러한 비기술 사용자를 Citizen Integrators라고 부릅니다.[12]

ETL vs. ELT

추출, 로드, 변환(ELT)은 추출된 데이터가 먼저 대상 시스템에 로드되는 ETL의 변형입니다.[13]분석 파이프라인의 아키텍처는 데이터를[13] 정화하고 풍부하게 하는 위치와 치수를 준수하는 방법도 고려해야 합니다.[1]

Ralph KimballJoe Caserta의 저서 The Data Warehouse ETL Toolkit, (Wiley, 2004)는 데이터 웨어하우징에서 ETL 프로세스를 가르치는 과정의 교재로 사용되고 있습니다.[14]

Amazon Redshift, Google BigQuery, Microsoft Azure Synapse AnalyticsSnowlite Inc.와 같은 클라우드 기반 데이터 웨어하우스는 확장성이 뛰어난 컴퓨팅 성능을 제공할 수 있었습니다.이를 통해 기업은 사전 로드 변환을 포기하고 원시 데이터를 데이터 웨어하우스로 복제하여 필요에 따라 SQL을 사용하여 변환할 수 있습니다.

ELT를 사용한 후에는 데이터를 더 가공하여 데이터 마트에 저장할 수 있습니다.[15]

각 접근 방식에는 장단점이 있습니다.[16]대부분의 데이터 통합 도구는 ETL 쪽으로 치우친 반면 ELT는 데이터베이스 및 데이터 웨어하우스 어플라이언스에서 인기가 있습니다.마찬가지로, 다른 데이터 저장소로 추출 및 로드하기 전에 블록체인에서 먼저 데이터를 변환하는 TEL(Transform, Extract, Load)을 수행할 수 있습니다([17]예: 토큰 버닝과 같이 데이터에 대한 변경 사항을 기록하는 방법).

참고 항목

참고문헌

  1. ^ a b c Ralph., Kimball (2004). The data warehouse ETL toolkit : practical techniques for extracting, cleaning, conforming, and delivering data. Caserta, Joe, 1965-. Indianapolis, IN: Wiley. ISBN 978-0764579233. OCLC 57301227.
  2. ^ Denney, MJ (2016). "Validating the extract, transform, load process used to populate a large clinical research database". International Journal of Medical Informatics. 94: 271–4. doi:10.1016/j.ijmedinf.2016.07.009. PMC 5556907. PMID 27506144.
  3. ^ Zhao, Shirley (2017-10-20). "What is ETL? (Extract, Transform, Load) Experian". Experian Data Quality. Retrieved 2018-12-12.
  4. ^ Pott, Trevor (4 June 2018). "Extract, transform, load? More like extremely tough to load, amirite?". The Register. Retrieved 2018-12-12.
  5. ^ "Data Integration Info". Data Integration Info.
  6. ^ Theodorou, Vasileios (2017). "Frequent patterns in ETL workflows: An empirical approach". Data & Knowledge Engineering. 112: 1–16. doi:10.1016/j.datak.2017.08.004. hdl:2117/110172.
  7. ^ 가상 ETL
  8. ^ "ETL is Not Dead. It is Still Crucial for Business Success". Data Integration Info. 8 June 2020. Retrieved 14 July 2020.
  9. ^ Kimball, The Data Warehouse Lifecycle Toolkit, 332쪽
  10. ^ a b Golfarelli/Rizzi, 데이터 웨어하우스 디자인, 페이지 291
  11. ^ "The Inexorable Rise of Self Service Data Integration". Gartner. 22 May 2015. Retrieved 31 January 2016.
  12. ^ "Embrace the Citizen Integrator". Gartner. Retrieved September 29, 2021.
  13. ^ a b Amazon Web Services, AWS에서의 데이터 웨어하우징, 9페이지
  14. ^ "The Data Warehouse ETL Toolkit: Practical Techniques for Extracting, Cleaning, Conforming, and Delivering Data [Book]".
  15. ^ Amazon Web Services, AWS에서의 데이터 웨어하우징, 2016, 페이지 10
  16. ^ "ETL vs ELT: We Posit, You Judge". 30 August 2013.
  17. ^ Bandara, H. M. N. Dilum; Xu, Xiwei; Weber, Ingo (2020). "Patterns for Blockchain Data Migration". Proceedings of the European Conference on Pattern Languages of Programs 2020. pp. 1–19. arXiv:1906.00239. doi:10.1145/3424771.3424796. ISBN 9781450377690. S2CID 219956181.