프라이버시 도메인에 대해
프라이버시 도메인에 대해
Snowflake의 차등 프라이버시에서 프라이버시 도메인(privacy domain)은 수학적 도메인과 비슷하게 컬럼의 가능한 값을 정의해요. 프라이버시 도메인은 최솟값과 최댓값이 있는 값의 범위 또는 열거된 값 목록이에요.
본문
프라이버시 도메인은 Snowflake가 프라이버시를 보존하기 위해 추가해야 하는 노이즈의 양을 계산하는 데 사용하는 한 요소예요. 때문에 대부분의 필드는 유한한 프라이버시 도메인을 가져야 해요. 그렇지 않으면 추가되는 노이즈의 양이 무한해야 하기 때문이에요. 기본적으로 프라이버시 도메인이 없는 필드는 무한 도메인을 가진 것으로 간주돼요.
어떤 컬럼에 프라이버시 도메인이 필요한가요?
COUNT 함수를 제외하고, 컬럼에 프라이버시 도메인이 없으면 쿼리가 컬럼을 집계할 수 없어요. 마찬가지로 컬럼에 프라이버시 도메인이 없으면 쿼리가 GROUP BY 절에서 컬럼을 사용할 수 없어요. 예를 들어 다음 쿼리에서 score는 프라이버시 도메인이 필요하지만 age는 그렇지 않아요.
SELECT COUNT(*), AVG(score) FROM t GROUP BY age;
프라이버시 도메인 정의하기
관리자와 쿼리를 실행하는 분석가 모두 컬럼에 대한 프라이버시 도메인을 정의할 수 있지만, 방식이 달라요.
- 관리자는
CREATE TABLE과ALTER TABLE명령으로 컬럼에 대한 프라이버시 도메인을 설정해요. 데이터 프로바이더의 관리자는 분석가에게 접근 권한을 주기 전에 프라이버시 도메인을 설정해요. 어떤 상황에서는 분석가의 관리자도 데이터 프로바이더와 조인되는 테이블에 프라이버시 도메인을 설정해야 할 수 있어요. - 분석가는 쿼리에서
WITH절 또는 특정 함수를 사용해 쿼리 시간에 프라이버시 도메인을 지정할 수 있어요.
프라이버시 도메인 간의 상호작용
관리자 지정과 분석가 지정 프라이버시 도메인의 상호작용:
분석가가 프라이버시 도메인을 지정하면 지정된 프라이버시 도메인이 사용돼요. 분석가는 데이터 프로바이더가 설정한 프라이버시 도메인을 좁혀 결과를 개선할 수 있어요. 프라이버시 도메인은 항상 교차(intersection)로 결합돼요.
프라이버시 도메인과 조인:
두 개의 프라이버시 보호 테이블을 조인하면 프라이버시 도메인이 어떻게 되는지에 대한 영향이 있어요. 조인 결과의 컬럼에 대한 프라이버시 도메인은 조인된 컬럼의 도메인에 따라 결정돼요.
프라이버시 도메인 밖의 값
프라이버시 도메인 밖의 값은 특정 방식으로 처리돼요. 범위의 상한을 초과하는 값과 하한 미만의 값은 각각 처리돼요. 열거된 도메인에 없는 값의 처리도 정의돼요.
중간 쿼리 요소가 프라이버시 도메인에 미치는 영향
조인, 서브쿼리, GROUP BY 같은 쿼리 요소가 프라이버시 도메인에 영향을 줄 수 있어요. 어떤 연산은 파생된 컬럼의 프라이버시 도메인을 유지하고, 어떤 연산은 잃게 해요.