LSM 트리 vs B-tree - 쓰기는 왜 덧붙이는 쪽이 이기는가
BigQuery 시리즈를 마치고 다시 데이터 엔지니어링 시리즈로 돌아왔습니다. Row vs Column 편에서 InnoDB가 페이지를 B+ Tree로 관리한다고 한 문단으로 지나갔는데, 이번 글은 그 한 문단을 풉니다. B-tree가 어떻게 쓰고 왜 쓰기가 비싼지, 그...
데이터 엔지니어의 기술 블로그
78개의 글
BigQuery 시리즈를 마치고 다시 데이터 엔지니어링 시리즈로 돌아왔습니다. Row vs Column 편에서 InnoDB가 페이지를 B+ Tree로 관리한다고 한 문단으로 지나갔는데, 이번 글은 그 한 문단을 풉니다. B-tree가 어떻게 쓰고 왜 쓰기가 비싼지, 그...
지난 편에서는 누가 데이터를 볼 수 있는지를 다뤘습니다. 이번 편에서는 그 데이터가 어디 있는지를 다룹니다. 'US 멀티리전에 두면 여러 리전에 복제되니까 안전하다'는 말부터 틀렸습니다.
지난 편까지 데이터를 어떻게 저장하고, 조회하고, 넣는가를 다뤘습니다. 이번 편은 방향이 조금 다릅니다. 그 데이터를 누가 어떻게 볼 것인가 쪽으로 넘어옵니다.
지난 편에서 Storage Write API로 데이터를 넣는 방식을 봤습니다. 그런데 지금까지 다룬 스트리밍은 대체로 append-only, 즉 새 이벤트를 계속 밀어 넣기만 하는 그림이었습니다.
지난 편까지는 데이터를 저장하고, 읽고, 뷰로 서빙하는 얘기를 주로 다뤘습니다. 이번 편에서는 데이터를 BigQuery에 넣는 방식을 다룹니다.
BigQuery의 뷰(View) 3종을 정리합니다. 일반 뷰(Standard View), 승인된 뷰(Authorized View), 머티리얼라이즈드 뷰(Materialized View)이 각각 어떤 문제를 푸는지, 권한과 비용 관점에서 언제 어떤 뷰를 썰야 하는지까지 ...
BigQuery 파티셔닝과 클러스터링을 정리합니다. 두 도구는 서로 다른 방식으로 스캔량을 줄입니다. 파티션/클러스터 프루닝이 실제로 어떻게 동작하고, WHERE 함수를 쓰면 왜 깨지는지, 언제 파티션을, 언제 클러스터링을 썰야 하는지까지 다룹니다.
BigQuery 쿼리가 느릴 때 어디를 봐야 하는지 정리합니다. 콘솔의 실행 계획(Execution Graph)으로 병목 stage를 집고, INFORMATION_SCHEMA.JOBS로 추세를 보고, slot_ms와 큐잉 시간으로 슬롯 부족을 구분하는 방법을 다룹니다....
BigQuery 슬롯(Slot)과 컴퓨트 과금 모델을 정리합니다. On-demand와 Editions(Standard·Enterprise·Enterprise Plus)의 차이, Baseline과 Autoscale을 어떻게 배합해야 안정성과 비용을 둘 다 잡는지 다룹니다...
BigQuery의 저장 모델과 비용 구조를 정리합니다. 바이트 산정 방식(Logical vs Physical), 시간에 따른 요금 할인(Active vs Long-term Storage), 그리고 실무에서 놓치기 쉽은 비용 함정을 다룹니다.
18편
11편
10편
9편
5편