분류 전체보기
-
당신의 인덱스는 안녕하신가요?(커버링 인덱스)Programming 2024. 3. 31. 21:10
인덱스를 적용하는 이유 인덱스는 데이터베이스 내의 데이터를 빠르게 찾을 수 있도록 도와주는 데이터 구조이다. 인덱스를 사용하지 않은 상태에서 데이터를 검색하면, DBMS는 요청된 데이터를 찾기 위해 테이블의 모든 행을 순차적으로 검색해야 한다. 이러한 과정을 풀 테이블 스캔(Full Table Scan)이라고 하며, 대량의 데이터가 저장된 테이블에 풀 스캔을 할 경우에 많은 시간이 소요될 수 있다. 인덱스를 적용하면, DBMS는 인덱스를 통해 데이터의 위치를 빠르게 찾아 접근할 수 있게 되어 검색 속도가 향상된다. 대부분 인덱스를 설명할 때 책의 목차에 비유하는 이유도 이 때문이다. 인덱스는 검색 시간과 쿼리 실행 시간을 단축시킴과 동시에 테이블 전체가 아닌 인덱스 내에서 스캔하기 때문에 DB에 부하도 ..
-
SparkSQL에서 증분 테이블 처리하기Programming 2024. 2. 25. 21:49
배경 ETL처리시 Spark를 통해 Trasfroming을 하는데 1000만 로우가 넘는 테이블을 이관하며 기존 Overwrite하는 방식이 아닌 증분되는 양만큼만 반영하기로 함 updated_at 컬럼으로 증분되는 양만 읽어서 기존 테이블에 upsert를 하는 방식 현재 운영하는 데이터웨어하우스는 일반적인 RDB가 아닌 HDFS기반이므로 불변성을 위해서 upsert를 할 수 없음 옵션 Hudi or Delta Lake or Iceberg와 같은 동시성이 제공되는 오픈소스를 사용한다 현재 실시간 테이블을 위해서 Delta Lake를 사용되고 있지만 이관을 위해서는 따로 사용하고 있지 않으므로 다른 테이블과 사용성 및 통합을 위해서 해당 옵션은 보류 SQL 윈도우 함수를 통해서 증분된 만큼 처리하고 기존 ..
-
혼자공부하는 머신러닝+딥러닝 책 리뷰Review/Book 2024. 2. 18. 23:16
머신러닝과 딥러닝에 대한 공부를 시작하게 된 계기 나는 직업적으로 데이터 엔지니어라는 직군을 가지고 있고, 최근들어 GPT모델을 사용한 생성형 AI 모델의 급성장과 생태계 파괴수준의 시장에서의 영향력은 아무래도 일반적인 사무직보다 더 크게 다가왔고 실제로도 많은 일처리 방식이나 생활 양식에 등 다방면에 걸쳐서 변화를 이끌어냈다. 물론 이러한 일련의 과정들이 없었더라도 직장에서 데이터 사이언티스트와의 협업이라든가 모델링이 필요한 업무의 요구사항이라든가 이것을 배워야한다는 필요성과 가치는 항상 느껴오고 있었다. 다만 아직 업무에 적응하기도 바쁜데… 배워야할 것들이 아직 태산인데…따위와 같은 핑계 아닌 핑계들로 인해서 뒤로 미루고 애써 못본 척을 해야했다. 하지만 이제는 진짜로 뛰어들어야 할 때다. 더이상 늦..
-
나는 노션을 버리기로 결심했다log 2024. 2. 13. 00:44
초기 노션의 의도나 어플리케이션의 만듦새가 그당시에 크게 혁신이라고 느끼고 많은 이들이 같이 쓰고 느껴봣으면 좋겠는 마음에 장황하게 노션을 소개하는 포스팅 글을 올릴 만큼이나 신봉자에 가까웠다. 당시 많은 메모앱들을 사용하고 있었고 노션을 알게됨으로 인해서 단번에 노션 하나로 통합해서 모든 것을 노션으로 기록하고 클립핑하고 정리하기 시작했다. 하지만 나는 최근 몇가지 이유로 인해서 노션을 더이상 기록저장이나 정리용도로 사용하지 않기로 결심했다. 첫번째, 쓰지 않는 잡다한 기능들이 추가되면서 앱 자체가 무거워지기 시작했다. 사실 초기 노션부터 무겁고 느리다는 지적은 쭉 있었다. 현재까지 이를 노션팀에서 인지하고 수정하고 보완하는 작업이 진행되고 있지만 앱이 가진 한계가 있다보니 이를 완전히 극복하기는 힘들..
-
2023 어느덧 4년차 개발자 회고log 2024. 1. 7. 22:38
어느덧 4년차 개발자 눈 깜짝할 새에 4년차 개발자가 되었다. 개인적으로 이 시점이 커리어적으로 가장 중요한 순간이라는 생각이 든다. 시니어는 아니지만 그렇다고 주니어라고 치기에는 애매한 연차. 여기서 얼마나 더 잘 갈고 닦느냐에 따라서 앞으로의 커리어가 더욱 상승 곡선을 그릴지 아니면 완만하게 그냥 흘러가게 될지 결정짓는 변곡점이라는 생각이다. 내가 주니어 시절 항상 이직하거나 리더와 미팅을 할 때 가장 먼저 주안점을 두고 물어 보았던 질문이 하나 있다. "일에만 집중할 수 있는 환경인가요?" 안타깝게도 첫번째 회사는 일에만 집중할 수 없는 수직적인 구조였고 정치적이거나 업무 이외에 불필요한 다수의 의미없는 행동들을 강요받았던 환경을 겪었기 때문에 병적으로 그저 아무것도 신경쓰지 않고일만 할 수 있는 ..
-
책 카프카 데이터 플랫폼의 최강자 리뷰Review/Book 2023. 12. 30. 20:19
무작정 카프카에 대해서 공부해보기 최근 회사에서 카프카를 프로젝트에 사용하게 되면서 여러 블로그나 도큐먼트들을 전전하며 파편적인 지식들만을 얻다가 카프카를 유지보수하게 될 일이 많이 생기게 되면서 기존 카프카의 기본적인 개념만 알고있었던 나는 실질적으로 어떤 아키텍쳐로 카프카가 활요오디는지 그리고 운영할 때 알아둬야하는 지식이나 주의해야 할 점은 무엇인지 등에 대해서 전반적으로 알아보려고 마음먹었을 때. 마침 이 책을 사두었던 것이 기억나서 꺼내서 다시 읽게 되었다. 다만 동명 저자의 최신 개정판인 '실전 카프카 개발부터 운영까지'라는 책 또한 구매하게 되어서 살짝 이 책의 위치가 애매해지게 되었는데, 그렇다고 아예 안읽을 수도 없어서 우선 가볍게 이 책을 읽고 다음으로 '실전 카프카 개발부터 운영까지'..
-
PrestoSQL to Trino Migration 할 때 주의할 점Programming 2023. 12. 22. 23:07
prestoSQL to Trino라고는 하지만 prestoSQL은 사실 Trino로 리브랜딩되기 전의 이름이므로 Trino의 메이저 업데이트라고 봐도 무방하다. 이 포스팅에서는 트리노의 메이저 업데이트 할 때 신경써야할 점들을 모은 내용이다. 사실 메이저 업데이트를 진행한 것은 아주 오래전이고 구성한 인프라별, Trino에 설치한 플러그인별로 증상이 상이하며 지엽적인 내용이 될 가능성이 높다고 생각해서 그 당시 포스팅으로는 작성하지 않고 있었던 찰나에 그래도 부분적으로 나마 나와 동일한 증상을 겪고 있을 사람들을 위해 기록을 남긴다. 메이저 업데이트를 하는 것보다 새로 설치하는 것이 낫다 항상 앞자리가 바뀌는 업데이트를 진행할 때마다 느끼는 생각이다. 업데이트를 진행하다보면 지금당장은 티가 안나더라도 어..
-
늦은 두번째 트리노 밋업 참여 후기log 2023. 12. 4. 22:13
세션만 달라지고 장고나 제공해주는 티셔츠, 음식 등은 지난번과 비슷했다. 두번째 세션까지 sk에서 주로 세션도 준비하고 했지만 다음번 세션부터는 다른 다양한 회사들이나 참여자들을 기다린다고 하니 다음번 세션이 좀더 기대된다. 사실 첫번째 세션이 좀더 원론적이고 좀더 미래지향적인 내용들이 많았어서 개인적으로 세션은 첫번째 세션이 더 마음에 들었다. Trino를 위한 실시간 Kappa 아키텍처 트리노 소개 페더레이트를 통해 이종디비간 연산 분산 쿼리 엔진으로써 대용량 데이터 쿼리 효율적 처리 실시간 Kappa 아키텍처 람다 아키텍처는 코드 중복과 시스템 복잡도 증가 하지만 카파 아키텍처는 코드 중복 제거와 복잡도 감소 목표 데이터 정합성 낮은 지연 시간 높은 처리량 대용량 데이터 쿼리 지원 이벤트를 트리노 ..