노이즈 삽입

노이즈 삽입은 데이터베이스를 쿼리할 때 사용자의 개인 정보를 보호하는 기술로, 쿼리의 집계되는 SELECT 절에 임의의 노이즈를 추가합니다. 이 노이즈는 합리적인 수준에서 정확한 결과를 제공하면서 사용자의 개인 정보를 보호하므로 데이터 차이 검사를 실행할 필요가 없으며 출력을 위해 필요한 집계 기준점이 낮아집니다. 대부분의 기존 쿼리는 노이즈 모드에서 실행될 수 있으나 일부 제한사항이 있습니다.

노이즈 삽입 사용 시 이점 알아보기

데이터 차이 검사가 적용되지 않음: 노이즈 삽입을 사용해 쿼리를 실행하면 이전 결과 집합과 유사하기 때문에 Ads Data Hub에서는 행이 필터링되지 않습니다. 즉, 사용자 개인 정보를 보호하면서 데이터를 종합적으로 파악할 수 있습니다.

간단한 문제 해결: 집계 요구사항에 의해서만 행이 누락되므로 쿼리 관련 문제를 해결하고 쿼리를 조정하기 더 쉽습니다.

새 문법을 배울 필요가 없음: 데이터 차이 검사 대신 노이즈를 사용하기 위해 새로운 쿼리 문법을 배우거나 개인 정보 보호에 관한 개념에 능통하지 않아도 됩니다.

결과 정확성 개선: 완료된 작업에서 예상된 수준의 노이즈를 포함한 데이터의 총비율이 표시됩니다.

노이즈가 개인 정보 보호 요건에 미치는 영향 알아보기

데이터 차이 검사: 노이즈 삽입은 Ads Data Hub의 기존 데이터 차이 검사를 사용하지 않습니다. 노이즈 삽입을 사용하면 데이터 차이 검사가 중지됩니다.

집계 요구사항: 노이즈 삽입은 20명 이상의 순 사용자로 표시되는 노출수 데이터 및 10명 이상의 순 사용자로 표시되는 클릭수 또는 전환 데이터를 출력합니다.

정적 체크: 영향을 미치지 않습니다.

예산 및 쿼리 한도: 노이즈를 사용해 실행된 쿼리는 데이터 차이 검사에서 사용된 데이터 액세스 예산을 공유합니다. 데이터 차이 검사와 마찬가지로 동일한 데이터 세트에서 여러 번 동일한 쿼리를 실행하면 데이터 세트에서 자주 쿼리되는 날짜에 액세스하지 못할 수 있습니다. 이는 슬라이딩 윈도우 쿼리를 실행하거나 같은 요청을 여러 번 하는 경우에 발생할 수 있습니다.

노이즈 모드는 쿼리 내에서 혹은 쿼리 간에 동일한 집계 결과를 다시 계산할 때 더 엄격한 추가 한도를 적용합니다. 데이터 액세스 예산과 마찬가지로 데이터 세트에서 자주 쿼리되는 날짜에 액세스하지 못할 수 있습니다. 다만 동일한 집계 결과를 다시 계산하여 발생하는 제한사항은 노이즈 모드의 쿼리에만 적용되며 데이터 차이 검사 모드의 쿼리에는 영향을 주지 않습니다. 자세한 내용은 반복된 결과를 참고하세요.

개인 정보 보호 검사 자세히 알아보기

노이즈 삽입이 결과에 미치는 영향 알아보기

Ads Data Hub는 노이즈를 삽입하여 특정 사용자에 대한 정보를 다른 개인이 파악할 위험, 즉 공개 위험을 완화합니다. 개인 정보를 보호하는 동시에 유용성을 유지합니다.

