2016-06-29 2 views
0

Google BigQuery를 사용하여 동일한 알고리즘으로 여러 클라이언트의 데이터를 분석하고 있습니다. 모든 프로젝트에는 동일한 위치가 있습니다. 이러한 알고리즘은 뷰입니다.BigQuery 프로젝트 간보기 공유

하나의 프로젝트에서만 이러한보기를 가질 수 있으며 다른 프로젝트 데이터에서 실행할 수 있습니까?

감사합니다.

답변

1

예. 뷰는 하나의 프로젝트에 있지만 데이터/테이블은 다른 프로젝트에있을 수 있습니다. "공인보기"옵션을 사용하여이보기에 각각의 데이터 집합을 공유하면서

, BTW이 "모델"을 사용하여 당신은 그들에게 액세스 권한을 부여하여 실제 데이터에 대한 액세스 권한을 가지고에서 "별도의"사용자는보기 만 할 수

나는 모든 프로젝트에 대한 뷰를 작성하고 싶지만, 오늘로 말하면, 어떤 변화

일반적없이 다른 프로젝트에보기를 실행하지 않는,이 수 없습니다!
Views가 매개 변수/매개 변수 또는 이와 유사한 것을 전달할 때까지

그래도 아래의 경우에는 하나의 옵션이 표시됩니다. 정확히 같은 논리 및 데이터 스키마 만 어떤 다른 클라이언트에 대한 다른있는 경우

프로젝트 - 당신은

SELECT * FROM 
    (SELECT * FROM [projectA:dataset.table] WHERE CURRENT_USER() IN ('[email protected]', '[email protected]')), 
    (SELECT * FROM [projectB:dataset.table] WHERE CURRENT_USER() IN ('[email protected]', '[email protected]')), 
    (SELECT * FROM [projectC:dataset.table] WHERE CURRENT_USER() IN ('[email protected]', '[email protected]')) 

그래서, 어떤 사용자에 따라 달라집니다 (탐구 단지 아이디어) 다음과 같은 것을 사용한다 보기를 실행 중입니다. 각각의 데이터가 제공됩니다. 이 경우 물론
- clientA 예 위

그렇게

SELECT * FROM 
    (SELECT *, 'ClientA' AS client FROM [projectA:dataset.table]), 
    (SELECT *, 'ClientB' AS client FROM [projectB:dataset.table]), 
    (SELECT *, 'ClientC' AS client FROM [projectC:dataset.table]) 

아래로 수정 될 수 ClientB 또는 ClientC 데이터에는 어떤 액세스 할 수 없습니다 때문에 데이터 공유를위한 옵션으로 공인보기를 사용은 필수입니다 뷰는

SELECT * FRIN YourView WHERE client = 'ClientB' 

중요

이하로 사용될 수있다

위의 추상/이론적 옵션을 사용하면 참여한 모든 프로젝트에 대해 쿼리를 실행할 때마다 비용이 청구됩니다. 특정 프로젝트/클라이언트와 관련된 결과 만 얻을 수는 있습니다.
나는이 일이 일어나기를 원하지 않는다.

+0

Thanks Mikhail. 그것은 "프로젝트 이름 사용"과 같은 방식입니까? 모든 프로젝트에 대한보기를 만들지 않고 변경없이 다른 프로젝트에서보기를 실행하고 싶습니다. – norgematos