Data Engineering(17)
-
BigQuery에서 Nested Data의 처리: Dremel 논문으로 이해하기🕵️♀️
들어가며 빅쿼리로 수집되는 서비스의 데이터를 보면 > 와 같은 데이터 타입을 자주 볼 수 있습니다. 복잡한 데이터 구조를 효율적으로 저장하고 처리하기 위해 이러한 타입이 사용되는데요, 지난주에도 평소와 같이 데이터를 조회하다가 문득 이런 생각이 들었습니다.컬럼 기반 스토리지에서는 중첩된 데이터를 어떻게 처리할까? 컬럼 기반 스토리지는 각 컬럼을 따로 저장해서 압축률을 높이고 조회 성능을 최적화하는데요, STRUCT나 ARRAY와 같이 중첩되고 반복되는 데이터는 단순한 구조가 아니어서 궁금증이 생겼습니다. 이를 이해하기 위해 BigQuery의 기반이 되는 Dremel이 어떻게 Nested Data를 다루는지 알아보았습니다. Dremel의 등장 : Nested Data를 다루는 방법 Dremel은 구글이 2..
2025.03.02 -
Kafka와 BigQuery를 활용한 데이터 파이프라인을 개선해보자☘️ (feat. MERGE문)
들어가며 현재 제가 속한 데이터 팀에서는 준실시간 분석 요청에 대응하기 위해 Kafka와 BigQuery를 활용한 CDC 기반 데이터 파이프라인을 구축하고 있습니다. 그러나 Kafka 커넥터를 사용하는 과정에서 데이터 규모 증가로 인한 비용 문제 발생 가능성이 제기되었습니다. 이번 글에서는 Kafka 커넥터와 BigQuery MERGE 문을 사용한 기존 파이프라인의 한계를 살펴보고, 이를 개선하기 위해 테스트한 과정을 공유하고자합니다. ✔️ CDC(Change Data Capture) 이름 그대로 데이터 베이스의 변경 사항을 실시간으로 추적하고 캡처하는 기술입니다. 데이터 웨어하우스 등 시스템으로의 동기화에 사용됩니다. 실시간 분석, 이벤트 기반 아키텍처 등에 활용할 수 있습니다. 1. 기존 구조Ka..
2025.01.19 -
데이터 분석의 경계에 선 엔지니어의 <인프런 BigQuery(SQL) 활용편>후기 (feat. 빠짝 스터디)🌱
들어가며 최근 업무에서 빅쿼리를 더 효과적으로 활용하는 방법을 고민하던 중 글또에서 성윤님(aka. 카일스쿨)의 인프런 강의 챌린지 소식을 듣게 되었어요. 일명 '빠짝 스터디'라는 이름으로 4주간 BigQuery 활용편 강의를 집중해 수강하는 프로그램이었는데요, 제가 관심있게 본 강의였고 30% 할인 쿠폰까지 제공되어 망설임 없이 신청했답니다.오늘은 강의를 선택한 이유와 스터디에서 배운 것들, 오프라인 모임에 다녀온 이야기까지 공유해보도록 할게요. 1. 강의를 듣게 된 이유 제가 속한 데이터 팀에는 분석가가 없어 직접 서비스의 지표를 구해야 하는 일이 종종 있어요. 일을 하다 보니 단순히 SQL 쿼리를 작성하는데 그치지 않고 데이터 분석의 개념과 흐름을 이해하고 싶은 생각이 들더라구요. 빅쿼리 활용편 ..
2024.11.24 -
PostgreSQL 핫 백업을 해보자 (feat. 젠킨스)
들어가며제가 속한 데이터 팀에서는 운영을 위한 별도의 PostgreSQL DB를 사용하고 있는데요, 지난 주 팀장님으로부터 DB의 백업 업무를 받게되었습니다. 오늘은 소중한 데이터를 불의의 사고(!)로 부터 지키기 위한 PostgreSQL 백업 방식과 이를 젠킨스로 자동화한 방법에 대해서 공유해보려고 합니다. 1. 콜드 백업과 핫 백업 처음 업무를 받았을 때 "콜드 백업이 아닌 핫 백업"으로 진행해달라는 요청이 있었습니다. RDB 백업은 처음이었기 때문에 용어부터 생소했던 기억이 나는데요 우선 개념을 알아보겠습니다. 1 ) 콜드 백업 데이터 베이스 서버를 내린 상태에서 진행하는 백업입니다. 오프라인 백업, 닫힌 백업이라고도 합니다. 주로 유지 관리 시간에 실행되며 백업을 하는 동안 서비스가 불가능합니다..
2024.11.10 -
이직 5개월 차의 BigQuery 최적화: 파티셔닝과 클러스터링으로 시작하기
들어가며 최근에 읽고 있는 『구글 빅쿼리 완벽 가이드』 7장 성능 및 비용 최적화에는 컴퓨터 과학자 도널드 커누스의 말이 나옵니다. "효율성은 향상시키려는 노력의 약 97%는 그 효과가 미비하므로 너무 집착해서는 안 된다. 성급한 최적화는 모든 문제의 근원만 될 뿐이다. 하지만 정말 중요한 3%의 최적화까지 포기해서는 안 된다." 빅쿼리를 사용한지도 어언 5개월입니다. 입사 초반에는 빅쿼리 UI에 뜨는 작은 바이트 수 변화 하나에도 집착하던 시기가 있었는데요, 아마 97%의 비효율적인 노력이 아니었나 싶습니다. 돌이켜보면 가장 빠르게 적용할 수 있고, 즉각적인 효과를 볼 수 있었던 3%의 가장 중요한 최적화는 파티셔닝과 클러스터링이었던 것 같아요. 오늘은 저와 같은 빅쿼리 초보자를 위한 파티셔닝과 ..
2024.10.27