Ads Data Hub의 노이즈 삽입 기술은 다음과 같이 쿼리 결과를 변환합니다.

  • 집계 결과에서 이상 사용자의 기여도를 고정합니다. 각 집계에서 모든 사용자의 기여도를 합산한 다음 최소 및 최대 고정 범위 내에서 각 기여도에 한도를 적용합니다.
  • 고정된 사용자당 기여도를 집계합니다.
  • 행별 집계 함수 호출의 결과인 집계 결과에 노이즈를 추가합니다. 임의로 추가되는 노이즈의 규모는 고정된 범위에 비례합니다.
  • 모든 행에서 노이즈가 추가된 사용자의 수를 계산한 다음 사용자가 너무 적은 행은 제거합니다. 이는 데이터 차이 검사 모드의 k-익명성 기능과 유사하지만 노이즈로 인해 동일한 데이터 세트에서 실행 중인 작업이 서로 다른 행을 삭제할 수 있다는 점에서 차이가 있습니다. 또한 노이즈 모드는 집계 요구사항이 낮으므로(50개 대비 약 20개) 더 적은 수의 행은 삭제합니다.

최종적으로 모든 행에 노이즈가 적용된 집계 결과가 포함되고 규모가 작은 그룹은 제거된 데이터 세트가 생성됩니다. 이는 반환된 결과에서 개인 사용자가 미치는 영향을 마스크합니다.

집계 고정에 관한 정보

Ads Data Hub의 노이즈 삽입은 이상 사용자의 기여도를 제한하기 위해 암시적/명시적인 집계 고정을 적용합니다. 사용 사례에 따라 이용할 고정 유형을 선택할 수 있습니다.

암시적 고정

암시적 고정에서는 범위가 자동으로 지정됩니다. 암시적 고정을 사용할 때는 특별한 SQL 문법이 필요하지 않습니다. 특정 행이 다른 행보다 더 넓은 범위의 값을 포함하는 경우, 암시적 고정을 사용하면 이러한 행에 서로 다른 범위가 적용됩니다. 이로 인해 일반적으로 모든 결과의 오차 범위가 감소하게 됩니다. 반면에 모든 집계에 다른 고정 범위와 노이즈 수준이 적용되므로 집계를 비교하기 어려울 수 있습니다.

드문 조건이 적용된 COUNTIF() 호출처럼 너무 적은 사용자로부터 데이터를 가져오는 집계에서는 암시적 고정이 실패할 수 있습니다. 이 경우 NULL 결과가 반환됩니다. 또한 COUNT(DISTINCT user_id)는 범위가 01인 명시적 고정을 자동으로 사용합니다.

명시적 고정

명시적 고정에서는 모든 사용자의 총기여도가 특정 범위로 고정됩니다. 명시적 범위는 모든 행에 동일하게 적용되며 리터럴 값이어야 합니다. 특정 행이 다른 행보다 더 넓은 범위의 사용자당 기여도를 포함해도, 모든 행에 동일한 범위가 적용됩니다. 이 경우 여러 행의 결과를 비교하기 쉬울 수 있지만, 암시적 고정을 사용할 때보다 특정 행에 더 많은 노이즈가 적용될 수 있습니다.

주어진 고정 범위 조합에서 명시적 고정은 암시적 고정에 비해 노이즈를 반만 사용합니다. 따라서 합당한 범위를 예상할 수 있다면 명시적으로 범위를 설정해 더 나은 결과를 얻을 수 있습니다.

명시적 고정을 사용하려면 지원되는 모든 집계 함수에 하한과 상한 범위를 지정하는 정수를 추가하여 범위를 설정하세요. 예시:

SELECT
campaign_name,
-- Set lower and upper bounds to 0 and 1, respectively
ADH.ANON_COUNT(*, contribution_bounds_per_group => (0,1))
FROM data
GROUP BY 1

노이즈 삽입을 사용하여 쿼리 실행

  1. 쿼리를 작성하거나 기존 쿼리를 엽니다. 사용할 수 있는 집계 함수는 지원되는 함수를 참고하세요.
  2. 쿼리 편집기에서 실행을 클릭한 다음 새 작업의 세부정보를 입력합니다.
  3. 개인 정보 보호 설정 전환 스위치를 클릭하여 노이즈 사용 위치로 전환합니다.
  4. 쿼리를 실행합니다.
  5. 추가된 노이즈를 검토합니다.
  6. 선택사항: 노이즈가 미치는 영향을 줄이려면 쿼리를 조정합니다.

