본문 바로가기

Architecture for Software/Google BigQuery

구글 빅쿼리(Google BigQuery)의 리소스 모델의 이해

Google Cloud Platform에서
BigQuery를 사용할 때 리소스의 계층

 

하나의 조직(Organization)은 여러 프로젝트(Project)를 가질 수 있으며, 프로젝트 안에는 여러 데이터세트(Dataset)를 가지고 있습니다. 데이터세트 안에는 테이블(Table)과 ML Model 등이 있으며, Job이 실행되어 데이터 조작(Data Manipulation)을 합니다.

 

빅쿼리와 RDBMS 데이터 구조 비교

일반적인 RDBMS와 빅쿼리를 비교하면 다음과 같습니다.

  BigQuery
(DW)
RDBMS
데이터 모델 열 기반 행 기반
데이터 저장 분산 파일 시스템 페이지 기반 저장
스키마 동적 스키마 정적 스키마
파티셔닝 지원 지원
클러스터링 자동 수동
쿼리 처리 병렬 처리 단일 노드 처리
데이터 압축 지원 지원

 

빅쿼리의 주요 용어와 RDBMS의 주요 용어를 비교하면 다음과 같습니다.

BigQuery
(DW)
RDBMS
프로젝트(Project) 데이터베이스(Database)
데이터세트(Dataset) 테이블스페이스(Tablespace)
테이블(Table) 테이블(Table)

 

 

빅쿼리 리소스별 권한 관리

빅쿼리의 리소스별 권한을 다음과 같이 관리할 수 있습니다.

 

중앙 데이터 레이크, 부서별 접근 가능한 데이터마트

  • 중앙 데이터 엔지니어링 팀에게 스토리지 프로젝트의 데이터 수집 및 편집 권한을 부여
  • 부서 분석가에게 Unified Storage 프로젝트의 특정 데이터셋에 대한 BigQuery Data Viewer 역할 부여
  • 부서 분석가에게는 부서의 컴퓨팅 프로젝트에 대한 BigQuery Data Editor 역할과 BigQuery Job User 역할도 부여
  • 각 컴퓨팅 프로젝트는 팀의 청구 계정에 연결

 

부서별 데이터 레이크, 공통 데이터웨어하우스 프로젝트

 

  • 특정 데이터 소스 수집을 담당하는 데이터 엔지니어는 부서의 스토리지 프로젝트에서 BQ Data Editor 및 BQ Job User 역할을 부여
  • 분석가는 프로젝트 수준에서 기본 데이터에 대한 BQ Data Viewer 역할을 부여받습니다. 예를 들어 HR 분석가는 전체 HR 스토리지 프로젝트에 대한 데이터 뷰어 액세스 권한을 부여
  • BigQuery를 외부 비즈니스 인텔리전스 도구에 연결하는 데 사용되는 서비스 계정은 시각화에 사용할 데이터 세트가 포함된 특정 프로젝트에 대한 데이터 뷰어 액세스 권한을 부여
  • 분석가 및 서비스 계정은 Central Data Warehouse 프로젝트에서 BQ Job User 및 BQ Data Editor 역할을 부여

 

부서별 데이터 레이크, 부서별 데이터마트

 

  • 부서 데이터 엔지니어는 부서의 데이터 레이크 프로젝트에 대해 BQ Data Editor 및 BQ Job User 역할을 부여
  • 부서 데이터 분석가에게 부서의 데이터 레이크 프로젝트에 대한 BQ Viewer 역할 부여
  • 부서 데이터 분석가에게 부서의 데이터 마트 프로젝트에 대한 BQ Data Editor 및 BQ Job User 역할 부여
  • 부서별 데이터 분석가에게 접근 가능한 데이터에 접근 가능 권한 설정