9. 접근 제어 - IAM부터 마스킹까지
지난 편까지 데이터를 어떻게 저장하고, 조회하고, 넣는가를 다뤘습니다. 이번 편은 방향이 조금 다릅니다. 그 데이터를 누가 어떻게 볼 것인가 쪽으로 넘어옵니다.
데이터 엔지니어의 기술 블로그
76개의 글
지난 편까지 데이터를 어떻게 저장하고, 조회하고, 넣는가를 다뤘습니다. 이번 편은 방향이 조금 다릅니다. 그 데이터를 누가 어떻게 볼 것인가 쪽으로 넘어옵니다.
지난 편에서 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 파일이 수만 개 쌓여 있고,...
18편
11편
9편
9편
5편