노이즈 영향 검토

쿼리 실행이 완료되면 Ads Data Hub에서 결과에 포함된 셀 중 예상된 양의 노이즈가 포함된 셀 수를 기반으로 하는 결과의 신뢰도가 표시됩니다. 추가된 노이즈의 규모가 셀 내 결과의 5%를 초과하는 경우, 결과 테이블의 값이 가장 높은 수준의 영향을 받은 것으로 해석됩니다. 영향의 범위는 다음 표에서 확인할 수 있습니다.

영향을 받은 결과 데이터 세트의 경우 노이즈가 가장 많이 적용된 10개의 열이 세부정보 탭에 나열되며, 가장 높은 영향 수준에서 가장 낮은 영향 수준 순서로 정렬되고 노이즈에 대한 기여도와 함께 표시됩니다. 예상되는 수준의 노이즈를 분류하면 다음과 같습니다.

예상되는 수준의 노이즈가 포함된 데이터 표시 색상 영향
> 95% 초록색 낮은 수준의 영향
85%~95% 노란색 중간 수준의 영향
75%~85% 주황색 높은 수준의 영향
< 75% 빨간색 매우 높은 수준의 영향

노이즈의 영향에 대한 자세한 정보를 확인하는 방법은 다음과 같습니다.

  1. 보고서를 클릭합니다.
  2. 목록에서 보고서를 선택합니다. 개인 정보 보호 요약 팁 결과의 5%를 초과하는 노이즈 수준과 대응되는 예상된 수준의 노이즈가 포함된 결과의 비율이 표시됩니다.
  3. 자세한 정보를 확인하려면 작업 > 세부정보를 클릭합니다.
  4. 작업 세부정보에서 개인 정보 보호 메시지를 확인합니다. 결과는 나열된 카테고리 중 하나에 포함됩니다.
  5. 필요한 경우 쿼리를 조정하여 결과를 개선합니다.

쿼리 조정

결과에 포함되는 사용자의 수가 너무 적은 경우 집계 결과에 예상치 못한 수준의 노이즈가 포함될 가능성이 큽니다. 이 상황은 행에 포함된 사용자의 수가 적거나 일부 사용자가 결과에 영향을 미치지 않을 때(예: COUNTIF 함수를 사용하는 경우) 발생할 수 있습니다. 노이즈 세부정보에 따라 예상된 수준의 노이즈가 포함된 데이터의 비율을 늘리도록 쿼리를 조정할 수 있습니다.

다음은 일반적인 가이드라인입니다.

  • 기간을 확장합니다.
  • 쿼리를 다시 작성하여 데이터의 세분화 정도를 줄입니다. 예로 그룹화에 사용되는 매개변수를 줄이거나 COUNTIFCOUNT로 대체합니다.
  • 노이즈가 많은 열을 제거합니다.
  • 명시적 고정을 사용합니다.

지원되는 집계 함수

다음 집계 함수는 노이즈를 지원합니다.

  • SUM(...)
  • COUNT(*)
  • COUNT(...)
  • COUNTIF(...)
  • COUNT(DISTINCT user_id)
  • APPROX_COUNT_DISTINCT(user_id)
  • AVG(...)

DISTINCT 키워드는 COUNT 함수에서만 지원되며, Ads Data Hub 테이블의 user_id 열을 직접 참조하거나 user_id 또는 NULL을 반환하는 표현식(예: COUNT(DISTINCT IF(..., user_id, NULL)))과 같이 사용해야 합니다.

다음 함수는 직접적으로 지원되지 않지만 통계 결과를 얻기 위해 노이즈를 포함하는 다른 집계로 대체될 수 있습니다. 숫자 값은 예시입니다.

  • LOGICAL_OR(...). 권장되는 대체 값: COUNT(DISTINCT IF(..., user_id, NULL)) > 0
  • LOGICAL_AND(...). 권장되는 대체 값: COUNT(DISTINCT IF(NOT ..., user_id, NULL)) <= 0

