8. CDC와 스트리밍 - 데이터를 최신 상태로 유지하기
지난 편에서 Storage Write API로 데이터를 넣는 방식을 봤습니다. 그런데 지금까지 다룬 스트리밍은 대체로 append-only, 즉 새 이벤트를 계속 밀어 넣기만 하는 그림이었습니다.
데이터 엔지니어의 기술 블로그
75개의 글
지난 편에서 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), 그리고 실무에서 놓치기 쉽은 비용 함정을 다룹니다.
BigQuery의 아키텍처를 정리합니다. 쿼리를 실행하는 Dremel, 데이터를 보관하는 Colossus, 둘을 이어주는 Jupiter 네트워크, 자원을 다루는 Borg의 역할을 살펴보고, compute-storage 분리 구조가 만드는 트레이드오프와 슬롯 개념의 기초...
이전 글에서는 Schema Registry가 Kafka 환경에서 스키마 호환성을 검증하는 구조를 살펴봤습니다. 스트리밍에서는 Schema Registry가 스키마 진화를 관리하지만, 데이터 레이크 쪽은 사정이 다릅니다. S3에 Parquet 파일이 수만 개 쌓여 있고,...
이전 글에서는 Avro가 스키마를 파일에 넣어 태그 없는 바이트를 해석하고, Writer/Reader Schema 분리로 스키마 진화를 지원하는 구조를 살펴봤습니다. 마지막에 Kafka 환경에서 Schema Registry가 스키마를 중앙 관리하고 호환성을 검증한다고 ...
18편
11편
9편
8편
5편