Inflearn brand logo image

인프런 커뮤니티 질문&답변

고해양님의 프로필 이미지
고해양

작성한 질문수

실리콘밸리 데이터 리더가 알려주는 Airflow 기초

파이썬으로 간단한 ETL 작성해보기

ETL 작성 이유

작성

·

152

1

이 과정은 google colab을 사용하여 ETL 프로세스를 만들어 스노우플레이크에 적재하는 방식을 보여줍니다.
두 개의 컬럼을 갖고 있는 country_capital.csv 파일을 텍스트로 풀어 쓰고 콤마로 나눠 country와 capital 로 나누는 과정을 설명해주는데, 이 과정을 진행하는 이유가 단순 궁금합니다.

스노우플레이크 GUI 환경에서 add data 하여 스테이지-테이블 순으로 적재를 하면 되는데 코드화 하여 적재하는 구분하여 적재하는 이유가 단순히 궁금합니다.

 

혹시, 나중에 처리하여 올리기 힘든 데이터의 경우 이렇게 전처리 과정을 미리 거쳐 올리는 방법을 알려주시는건가요?

답변 3

0

한기용님의 프로필 이미지
한기용
지식공유자

다시 질문의 제목을 보니 "ETL의 작성 이유"라고 되어서 혹시 이번 과정의 앞단 설명 부분을 건너뛰고 바로 코드로 넘어온 것은 아닌지 걱정이 되어서 (간혹 마음이 급하다보면 그러는 경우들이 과거에 있었습니다) 첨언을 해보자면 데이터 인프라를 구축을 해서 데이터 분석과 머신 러닝 모델 빌딩 등에 필요한 데이터를 계속해서 최신 정보로 데이터 웨어하우스에 복제하는 과정이 필요하고 그게 데이터 파이프라인 중의 하나인 ETL입니다. 필요할 때마다 매뉴얼하게 해서는 운영이 안되기에 코드로 자동화하는 것이 필요하고 그 예를 먼저 아주 간단하게 나라, 수도 CSV 파일로 시작해본 거라고 이해하시면 됩니다.

 

안 그러셨으리라 믿지만 혹시라도 (혹은 마음이 급한 다른 분들을 위해서) 앞단 건너 뛰고 바로 코딩으로 넘어온 거라면 꼭 다시 돌아가면 데이터 인프라의 개념과 필요 이유부터 다시 이해하도록 하세요. 느리게 천천히 가는게 결국 더 빠르게 가는 더라구요.

0

한기용님의 프로필 이미지
한기용
지식공유자

좋은 질문 감사드립니다. 궁극적인 목표는 "자동화"입니다. 시작은 Google Colab 상에서 파이썬으로 코드를 만들어서 처리하고 나중에 이를 Airflow에 맞게 수정한 다음에 주기적으로 실행해보게 됩니다 (하루에 한번). 아무리 매뉴얼하게 쉽게 할 수 있는 작업이라 해도 매일 내가 직접 실행해야 한다는 조건이 붙는다면 다른 차원의 문제가 되겠죠.

처음 코딩 대상이 된 country capital CSV 파일의 경우에는 이해하기 쉬운 케이스라 선택했을 뿐입니다. 나중에 주가 등을 읽어오는 예 등을 실습해보면서 좀더 전처리가 필요해지고 정말 매일매일 혹은 매시간 주가를 읽어오게 자동화해야 되기 때문에 코딩을 통한 자동화가 필수적이 됩니다.

요약하면 Airflow 프레임웍위에서 코딩을 통한 자동화가 궁극적인 목표인데 시작은 아주 단순하게 Google Colab 상에서 하면서 기본을 배워나가는 거라 보면 됩니다. 다시 한번 좋은 질문 감사드리고 더 궁금한 부분 있으면 꼭 알려주세요!

 

0

안녕하세요, 인프런 AI 인턴입니다. 고해양님.

강의에서 설명하는 ETL(Extract, Transform, Load) 과정은 데이터 엔지니어링의 핵심 프로세스 중 하나로, 데이터를 추출하고, 변환하여 저장하는 일련의 과정입니다. 이 과정을 코드화하고 자동화하는 이유는 여러 가지가 있습니다:

  1. 데이터 품질 향상: 데이터를 스노우플레이크 같은 데이터 웨어하우스에 적재하기 전에 필요한 데이터 정제나 변환 과정을 코드로 미리 수행하면, 데이터 품질을 높이고 일관성을 유지할 수 있습니다.

  2. 자동화: ETL 파이프라인을 코드로 작성하고 자동화하면 반복적인 수작업을 줄이고, 효율적이고 체계적인 데이터 관리가 가능합니다. 이는 특히 대량의 데이터나 정기적인 데이터 업데이트 환경에서 중요합니다.

  3. 복잡한 변환 실행: 때로는 단순한 데이터 로딩 외에, 데이터 변환이나 복합적인 로직 적용이 필요할 수 있습니다. 이를 ETL 과정에서 미리 처리하여 저장하는 것은 이후 데이터 분석 작업의 효율을 높일 수 있습니다.

  4. 유연한 재사용성: 코드로 작성된 ETL 파이프라인은 유지 보수와 재사용이 용이하여, 많은 데이터 소스와 목적지 간의 다양한 변환 시나리오에 유연하게 대응할 수 있습니다.

귀하의 질문에서도 알 수 있듯이, ETL 과정을 통해 복잡한 전처리나 다양한 변환 작업을 사전에 처리하여 데이터 적재 시 발생할 수 있는 문제를 방지하고자 하는 것이 목적입니다.

아래 관련 질문 및 답변 링크도 참고해보시면 더욱 이해에 도움이 될 것입니다:
- [왜 데이터를 코드로 전처리하는가?] 관련 질문 및 답변

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

고해양님의 프로필 이미지
고해양

작성한 질문수

질문하기