정수 결과에 관한 정보

Ads Data Hub에서는 이러한 집계 함수에 노이즈가 자동으로 삽입되지만 함수 서명은 변경되지 않습니다. INT64COUNT 또는 SUM과 같은 함수는 INT64를 반환하므로 노이즈가 적용된 결과의 모든 소수점 뒷부분은 반올림됩니다. 결과의 규모와 노이즈를 감안했을 때 이는 일반적으로 무시할 수 있습니다.

결과에 소수점 뒷부분까지 포함하는 세분화 정도가 필요하다면 INT64를 반환하는 함수를 작성하지 마세요(예: SUM에서 입력을 FLOAT64로 지정).


지원되는 쿼리 패턴

중요: Ads Data Hub의 표준 권장사항 대부분은 노이즈 삽입을 사용하는 쿼리에도 적용됩니다. 특히 같은 데이터에 대한 반복적인 쿼리에 관한 가이드를 참고하는 것이 좋습니다.

이 섹션에서는 노이즈 삽입을 사용한 쿼리를 실행할 때 지원되는 쿼리 패턴을 설명합니다.

사용자 수준 집계

제한이 없는 사용자 수준 집계는 데이터 차이 검사 모드에서와 같은 방식으로 지원됩니다. 노이즈는 여러 사용자에 관한 데이터를 결합하는 집계에서만 삽입됩니다. 명시적으로 user_id로 그룹화하는 집계나 user_id로 파티셔닝하는 분석 함수에는 노이즈가 적용되지 않으며 모든 함수가 허용됩니다. 명시적으로 user_id로 그룹화하지 않는 사용자 수준의 집계(예: GROUP BY impression_id)는 교차 사용자 집계로 간주되므로 노이즈가 추가됩니다.

external_cookie별로 그룹화하는 것으로는 충분하지 않습니다. external_cookie를 사용하여 *_match 테이블을 고객 소유 테이블과 조인할 수 있지만 단일 사용자 집계에서는 명시적으로 external_cookie 열뿐 아니라 user_id 열을 기준으로 그룹화해야 합니다.

집계 함수의 예시:

WITH user_paths AS (
  # Grouping by user_id, no noise needed, all functions allowed
  SELECT user_id, STRING_AGG(campaign_id, ">" ORDER BY query_id.time_usec) AS path
  FROM adh.google_ads_impressions
  GROUP BY 1
)
# Noise applied here to num_users
SELECT path, COUNT(*) AS num_users
FROM user_paths
GROUP BY 1;

분석 함수의 예시:

WITH events AS (
  # Partitioning by user_id, no noise needed, all functions allowed
  SELECT
    campaign_id,
    ROW_NUMBER() OVER(PARTITION BY user_id ORDER BY query_id.time_usec) AS index
  FROM adh.google_ads_impressions
)
# Noise applied here to first_impressions
SELECT campaign_id, COUNT(*) AS first_impressions
FROM events
WHERE index = 1
GROUP BY 1;

병렬 집계

각 교차 사용자 집계에는 노이즈가 독립적으로 적용됩니다. 단일 구문을 사용하면 이러한 집계를 여러 개 실행할 수 있으며, JOIN 또는 UNION을 통해 하나의 테이블로 결과를 결합할 수 있습니다.

예시:

WITH result_1 AS (
  # Noise applied here to num_impressions
  SELECT campaign_id, COUNT(*) AS num_impressions
  FROM adh.google_ads_impressions
  GROUP BY 1
), result_2 AS (
  # Noise applied here to num_clicks
  SELECT campaign_id, COUNT(*) AS num_clicks
  FROM adh.google_ads_clicks
  GROUP BY 1
)
SELECT * FROM result_1 JOIN result_2 USING(campaign_id)

이 방식은 데이터 차이 검사 모드에서도 지원되지만 사용하지 않는 것이 좋습니다. 모든 병렬 집계에서는 노이즈 및 필터링이 독립적으로 적용되므로 이 관행은 노이즈에 영향을 주지 않습니다.

