🔎dbt를 써야할까?
데이터 엔지니어링 프로젝트를 진행하면서 dbt라는 도구를 알게 되었다. 대충 파이프라인 효율적으로 관리해주는 도구라는 이야기를 듣고, 이번 프로젝트에 한 번 사용해봐야겠다는 생각을 하였다. 하지만 dbt를 알아볼 수록 과연 정말 이 프로젝트에 필요할까는 생각이 계속 들었다.
데이터 엔지니어링에 필요한 여러 기술들을 경험해보자는 취지에서 프로젝트를 시작하긴 하였지만 오버엔지니어링이 아닐까 하는 생각이 들었다. 도입해야할 기술을 도입하지 않아서 힘든 상황도 좋지 않지만 나는 굳이 하지 않아도 될 일을 하는 오버엔지니어링이 더 두려운 사람이다.
기업이 최신 기술을 도입하는데 많은 비용이 드는 것처럼 나 또한 그것을 공부하는데 많은 시간이 들기 때문에 dbt보다 더 중요한 기술을 공부하는 시간을 뺏기는 것이 아닐까하는 의문이 들었고, 그 의문이 이번 포스팅을 하게 된 계기가 되었다.
이번 기회를 통해 dbt의 정의와 사용이유를 확실히 알고, 그것을 통해 과연 내가 dbt를 지금 도입할 필요성이 있을지를 판단해보려고 한다. 우선 dbt가 무엇인지부터 살펴보도록 하자.
📃dbt란 무엇일까?
dbt(data build tool)은 ETL 과정에서 T 즉 Transform(변환) 과정을 도와주는 툴이다. dbt의 가장 장점은 다른 복잡한 과정없이 오직 SQL만으로 원하는 테이블을 생성하고 관리할 수 있게 해준다는 것이다.
ETL은 데이터를 추출하고, 데이터를 원하는 형태로 변환하여 분석이나 시각화를 위한 데이터 웨어하우스나 데이터 마트에 적재하는 과정을 의미한다. 이 중 변환과정은 데이터를 사용(분석, 시각화, 머신러닝 등)에 용이한 형태로 바꾸기 위한 과정이므로 굉장히 중요하다.
이런 장점 때문에 해외의 많은 기업들이 dbt를 사용하고 있고 우리나라에도 점점 유입이 되고 있는 추세인 것 같다!(어떤 기업이 사용하고 있나 찾아보려고 했는데 찾지는 못했다 ㅠㅠ)
※ 그런데 왜 국내 기업들도 도입하고 있는 추세인 것 같다는 추측했나?
-> 내가 속한 데이터 엔지니어 오픈 채팅방에서 간혹 이야기가 나와서이다!
간단한 정의와 장점을 알아보았는데 정확히 왜 많은 기업들이 dbt를 사용하는지 조금 더 자세하게 알아보도록 하자!
❓왜 사용할까?
다양한 이유들이 있지만 내가 서치하여 정리한 한 줄 요약은 분석가가 엔지니어를 거치지 않고 필요한 테이블을 생성할 수 있게 해준다는 점이 가장 큰 사용이유가 아닐까 싶다. 이렇게 하면 분석가는 익숙한 SQL로 본인이 원하는 테이블을 바로바로 만들어볼 수 있고, 엔지니어는 다른 더 중요한 업무에 집중할 수 있게 된다.
이 밖에도 UI를 제공하여 데이터를 찾기 용이하다거나, 데이터 파이프라인을 더 견고하게 할 수 있다는 장점이 있다. 하지만 다소 러닝커브가 있는 편이라는 단점도 존재한다.
dbt의 정의와 사용이유에 대해 아주 간략하게 정리해보았는데(다시 보니 너무 간단했던거 같다😂), 더 자세한 내용은 밑의 블로그를 참고하면 될 것 같다!
💡나는 dbt를 꼭 써야할까?
지금까지 정리한 내용을 바탕으로 한다면 나는 과연 꼭 dbt를 사용해야 할까? 결론부터 말하자면, dbt는 다음 기회에... 여기에는 2가지의 이유가 있다.
첫번째로 지금 내가 진행하고 있는 프로젝트는 미리 정해진 테이블에 데이터만 계속해서 적재되는 형태이다. 따라서 dbt의 가장 큰 장점인 자유로운 테이블 생성이 지금의 태스크에선 필요가 없다. 오버엔지니어링이 되는 것이다.
두번째 이유는 dbt의 러닝커브 때문이다. 열심히 공부한다면 금방 배울 수 있겠지만 그 시간에 집중하기로 했던 다른 기술 공부(Airflow, k8s...)를 하는 것이 더 효율적이라고 판단하였다. 특히 위에서는 국내에서도 점점 도입하는 것 같다고 하긴 하였지만 일단 나는 못 찾았기 때문에... 우선은 많이 쓰는 기술을 공부하는 것이 좋을 것 같았다.
dbt를 사용하지 않기로 했으니 원래 파이프라인 아키텍처를 수정하러 가봐야될 거 같다🖐
+수정사항
다른 프로젝트를 하느라 오랫동안 이 프로젝트를 건드리지 못했다. 이제 슬슬 프로젝트를 재개해봐야 할 것 같아 다시 한 번 살펴보았는데, 수정해야 할 부분이 있을 것 같아 추가적으로 글을 적는다.
위에 취소선이 그어진 걸 보면 알 수 있듯이 dbt 사용에 대한 입장이 바뀌었다. 오버엔지니어링과 러닝 커브 때문에 적용을 하지 않기로 했었는데, 조만간 인턴때문에 dbt를 접할 것 같아서 오히려 공부를 해보기에 좋기도 하고 이번 프로젝트에 어울리는 툴이라는 생각이 들었다. (오버엔지니어링은 오히려 쿠버네티스인 거 같아 도커로 바꾸기로 하였다...😅)
아마 dbt에 대해 노션에 쭉 정리해볼 거 같은데, 퀄리티가 괜찮다 싶으면 블로그에도 공유를 해볼까한다. 그럼 이제 정말로 데이터 파이프라인 아키텍처를 수정하러 가봐야겠다✋
📚참고자료
dbt로 ELT 파이프라인 효율적으로 관리하기
배경
www.humphreyahn.dev
우리 회사는 dbt(data build tool) 를 써야 할까?
우리 회사는 dbt(data build tool) 를 써야 할까?
dbt(data build tool)은 무엇이고 언제 써야하는 것일까?
blog.visiodeibc.dev
'데이터 엔지니어링 > 데이터 엔지니어링 기초' 카테고리의 다른 글
빅데이터를 지탱하는 기술 키워드 정리 - 下 (0) | 2022.06.24 |
---|---|
빅쿼리 데이터 로딩 포맷 비교 CSV | JSON | Parquet | AVRO (0) | 2022.06.08 |
빅데이터를 지탱하는 기술 키워드 정리 - 上 (0) | 2022.03.18 |
데이터 웨어하우스란? (0) | 2022.03.17 |
빅데이터를 지탱하는 기술 Ch6 - 빅데이터 분석 기반 구축 (0) | 2022.01.05 |