반응형
반응형
📌 이 글의 핵심 요약무슨 문제인가: 기존 팀 단위의 단편적인 모니터링 방식으로는 본부 전체 사용자가 무작위로 생성하는 수많은 Databricks 워크플로우의 성공/실패/지연 상태를 체계적으로 관리하고 대응하기 어려웠음.어떻게 해결했나: Databricks Job/Task API를 주기적으로 호출하는 자동 탐지 백엔드를 개발하고, 메타데이터 저장을 위한 RDS 구축 및 비공개 Teams 채널 연동을 아우르는 전사적 워크플로우 관측 가능성(Observability) 알림 아키텍처를 수립함.무슨 효과를 얻었나: 본부 내 누구나 워크플로우를 생성해도 별도 설정 없이 실시간 장애 알림이 자동 적용(바이브코딩 배려)되었으며, 단순 감지를 넘어 장애 원인을 신속히 진단할 수 있는 데이터 신뢰성(DRE) 기반을 마..
[공통] 데이터엔지니어링팀의 계획 - 단기 편 (0~2년) [공통] 데이터엔지니어링팀의 계획 - 단기편 (0~2년)어느 조직이든 간에 계획은 중요한 요소 중에 하나입니다. 데이터엔지니터링을 맡는 팀 역시 계획이 중요하긴 마찬가지입니다. 어느 부서건 비전과 계획을 수립하고 그에 맞게 일을 가져가고burning-dba.tistory.com 지난 단기편에 이어서 중기 편을 이어가려고 합니다. 만약 여러분이 단기 과정을 어느 정도 끝냈다면 이제부터는 중반에 접어들었을 것이라고 봅니다. 기존의 데이터가 없는 환경에서 이제 플랫폼을 이용하여 무엇을 할 수 있는 단계에 이르렀다고 생각됩니다. 이것은 엄청난 도약입니다. 데이터 없이 경험과 감으로 일하던 환경에서 이제는 사실 기반으로 데이터와 수치를 기반으로 업무를 ..
어느 조직이든 간에 계획은 중요한 요소 중에 하나입니다. 데이터엔지니터링을 맡는 팀 역시 계획이 중요하긴 마찬가지입니다. 어느 부서건 비전과 계획을 수립하고 그에 맞게 일을 가져가고 비전에 파생되는 계획을 단/중/장기적으로 실천하는 일이 필요합니다. 비전과 계획이 별거 아닌 것 같지만 이것이 없으면 팀원들은 팀 비전에 대해서 의구심을 느낄 수 있으며 불안감이나 또는 보람을 느끼지 못할 수 있습니다. 그렇기 때문에 비전과 계획은 굉장히 중요한것 같습니다. 이번 글에서는 비전 이야기보다는 실질적인 계획에 대해서 이야기해보고자 합니다. 목표라고 할 수도 있겠네요. 사실 비전은 팀마다 정하기 나름이고 회사의 기조에 따라서 많이 달라질 것 같기에 비전에 대해서 다루지 않고 데이터엔지니어링 팀의 계획에 대해서만 ..
📌 이 글의 핵심 요약무슨 도전이었나: Databricks 경험이 전무한 상태에서 이미 가동 중인 대규모 데이터 환경을 인수받아, 플랫폼의 현황을 파악하고 안정적인 운영 체계를 확보해야 하는 극한의 과제에 직면함.어떻게 해결했나:모아이(MOAI) 모니터링 시스템을 선제 구축하여 비용 및 실패 지표를 시각화하고,VACUUM 최적화를 통해 S3 스토리지의 불필요한 데이터 수백 TB를 청소했으며,파티션 재설계 및 쿼리 최적화로 성능을 극대화하는 동시에 업무 프로세스를 도식화하여 팀원들과 함께 시너지를 내는 구조를 확립함.무슨 가치를 얻었나: 인프라 비용 대폭 절감 및 쿼리 성능 향상이라는 하드웨어적 성과를 넘어, "누구나 데이터를 쉽게 사용할 수 있는 데이터 민주화(Democratization)"의 기반을 ..
안녕하세요.데이터 엔지니어 주형권입니다. 오늘은 보편적인(?) 이야기를 하려고 합니다. 데이터 엔지니어를 준비하시거나 데이터 엔지니어를 이제 막 시작하신 분들에게 드리는 이야기입니다. 데이터 엔지니어를 시작하려고 하거나 시작했을 때 많은 사람들이 느끼는 이질감과 내가 생각했던 일이 아닌데?라고 생각 하는 분들이 많이들 계실 거 같아서, 10년 넘은 경력자의 입장에서 말씀드리고자 합니다. 실제 경력자분들은 공감되는 내용도 있고 공감이 가지 않는 내용도 있을 수 있으니 재미로 봐주시면 좋겠습니다. 1. 데이터 엔지니어는 노가다다 데이터 엔지니어를 시작하실 때 많은 학원과 많은 언론에서 고액 연봉과 미래에 유망한 직업이며 많은 사람들의 선망의 대상이라고 광고합니다. 화려한 모습만을 내세우며 많은 사람들에게 매..
안녕하세요. 주형권입니다.제1부 - warming-up에 이어서 두 번째 이야기입니다. 두 번째 이야기는 데이터 환경을 구성하기 위해서 하는 준비 과정을 작성하였습니다. "생각보다 그냥 하면 되는 거 아니야?"라고 생각할 수 있지만 준비할 게 정말 많습니다. 저 같은 경우 사람들을 설득시키는 과정이 굉장히 힘들었고 인식을 바꾸는 과정이 가장 어려웠던 거 같습니다. 물론 사람의 입장의 차이가 모두 있고 팀의 사정이 저마다 다르기에 우리의 일을 모두 좋게 바라볼순 없습니다. 또한 여러 가지 이해관계가 엮여 있으므로 당연히 풀어야 하는 문제입니다. 무조건 우리 쪽의 입장만 들어주고 데이터를 만들어준다면 정말 편하겠지만 상대방의 입장과 상대방의 팀의 입장이 있고 변경하기 어려운 점이 분명히 존재하므로 여러 가..
안녕하세요. 주형권입니다. 최근에 범용적인 글을 많이 쓰고 있고 경험을 공유하는 글을 많이 작성하고 있는데요. 이런 글을 많이 쓰다 보니 기존에 했었던 노하우(?)를 공유해 달라는 요청이 몇 개 있어서 제가 전에 다녔던 G사에서 구성하였던 데이터 환경을 어떻게 구성하였는지 정리해 볼까 합니다. 이미 퇴사한 회사라서 회사명을 언급하진 않겠으나 G사면 어디인지 다들 아실 거라 생각합니다. 회사에서 팀장이였는데 데이터엔지니어링팀에 저 혼자였고 1인 팀장이었습니다... 그래서 혼자서 구축하였으니 제가 했던 게 전부라고 할 수 있겠네요. 아마도 이 글은 스타트업에 혼자서 데이터 환경을 어떻게 구성해야 할지 고민인 분들에게 많은 도움이 될 것으로 보입니다. 또한 이 글은 기존의 여러 가지 글을 짜깁기 하여 쓴 글..
안녕하세요. 주형권입니다. 지난번에 링크드인에서 이야기드렸듯이 과반의 득표를 얻어서 관련하여 글을 작성하였습니다. 이 글은 이제 막 시작하는 데이터엔지니어 또는 데이터엔지니어를 꿈꾸는 학생 또는 다른 직문의 사람에게 조금이나마 도움이 되고자 하여 작성하였으며, 저의 개인적인 견해와 생각이 많이 반영되어 있으므로 "꼭 이렇게 하세요." 라는 의도는 없으니 글을 읽을 때 참고 차원에서 읽어 주시기 바랍니다. 시작하며 시작하기에 앞서 이글을 왜 작성하였는지 설명을 드리려고 합니다. 제가 처음에 일을 시작할 때는 사수와 부사수라는 개념이 일반적이었습니다. 흔히 말하는 시니어와 주니어(신입)를 한 세트로 묶어서 사수가 부사수를 교육시켜주는 역할을 하였습니다. 요즘은 많은 회사가 사수와 부사수보다는 멘토(mento..
글을 읽기 전에 이 내용은 저의 경험을 토대로 작성하였습니다. 현재 사용하시는 도구 및 방법과 다르다고 하여 무엇이 맞고 틀리고를 이야기하고자 하는 글이 아닌 경험을 공유하고자 작성된 글이므로 참고 차원에서 봐주시길 바랍니다. 데이터를 보기 위해서는 많은 과정이 필요합니다. SQL을 이용해서 데이터를 추출하고 이를 엑셀로 다운로드하거나 리포트를 만들어서 보는 과정이 아닌 전체적인 과정을 설명하고자 합니다. 이 글의 내용은 제가 아는 범위에서 작성하였으나 회사마다 모두 다르고 사람마다 모두 다른 방식으로 할 수 있기 때문에 어느 정도 감안해서 글을 읽어 주시길 바랍니다. 보통 데이터는 크게 3가지의 데이터가 있습니다. 정형 데이터 : 관계형 데이터베이스 (MySQL , SQL Server , Oracle)..
안녕하세요. 이 내용을 쓸지 말지 정말 고민을 많이 했습니다. 예전에 링크드인에 관련하여 포트폴리오 형식으로 PPT를 만들어서 올렸는데요. 조회수가 3만에 육박하여 굉장히 많은 분들이 관심을 가져 주셨습니다. 그래서 매번 써야지 써야지 했는데 내용이 워낙 길어서 고민을 많이 했습니다. 간단하게 쓸 수 없었습니다... 1.0 개발 - 2개월 2.0 개발 - 2개월 3.0 개발 - 2개월 이렇게 총 3번의 버전 업데이트를 하였습니다. 처음에는 데이터를 볼 수 없어서 분석을 하지 못하였는데, BigQuery로 넣는 작업부터 시작하여... 재사용성을 고려하여 코드를 리팩토링 하였고, 마지막으로 multi thread를 적용하였습니다. 코딩을 2019년에 처음 시작하여, 지금의 회사에서 팀장님과 팀원들에게 많이 ..
안녕하세요. Grafana를 통해서 Airflow 모니터링 지표를 만들고 있는 와중에 Airflow의 dag이 실패할 경우 링크를 통해서 즉시 해당 로그로 들어갈 수 있게 만들고 싶어서 여러 번의 삽질(?)을 통해서 알아낸 정보를 공유하고자 글을 작성하였습니다. 이 글은 Grafana v7.5.3 을 기반으로 작성 되었습니다. 🙇♂️ 결론만 이야기하면... ${__data.fields [0]} 을 Table에 입력하고 원하는 컬럼을 숫자만 바꿔서 지정하면 끝입니다. 하지만 이것을 어디에 어떻게 넣어야지 동작하는지는 친절하게 설명되어 있지 않습니다. 그래서 제가 하나씩 보여주고자 합니다. 👇 아래의 링크 참고 https://stackoverflow.com/questions/51177406/create-a..