집계되지 않은 데이터와 조인된 집계 데이터

Ads Data Hub에서는 user_id로 파티셔닝하는 분석 윈도우만 지원되므로, 일반적인 해결 방법으로 이러한 결과를 별도로 집계한 다음, 다시 집계하기 전에 자체 조인할 수 있습니다. 이러한 쿼리는 노이즈 모드에서 지원되며, 개인 정보 보호 요건이 미리 충족되었으므로 데이터 차이 검사 모드에서보다 더 효과적으로 작동합니다.

예시:

WITH campaign_totals AS (
  # Noise applied here to campaign_imps
  SELECT campaign_id, COUNT(*) AS campaign_imps
  FROM adh.google_ads_impressions
  GROUP BY 1
)
# Noise applied here to imps
SELECT campaign_id, demographics, campaign_imps, COUNT(*) AS imps
FROM adh.google_ads_impressions JOIN campaign_totals USING(campaign_id)
GROUP BY 1,2,3

노이즈 모드에서는 AVG(campaign_imps) 등의 집계 결과를 재집계할 수 없습니다.


지원되지 않는 쿼리 패턴

이 섹션에서는 노이즈 삽입을 사용하는 쿼리를 실행할 때 지원되지 않는 쿼리 패턴을 설명합니다.

현재 날짜의 데이터를 포함하는 쿼리

노이즈 모드 쿼리는 현재 날짜의 데이터 쿼리를 지원하지 않습니다. 이는 데이터 차이 검사 모드에서도 사용하지 않는 것이 좋습니다. 노이즈 삽입을 사용하는 쿼리에서는 현재 날짜를 선택할 수 없습니다.

반복된 결과

Ads Data Hub에서 노이즈 모드를 사용하면 같은 집계를 반복할 수 있는 한도가 적용됩니다. 해당 한도에 도달하면 노이즈 모드 쿼리는 데이터 세트에서 자주 쿼리되는 날짜에 액세스할 수 없게 됩니다. 다음은 이러한 상황이 발생할 수 있는 예시입니다.

쿼리 반복은 같은 쿼리가 중복되는 기간 등 동일한 매개변수 또는 매우 유사한 매개변수를 사용하여 여러 번 실행될 때 발생합니다. BigQuery 프로젝트에서 이미 내보낸 데이터를 사용하면 이 상황을 방지할 수 있습니다.

2개의 작업이 동일한 사용자에 대해 같은 계산을 실행하는 경우, 중복되는 기간을 쿼리하면 반복이 발생할 수 있습니다. 예를 들어 중복되는 기간을 기준으로 실행되는 다음 쿼리는 날짜별로 파티셔닝하므로 반복이 생성됩니다.

SELECT DATE(TIMESTAMP_MICROS(event.event_time)) AS date,
COUNT(*) AS cnt
FROM adh.cm_dt_clicks
GROUP BY 1

이런 경우는 분리된 날짜 세그먼트에서 쿼리를 실행해야 합니다.

반복이 발생할 수 있는 다른 예로는 데이터가 어느 정도 날짜와 관련이 없을 때입니다. 두 작업이 캠페인의 전체 기간과 관련이 있는 경우, 다음 쿼리는 중복되는 날짜에서 실행될 때 반복을 생성합니다.

SELECT campaign_id, COUNT(*) AS cnt
FROM adh.google_ads_impressions
GROUP BY 1

이 경우 결과가 달라지지 않으므로 쿼리를 한 번만 실행해야 합니다.

집계 반복은 특정 집계가 쿼리 내에서 여러 번 반복되었을 때 발생합니다.

SELECT COUNT(*) AS cnt1, COUNT(*) AS cnt2
FROM table

이 경우 반복 중 하나를 삭제해야 합니다.

집계가 문법적으로는 다르지만 동일한 값을 계산하는 경우에도 반복으로 간주됩니다. 즉, condition1condition2의 값이 모든 사용자에 대해 key로 동일하면 다음 쿼리는 반복을 생성하게 됩니다.

