반응형
 

Authorized View를 이용한 특정 데이터 공유

위에서 설명한 것처럼 BigQuery는 하나의 공간에 데이터를 모아 놓고 여러 부서나 사용자에게 필요한 Dataset을 공유해 줄 수 있다. 전통적인 DW에서 필요한 데이터를 ETL을 통해 옮겨 Mart를 구성해 주던 것과 유사하지만, 물리적으로 별도의 저장소(Mart를 위한)를 구성하거나 복제할 필요가 없기 때문에 훨씬 효율적이다. 여기에 더불어 BigQuery는 원하는 데이터만을 SQL 기반 View로 만들어 공유해 주는 기능이 있다.
그림으로 보면 다음과 같다. 원본 Dataset에 들어 있는 A, B, C 테이블의 내용을 join 해서 두 개의 View를 만들어 각각의 Dataset 1, 2에 저장했다. 특히 View를 생성하는 과정에 WHERE 문에서 특정 조건에 부합하는 레코드들만 조회되도록 하였다. 그리고 나서 두 개의 Dataset을 Marketing, Sales, Customer Support와 같은 각각의 부서에 조회 권한을 부여하였다. 그러면 각 부서에서는 조회된 권한이 부여된 데이터와 View에 대해서만 조회가 가능하다.
 
 
이러한 Authorized View를 세팅하는 과정은 다음과 같다. 먼저 다음과 같은 SQL 문을 통해 View를 만든다. 이 때, View를 만드는 SQL은 기존의 Legacy SQL이 아닌 Standard SQL을 사용해야 한다.
 
SELECT title, sum(num_characters) as size
FROM `bigquery-public-data.samples.wikipedia`
where title like '%seoul%' or title like '%Seoul%'
group by title
order by size desc
 
 
Standard SQL 옵션은 다음과 같이 지정한다.
 
RUN QUERY 버튼을 눌러 결과가 나오면 이제 Save Query 버튼을 눌러 View로 저장한다. 여기서 저장할 Dataset을 선택한다.
 
그러면 다음과 같이 View가 만들어진다.
 
해당 View에 대한 공유 설정은 다음과 같이 Share dataset에서 시작한다.
 
먼저 대상 그룹이나 사용자에 대해 Dataset에 대한 View 권한을 부여하고 나서, 다음과 같이 조회 가능한 Authorized View를 선택한다.
 
조회 가능한 View를 선택한다.
 
그리고 나서 Add 버튼을 눌러 추가하면 된다.
 
그러면 다른 사용자가 다음과 같은 쿼리를 통해 조회 가능하다.
 
SELECT * FROM `api-project-249965614499.workshop.testview_wikipedia_seoul` LIMIT 1000
 
 
 
Posted by Hey Jerry
,