[출처 : https://www.unite.ai/ko/%EC%B5%9C%EA%B3%A0%EC%9D%98-etl-%EB%8F%84%EA%B5%AC/]
안녕하세요 AI 사업팀 김경덕입니다.
현재 현업에서 데이터 파이프라인을 개발하고 유지보수를 담당하고 있습니다. 하지만 정확한 개념이 없어 아직도 낯선데, 이번 기회에 ETL의 개념과 역사를 알아봄으로써 그 개념을 완벽하게 정리하고자 합니다. ETL의 기원, 현재, 미래, 현업에 적용 순으로 글을 작성하겠습니다.
ETL의 기원
ETL은 데이터 통합의 핵심 프로세스로, Extract(추출), Transform(변환), Load(적재)의 세 가지 단계로 구성됩니다. 20세기 후반부터 데이터 통합의 필요성이 증가하면서 등장한 ETL은 다양한 소스에서 데이터를 수집하여 중앙 저장소로 통합하는 역할을 해왔습니다. 초기에는 수작업이나 반자동화 방식으로 진행되었고, 주로 사용자 정의 스크립트와 기본 도구에 의존했습니다. 그러나 1980~1990년대에 데이터 웨어하우징이 발전하면서 ETL은 구조화된 데이터를 데이터 웨어하우스에 적재하기 위한 표준화된 방법론으로 자리 잡게 되었습니다. 예를 들어, Informatica, DataStage, Ab Initio와 같은 초기 ETL 도구들로 이러한 프로세스를 자동화하여 더 빠르고 신뢰성 있는 작업을 가능하게 했습니다.
전통적인 ETL 프로세스는 다음과 같은 순서를 따릅니다:
- 추출(Extract): 원본 소스에서 데이터를 추출합니다.
- 변환(Transform): 추출된 데이터는 중복 제거, 결합, 품질 검사 등의 과정을 통해 정확성과 일관성을 확보합니다.
- 적재(Load): 변환된 데이터는 데이터 웨어하우스와 같은 타깃 데이터베이스에 로드됩니다.
이러한 전통적인 ETL 아키텍처는 그 당시에는 효과적이었지만, 비정형 데이터, 대규모 데이터 볼륨, 실시간 처리 요구사항을 처리하는 데에는 한계가 있었습니다.
현대의 ETL
현대의 ETL에 대해 이야기해보겠습니다. 빅데이터 시대에 접어들면서 ETL 기술도 함께 발맞춰 빠르게 발전하고 있습니다. 과거에는 단순히 DB에 적재가 목적 이었다면 현대의 ETL은 대용량의 데이터를 목적에 맞는 데이터 웨어하우스, 데이터 마트에 적재하고 시각화까지 그 개념이 더 깊어지고, 넓어졌습니다. 이에 ELT, 클라우드 기술, AI 기술을 활용한 ETL 기술이 등장합니다.
1. ETL에서 ELT로
[출처 : https://dining-developer.tistory.com/50]
ELT방식은 데이터가 커질수록 Transform하는데 시간이 걸립니다. 그런데 점점 데이터의 양(Volume)과 생성되는 속도(Velocity)가 높아지다 보니, Transform하는 시간 때문에 실시간 대규모 데이터를 감당할 수 없어지게 되었습니다. 이에 우선 데이터를 다 저장하고(DataLake) 어떻게 사용할지는(DataWareHouse) 추후에 결정하자는 컨셉인 ELT 방식이 생겨났습니다. ELT의 장점은 다음과 같습니다.
※ DataLake란? 가공되지 않은 다양한 종류의 데이터를 한 곳에 모아둔 저장소의 집합 ※ DataWareHouse란? 의사결정에 도움을 주기 위해 분석가능한 형태로 변환한 데이터들의 집합
- 병목현상 감소: 데이터 변환이 대상 시스템 내에서 이루어지므로 중간 데이터 이동과 관련된 병목현상을 제거합니다.
- 대규모 데이터 처리 최적화: ELT는 빅데이터 환경에 적합하며, 현대 데이터 웨어하우스는 증가하는 데이터 볼륨을 효율적으로 처리하도록 설계되었습니다.
- 최소한의 전처리: ELT 파이프라인은 데이터를 빠르게 추출 및 로드하여 대상 시스템에 저장하며, 복잡한 전처리를 요구하지 않아 설계가 단순해집니다.
- 지연된 변환 수행: ELT는 원시 데이터를 먼저 데이터 웨어하우스에 로드한 후, 비즈니스 요구 사항에 따라 변환을 나중에 수행할 수 있습니다. 이는 탐색적 분석이나 빠르게 변화하는 환경에서 특히 유용합니다.
- Schema-on-Read: ELT는 읽기 시점 스키마를 지원하여 데이터를 재로드하거나 복제하지 않고도 다양한 목적에 맞는 변환을 수행할 수 있습니다.
2. 클라우드 기반 ETL
[출처 : https://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/orchestrate-an-etl-pipeline-with-validation-transformation-and-partitioning-using-aws-step-functions.html]
클라우드 기반 ETL(Extract, Transform, Load) 방식은 데이터 처리의 효율성을 극대화하고, 기업들이 데이터 기반 의사결정을 내리는 데 필수적인 역할을 하고 있습니다.
클라우드의 장점
- 확장성: 클라우드 환경에서는 데이터의 크기에 따라 자동으로 확장할 수 있어, 데이터 양이 급증해도 안정적으로 처리할 수 있습니다. 예를 들어, Google BigQuery는 실시간으로 확장하여 테라바이트(TB)급 데이터를 신속하게 처리할 수 있는 능력을 갖추고 있습니다.
- 비용 효율성: 서버리스 환경에서는 사용한 만큼만 비용을 지불하게 되어 경제적입니다. AWS Glue의 ETL 작업은 실행 시간 동안에만 요금이 발생하므로, 기업은 필요할 때만 비용을 지출할 수 있습니다.
- 통합 지원: 클라우드 환경에서는 다양한 데이터 소스(SQL, NoSQL, API)를 쉽게 연결할 수 있습니다. Azure Data Factory를 활용하면 S3, SQL Server, Salesforce와 같은 다양한 데이터 소스를 단일 파이프라인으로 통합하여 효율적인 데이터 처리가 가능합니다.
클라우드 기반 ETL 사용 사례
- Netflix: Netflix는 Apache Spark와 Kafka를 활용하여 글로벌 사용자 데이터를 클라우드 환경에서 실시간으로 처리하고 있습니다. 이를 통해 사용자 맞춤형 추천 알고리즘을 적용하여 개인화된 콘텐츠 제공을 실현하고 있습니다.
- Uber: Uber는 AWS와 Google Cloud Platform을 통해 대규모 실시간 운송 데이터를 클라우드에 저장하고 분석합니다. 이 데이터는 운송 최적화 및 드라이버-승객 매칭 알고리즘에 활용되어, 서비스의 품질을 높이는 데 기여하고 있습니다.
3. AI를 활용한 ETL
AI 기술이 발전하면서 ETL에도 적용할 수 있게 되었습니다. AI 기술이 ETL에 적용된다면, 데이터 로그 자동 분석으로 데이터의 소실을 최소화 할 수 있으며, 사람이 정의한 코드 및 스크립트를 자동으로 수정이 가능하여 휴먼 에러 최소화에 기여하면서 최상의 데이터 품질을 기대할 수 있습니다.
미래의 ETL 트렌드
1. 레이크하우스 아키텍처
[출처 : https://www.databricks.com/kr/glossary/data-lakehouse]
대부분의 기업들은 데이터 웨어하우스(DataWareHouse)와 데이터 레이크(Data Lake)를 이용해 자사의 데이터들을 관리해왔지만, 서로 반대되는 장점과 단점을 보유한 두 가지 기술들을 유지하면서 관리가 복잡해지고 비용이 증가하는 문제를 겪고 있다. 이에 두개의 기술들의 장점을 결합한 데이터 레이크 하우스(DataLakeHouse)의 개념이 등장합니다.
레이크 하우스의 장점
- 통합 아키텍처 : 데이터 레이크하우스는 이 두 세계를 통합하여 기업이 원시 데이터를 유연하게 저장하는 동시에 구조화된 고성능 쿼리 기능을 제공할 수 있습니다. 이를 통해 시스템 간에 데이터를 이동할 필요가 없으며 혼합된 작업 부하를 원활하게 처리할 수 있습니다.
- 비용 효율성 : 레이크하우스는 원시 데이터 스토리지와 처리된 데이터 스토리지를 하나의 플랫폼으로 결합하여 복제 필요성을 줄입니다. 레이크하우스에서 사용하는 객체 스토리지는 창고에서 요구하는 최적화된 스토리지 계층보다 훨씬 저렴합니다.
- ETL 단순화 : 레이크하우스는 워크로드에 따라 ETL 및 ELT 접근 방식을 모두 지원합니다. 이러한 유연성은 데이터 처리 파이프라인의 복잡성을 줄이고 실시간 및 일괄 처리를 지원합니다.
- 고급 분석 : 레이크하우스는 Apache Spark, TensorFlow, PyTorch와 같은 도구를 통합하여 기본적으로 고급 분석을 지원합니다. 이를 통해 데이터 과학자와 분석가는 데이터를 마이그레이션하지 않고도 동일한 플랫폼에서 작업할 수 있습니다.
- 확장성 : 분산 시스템을 기반으로 구축된 레이크하우스는 수평으로 확장되어 대규모 데이터 세트와 워크로드를 처리합니다. 실시간 스트리밍 데이터와 일괄 처리를 동시에 지원할 수 있어 현대적인 사용 사례에 이상적입니다.
- 개선된 거버넌스 : 레이크하우스는 ACID 트랜잭션(원자성, 일관성, 격리, 내구성), 데이터 버전 관리 및 세분화된 액세스 제어를 포함한 강력한 거버넌스 메커니즘을 제공합니다. 이를 통해 모든 데이터 세트에서 데이터 무결성과 추적성이 보장됩니다.
2. 멀티 클라우드 전략
[출처 : https://ko.mfgrobots.com/iiot/cloud/1008031206.html#google_vignette]
멀티 클라우드는 여러 클라우드 서비스 제공업체의 인프라와 서비스를 동시에 사용하는 전략을 의미합니다. 기업은 AWS, Microsoft Azure, Google Cloud Platform 등 다양한 클라우드 플랫폼을 활용하여 데이터 저장, 애플리케이션 호스팅, 머신러닝, 데이터 분석 등의 서비스를 통합적으로 운영할 수 있습니다. 멀티 클라우드 전략은 특정 클라우드 제공업체에 대한 의존도를 줄이고, 각 플랫폼의 장점을 극대화하는 데 도움을 줍니다.
ETL관점에서 멀티 클라우드 전략이 필요한 이유
- 데이터 소스 통합의 용이성 : 현대의 기업 환경에서는 다양한 데이터 소스가 존재합니다. 이러한 데이터 소스는 온프레미스 시스템, 여러 클라우드 서비스, IoT 장치 등으로 분산되어 있습니다. 멀티 클라우드 전략을 통해 기업은 각 클라우드 플랫폼에서 제공하는 데이터 통합 도구와 API를 활용하여 다양한 소스에서 데이터를 쉽게 추출할 수 있습니다. 예를 들어, AWS에서 수집된 로그 데이터와 Google Cloud의 고객 데이터베이스를 통합하여 분석할 수 있습니다.
- 성능 최적화 및 리소스 할당 : ETL 작업은 대량의 데이터를 처리해야 하며, 이 과정에서 성능이 중요한 요소로 작용합니다. 멀티 클라우드 환경에서는 각 클라우드 제공업체의 성능 특성을 고려하여 ETL 작업을 최적화할 수 있습니다. 예를 들어, 데이터 변환 작업이 CPU 집약적이라면, 해당 작업을 처리하는 데 최적화된 클라우드에서 실행하고, 데이터 저장이 비용 효율적인 클라우드에 결과를 로드하는 방식으로 리소스를 효율적으로 할당할 수 있습니다.
- 비용 효율성 및 가격 경쟁력 : 클라우드 서비스 제공업체는 각기 다른 가격 모델을 가지고 있으며, 데이터 전송, 저장, 처리 비용이 상이합니다. 멀티 클라우드 전략을 통해 기업은 각 클라우드의 가격 구조를 비교하고, ETL 프로세스의 각 단계에서 가장 비용 효율적인 옵션을 선택할 수 있습니다. 예를 들어, 특정 클라우드에서 데이터 전송 비용이 낮다면, 해당 클라우드를 통해 데이터를 이동시키는 것이 경제적일 수 있습니다.
- 데이터 품질 및 신뢰성 향상 : 데이터 품질은 ETL 프로세스의 성공에 중요한 요소입니다. 멀티 클라우드 환경에서는 다양한 클라우드 플랫폼에서 제공하는 데이터 품질 관리 도구를 활용하여 데이터 정제 및 변환 작업을 수행할 수 있습니다. 예를 들어, 한 클라우드에서 제공하는 고급 데이터 정제 기능을 사용하여 데이터를 정제한 후, 다른 클라우드에서 분석을 수행함으로써 데이터의 신뢰성을 높일 수 있습니다.
- 규모 확장성 및 유연성 : 멀티 클라우드 환경은 기업이 필요에 따라 리소스를 확장하거나 축소할 수 있는 유연성을 제공합니다. ETL 프로세스의 요구 사항이 변화함에 따라, 기업은 특정 클라우드의 리소스를 추가하거나 다른 클라우드로 작업을 이전하여 최적의 성능을 유지할 수 있습니다. 이는 특히 데이터 양이 급증하는 경우에 유용합니다.
- 데이터 주권 및 규제 준수 : 데이터 주권 및 규제 준수는 기업이 데이터를 저장하고 처리하는 데 있어 중요한 고려 사항입니다. 멀티 클라우드 전략을 통해 기업은 특정 지역의 법규를 준수하면서도 다양한 클라우드 서비스를 활용할 수 있습니다. 예를 들어, 유럽 연합의 GDPR 규정을 준수하기 위해 유럽 내 클라우드에 데이터를 저장하고, 다른 지역의 클라우드에서 데이터 분석을 수행하는 방식으로 규제를 준수할 수 있습니다.
멀티 클라우드 VS 하이브리드 클라우드
멀티 클라우드는 단일 이기종 아키텍처에서 서로 다른 공급자의 여러 클라우드 컴퓨팅 서비스를 사용하는 것을 의미합니다.
하이브리드 클라우드는 내부 인프라와 하나 이상의 퍼블릭 클라우드 서비스가 혼합된것으로, 둘 사이에 조정 및 관리 기능이 있습니다.
이밖에도 로우코드/노크드 도구를 이용한 파이프라인 개발, 지금도 빠르게 발전중인 실시간 데이터 처리 기술 등이 있습니다. 이처럼 현대 ETL의 발전은 데이터 처리의 효율성을 높이고, 기업들이 데이터 기반 의사결정을 내리는 데 큰 도움을 주고 있습니다. 앞으로도 ETL의 진화는 계속될 것이며, 새로운 기술과 접근법이 등장할 것입니다. 데이터의 중요성이 날로 커지는 만큼, 이러한 변화에 발맞추어 나가는 것이 중요합니다.
현업에 적용
현재의 ETL 파이프라인
1. 추출(Extract)
- FTP 서버, API(Yahoo 등)에서 데이터 수집.
2. 변환(Transform)
- PYTHON3를 이용하여 데이터 변환, 매핑, 검증. AWS Lambda, Fargate, 커스텀 스크립트 등 도구 활용.
3. 적재(Load)
- 변환된 데이터를 PostgreSQL 데이터베이스에 저장.
AWS Glue 장점 및 적용
AWS Glue의 장점
-
서버리스 및 확장성
AWS Glue는 자원을 자동으로 프로비저닝하고 확장하므로 수작업 인프라 관리가 필요 없습니다. 데이터 볼륨이 증가해도 성능 저하 없이 처리 가능합니다. -
통합 데이터 카탈로그
Glue의 데이터 카탈로그는 중앙화된 메타데이터 저장소 역할을 하여 스키마 관리를 단순화하고 조직 전반에 걸쳐 데이터 검색을 용이하게 합니다. -
비용 효율성
Lambda, Jenkins, Fargate와 같은 여러 도구를 AWS Glue로 통합하여 운영 오버헤드와 비용을 절감할 수 있습니다. 작업 실행 동안 소비된 리소스에 대해서만 비용을 지불하면 됩니다. -
내장 오케스트레이션
Glue의 작업 스케줄링 기능은 Jenkins와 같은 외부 오케스트레이터를 대체할 수 있습니다. 작업 간 종속성은 Glue 워크플로우 내에서 직접 구성 가능합니다. -
AWS 생태계와의 통합
Glue는 S3, RDS, Redshift, CloudWatch와 같은 AWS 서비스와 원활하게 통합되어 데이터 처리에 일원화된 플랫폼을 제공합니다. -
자동 스키마 탐지
Glue 크롤러는 스키마를 자동으로 추론하고 카탈로그화하므로 수작업 노력을 줄이고 데이터셋 간 일관성을 보장합니다. -
분산 처리
Apache Spark로 구동되는 Glue 작업은 대규모 데이터셋을 효율적으로 처리하며, 분산 컴퓨팅을 활용해 변환 속도를 향상시킵니다.
현재 파이프라인과 GLUE를 적용한 파이프라인 비교
1. 추출(Extract)
- 기존 접근 방식: Jenkins와 같은 도구를 활용한 사용자 정의 스크립트로 데이터 수집.
- AWS Glue 솔루션:
AWS Glue 크롤러(Crawler)는 FTP 서버, API, S3에서 데이터를 자동으로 스캔하고 스키마를 추론하며, AWS Glue 데이터 카탈로그에 메타데이터를 저장합니다. 이를 통해 수작업 스크립트 작성이 필요 없어지고 스키마 관리가 일관되게 이루어집니다.
2.변환(Transform)
- 기존 접근 방식: 임시 테이블과 수작업 충돌 해결 SQL 스크립트를 사용하여 PostgreSQL에 데이터 쓰기.
- AWS Glue 솔루션: AWS Glue 작업(Job)은 Apache Spark를 기반으로 모든 변환 단계를 처리합니다:
- 데이터 변환: Spark의 기본 기능으로 일관된 인코딩(예: UTF-8) 보장.
- 스키마 매핑: AWS Glue 데이터 카탈로그 또는 스키마 레지스트리를 활용해 소스 데이터와 대상 테이블 간 정렬.
- 행 비교: Spark의 분산 처리를 활용하여 행 비교 및 업데이트를 효율적으로 수행.
3. 적재(Load)
- 기존 접근 방식: 임시 테이블과 수작업 충돌 해결 SQL 스크립트를 사용하여 PostgreSQL에 데이터 쓰기.
- AWS Glue 솔루션:
AWS Glue 작업은 RDS(PostgreSQL)나 Redshift에 데이터를 직접 쓰고, 삽입/업데이트(upsert)를 동적으로 처리할 수 있습니다. Glue의 Dynamic Frame은 중간 테이블 없이 효율적인 데이터 변환과 적재를 가능하게 합니다.
결론
현재의 ETL은 빅데이터 기술 중 일부로 생각되는 것 같습니다. 아직까지 빅데이터를 공부해보거나 현업에서도 경험하지 못했는데 이번의 기회로 빅데이터 기술에 입문을 해야겠다는 결심이 섰습니다. 한편으론, 데이터를 다루는 직무를 담당하고 있는데 현재 트렌드인 빅데이터에 대해 많이 모르고 있다는 사실이 부끄럽기도 했습니다.
추후에는 빅데이터의 꽃이라고 불리는 하둡(Hadoop) 생태계에 대해 논해보려고 합니다. 하둡은 대량의 데이터를 저장하고 처리하는 데 강력한 도구로, 분산 처리 시스템을 통해 데이터의 효율적인 관리와 분석을 가능하게 합니다. 하둡의 다양한 구성 요소인 HDFS, MapReduce, YARN 등을 이해하고 활용하는 것은 데이터 전문가로서의 역량을 한층 더 강화하는 데 큰 도움이 될 것입니다.
다음에는 더욱 발전된 글로 찾아뵙겠다는 약속을 드리며, 이 글을 마무리하겠습니다. 감사합니다.