SELECT key, COUNTIF(condition1) AS cnt1, COUNTIF(condition2) AS cnt2
FROM table
GROUP BY key

일부 사용자 그룹에 대해 매우 유사한 조건이 있다면 COUNT가 하나만 포함되도록 쿼리를 다시 작성하는 것이 좋습니다.

행 중복은 Ads Data Hub 테이블의 각 행이 BigQuery 테이블의 여러 행과 일치하는 방식으로 Ads Data Hub 테이블과 BigQuery 테이블이 조인되었을 때 발생합니다. 예를 들어 다음 쿼리는 bq_table에서 동일한 캠페인 ID를 갖는 행이 여러 개가 있을 때 반복을 생성합니다.

SELECT r.campaign_id, COUNT(*) AS cnt
FROM adh_table
INNER JOIN bq_table ON l.campaign_id = r.campaign_id

이 경우 조인 키 값(이 예에서는 campaign_id)마다 bq_table에 행 1개만 포함되도록 쿼리를 재구성해야 합니다.

사용자 대부분의 값 배열이 동일하다면 Ads Data Hub 테이블에서 배열을 중첩 해제하여 동일한 효과를 얻을 수 있습니다.

SELECT in_market_id, COUNT(*)
FROM adh.dv360_youtube_impressions,
UNNEST(in_market) AS in_market_id
GROUP BY 1

다른 쿼리 권장사항 알아보기

직접 재집계

노이즈는 쿼리에서 교차 사용자 집계의 첫 레이어에 적용됩니다. 여러 레이어의 집계를 포함하는 쿼리는 차단됩니다.

WITH layer_1 AS (
  # Noise applied here to partial_result
  SELECT campaign_id, demographics, location, COUNT(*) AS partial_result
  FROM adh.google_ads_impressions
  GROUP BY 1,2,3
  HAVING partial_result > 5
)
# Reaggregation of partial_result with no user-level data, will be rejected
SELECT campaign_id, SUM(partial_result) AS final_result
FROM layer_1
GROUP BY 1

노이즈로 최상의 결과를 얻으려면 모든 교차 사용자 작업을 단일 집계 내에서 계산하세요. 예를 들어 중간 개수의 SUM 대신 이벤트의 SUM을 사용합니다. 노이즈가 있는 집계를 재집계하기 위해 쿼리를 다시 작성할 수 있지만, 최종 집계에 더 많은 노이즈가 포함될 수 있습니다.

불가피한 경우라면 쿼리를 다시 작성하여 첫 레이어에서 직접적으로 결과를 내보내는 방법도 있습니다. 단일 작업에서 스크립트 결과를 변경하지 않고 쿼리를 다시 작성하려면 OPTIONS(privacy_checked_export=true) 문법으로 임시 테이블 또는 BigQuery 프로젝트로 내보낸 테이블을 생성하세요. 예시:

CREATE TEMP TABLE layer_1 OPTIONS(privacy_checked_export=true) AS (
  # Noise applied here to partial_result
  SELECT campaign_id, demographics, location, COUNT(*) AS partial_result
  FROM adh.google_ads_impressions
  GROUP BY 1,2,3
  HAVING partial_result > 5
);
# Reaggregation of privacy checked data, no noise needed
SELECT campaign_id, SUM(partial_result) AS final_result
FROM layer_1
GROUP BY 1

임시 테이블 자세히 알아보기

집계의 첫 레이어가 개인 정보 보호 검사에 사용하기에 너무 세부적이라면 사용자 수준 집계를 사용하여 쿼리를 다시 작성할 수 있습니다. 이를 실행할 수 없다면 이 쿼리는 노이즈 모드에서 지원되지 않습니다.

조인되지 않은 사용자 ID

노이즈를 포함한 집계를 실행하는 경우를 제외하면 노이즈 모드의 쿼리는 별도 사용자들의 데이터를 하나의 행으로 결합할 수 없습니다. 이에 따라 집계되지 않은 Ads Data Hub 데이터의 조인은 명시적으로 user_id 열에서 조인되어야 합니다.

이 쿼리는 user_id 열에서 명시적으로 조인하지 않으므로 유효성 오류가 발생합니다.

SELECT …
FROM adh.google_ads_impressions
JOIN adh.google_ads_clicks USING(impression_id)

이 문제는 USING 절이 명시적으로 user_id를 포함하도록 조정하여 해결할 수 있습니다(예: USING(impression_id, user_id)).

이 제한은 Ads Data Hub 테이블 간 조인에만 적용되며(측정기준 테이블 제외) 고객 소유 테이블에는 적용되지 않습니다. 예를 들어 다음은 허용됩니다.

SELECT …
FROM adh.google_ads_impressions
JOIN bigquery_project.dataset.table USING(any_column)

Ads Data Hub-BigQuery 결합

노이즈를 통한 집계를 사용하려면 사용자 식별자의 성능이 좋아야 합니다. BigQuery의 고객 소유 데이터에는 사용자 식별자가 없으므로 Ads Data Hub 테이블에 조인하지 않는 한 노이즈 집계로 결합될 수 없습니다.

이 쿼리로 인해 유효성 오류가 발생합니다.

SELECT COUNT(*) FROM (
  SELECT 1 FROM adh.google_ads_impressions
  UNION ALL
  SELECT 1 FROM bigquery_project.dataset.table
)

이 문제를 해결하려면 Ads Data Hub 데이터를 보강하기 위해 BigQuery 테이블을 결합하는 대신 조인하거나, 각 소스를 별도로 집계하도록 데이터를 분리해야 합니다.

사용자 데이터를 포함하는 여러 Ads Data Hub 테이블이나 여러 고객 소유 BigQuery 테이블을 결합할 수 있으나, 두 종류의 테이블을 서로 결합할 수 없다는 점에 유의하세요.

Ads Data Hub-BigQuery 오른쪽 조인

고객 소유 데이터와 외부 조인 시 사용자 식별자가 누락된 행이 발생할 수 있으며, 이로 인해 노이즈 성능이 저하될 수 있습니다.

이러한 쿼리는 모두 Ads Data Hub 측에서 사용자 식별자가 누락된 일치하지 않는 행을 허용하므로 유효성 오류가 발생합니다.

SELECT …
FROM adh.google_ads_impressions
RIGHT JOIN bigquery_project.dataset.table USING(column)
SELECT …
FROM bigquery_project.dataset.table
LEFT JOIN adh.google_ads_impressions USING(column)

테이블의 순서가 뒤바뀌었을 경우, 두 조인 모두 가능합니다.

필터링된 행 요약

노이즈 모드에서는 필터링된 행 요약 사양이 지원되지 않습니다. 노이즈를 사용하는 경우 낮은 필터링 비율과 데이터 차이 검사로 인한 필터링 누락에 의해 이 기능은 일반적으로 필요하지 않습니다.

노이즈 결과에서 상당한 데이터 필터링이 관찰된다면 집계된 데이터를 늘리세요. 예를 들어 총계의 예상치를 비교하기 위해 전체 데이터 세트에 대해 병렬 집계를 실행할 수 있습니다.

SELECT campaign_name, COUNT(*)
FROM data
GROUP BY 1
UNION ALL
SELECT 'Total', COUNT(*)
FROM data
GROUP BY 1

총계에는 노이즈가 독립적으로 적용되며 총계 값의 합이 정확하지 않을 수 있지만, 노이즈가 적용된 행의 합보다 총계가 정확한 경우가 더 많습니다.

교차 모드 생성된 테이블

Ads Data Hub에서 내보내지 않은 테이블은 테이블을 생성할 당시 사용된 개인 정보 보호 모드를 통해서만 사용할 수 있습니다. 테이블을 일반 집계 모드에서 생성한 다음 노이즈 모드에서 사용하거나, 노이즈 모드에서 생성한 다음 일반 집계 모드에서 사용할 수 없습니다(테이블을 BigQuery로 내보내지 않은 경우).