View a markdown version of this page

Regra de análise personalizada em AWS Clean Rooms - AWS Clean Rooms

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Regra de análise personalizada em AWS Clean Rooms

Em AWS Clean Rooms, uma regra de análise personalizada é um novo tipo de regra de análise que permite que consultas personalizadas sejam executadas na tabela configurada. As consultas SQL personalizadas ainda estão restritas a ter apenas o comando SELECT, mas podem usar mais construções SQL do que consultas de agregação e lista (por exemplo, funções de janela, OUTER JOIN, CTEs ou subconsultas; consulte a Referência SQL do AWS Clean Rooms para obter uma lista completa). As consultas SQL personalizadas não precisam seguir uma estrutura de consulta, como consultas de agregação e lista.

A regra de análise personalizada é compatível com casos de uso mais avançados do que os permitidos pela regra de agregação e análise de listas, como análise de atribuição personalizada, avaliação comparativa, análise de incrementalidade e descoberta de público. Isso é um acréscimo a um superconjunto dos casos de uso suportados pela regra de agregação e análise de listas.

A regra de análise personalizada também é compatível com a privacidade diferencial. A privacidade diferencial é uma estrutura matematicamente rigorosa para proteção da privacidade de dados. Para obter mais informações, consulte AWS Clean Rooms Privacidade diferencial. Quando você cria um modelo de análise, a Privacidade AWS Clean Rooms Diferencial verifica o modelo para determinar se ele é compatível com a estrutura de consulta de uso geral da Privacidade Diferencial AWS Clean Rooms . Essa validação garante que você não crie um modelo de análise que não seja permitido com uma tabela protegida por privacidade diferencial.

Para configurar a regra de análise personalizada, os proprietários dos dados podem optar por permitir que consultas personalizadas específicas, armazenadas em modelos de análise, sejam executadas em suas tabelas configuradas. Os proprietários dos dados revisam os modelos de análise antes de adicioná-los ao controle de análise permitido na regra de análise personalizada. Os modelos de análise estão disponíveis e são visíveis somente na colaboração em que foram criados (mesmo que a tabela esteja associada a outras colaborações) e só podem ser executados pelo membro que pode consultar essa colaboração.

Como alternativa, os membros podem optar por permitir que outros membros (provedores de consultas) criem consultas sem revisão. Os membros adicionam as contas dos provedores de consulta que os provedores de consulta permitidos controlam na regra de análise personalizada. Se o provedor de consulta for o membro que pode consultar, ele poderá executar qualquer consulta diretamente na tabela configurada. Os provedores de consultas também podem criar consultas criando modelos de análise. Todas as consultas criadas pelos provedores de consulta podem ser executadas automaticamente na tabela em todas as colaborações nas quais a Conta da AWS esteja presente e a tabela esteja associada.

Essa página contém as seguintes seções:

A regra de análise personalizada oferece suporte aos seguintes controles de aprimoramento de privacidade:

Estrutura de regras de análise personalizada

A estrutura predefinida a seguir mostra os controles disponíveis em uma regra de análise personalizada. Inclua somente os controles necessários para seu caso de uso. O userIdentifier valor no differentialPrivacy controle é a coluna que identifica exclusivamente seus usuários, como user_id. Quando você tem duas ou mais tabelas com privacidade diferencial ativada em uma colaboração, AWS Clean Rooms exige que você configure a mesma coluna que a coluna do identificador do usuário em ambas as regras de análise. Isso mantém uma definição consistente dos usuários em todas as tabelas.

{ "allowedAnalyses": ["ANY_QUERY"] | string[], "allowedAnalysisProviders": [], "disallowedOutputColumns": [], "aggregationThresholds": [ { "identityColumns": [], "minimumIdentityCount": number, "type": "COUNT_DISTINCT", "allowedAggregateExpressionType": "COLUMNS_ONLY" | "ANY_EXPRESSION", "outputColumnThresholds": [ { "outputColumnName": string, "minimumIdentityCount": number } ] } ], "comparisonControls": { "allowedLiteralComparisonColumns": [], "allowedColumnComparisonColumns": [] }, "differentialPrivacy": { "columns": [ { "name": "userIdentifier" } ] } }

Você também pode:

  • Adicione ARNs do modelo de análise ao controle de análises permitido. Nesse caso, o controle allowedAnalysisProviders não está incluído.

    { allowedAnalyses: string[] }
  • Adicione Conta da AWS IDs de membros ao allowedAnalysisProviders controle. Nesse caso, você adiciona ANY_QUERY ao controle allowedAnalyses.

    { allowedAnalyses: ["ANY_QUERY"], allowedAnalysisProviders: string[] }

Você também pode configurar qualquer um dos seguintes controles:

  • As colunas que você não permite que sejam projetadas no resultado da consulta. Para obter mais informações, consulte Colunas de saída não permitidas.

    { disallowedOutputColumns: string[] }
  • Um limite mínimo de agregação que exige que cada linha de resultado represente pelo menos um número mínimo de titulares de dados distintos. Você pode substituir o limite de colunas de saída individuais por meio de e allowedAggregateExpressionType controlar se outputColumnThresholds as expressões são permitidas dentro de funções agregadas. Para obter mais informações, consulte Limites mínimos de agregação, Substituindo o limite mínimo de agregação para colunas de saída específicas e Permitindo expressões aninhadas em funções agregadas.

    { aggregationThresholds: [ { identityColumns: string[], minimumIdentityCount: number, type: "COUNT_DISTINCT", allowedAggregateExpressionType: "COLUMNS_ONLY" | "ANY_EXPRESSION", outputColumnThresholds: [ { outputColumnName: string, minimumIdentityCount: number } ] } ] }
  • Controles de comparação que definem quais colunas podem ser comparadas a um valor literal e quais podem ser comparadas a outra coluna. Para obter mais informações, consulte Controles de comparação.

    { comparisonControls: { allowedLiteralComparisonColumns: string[], allowedColumnComparisonColumns: string[] } }
  • Uma configuração de privacidade diferencial que protege a tabela identificando a coluna do identificador do usuário. Para obter mais informações, consulte Privacidade AWS Clean Rooms diferencial.

    { differentialPrivacy: { columns: [ { name: string } ] } }

Configurar limites mínimos de agregação junto com controles de comparação é a configuração recomendada. Um limite por si só ainda deixa as colunas de baixa cardinalidade ou quase identificação comparáveis, o que pode restringir os resultados de maneiras não intencionais.

Vale a pena configurar os controles de comparação quando sua tabela contém colunas de baixa cardinalidade ou quase identificação, como código postal ou faixa etária, ou quando o executor da consulta não é totalmente confiável. Para ver um exemplo prático que mostra os dois controles configurados juntos, consulteExemplo de regra de análise personalizada com limites mínimos de agregação e controles de comparação.

Exemplo de regra de análise personalizada com modelos de análise

O exemplo a seguir demonstra como duas empresas podem colaborar no AWS Clean Rooms uso da regra de análise personalizada.

A empresa A tem dados de clientes e vendas. A empresa A está interessada em entender a incrementalidade de vendas de uma campanha publicitária no site da empresa B. A empresa B tem dados de visualização e atributos de segmento que são úteis para a empresa (por exemplo, o dispositivo usado ao visualizar a publicidade).

A empresa A tem uma consulta de incrementalidade específica que deseja executar na colaboração.

Para criar uma colaboração e executar uma análise personalizada em colaboração, as empresas fazem o seguinte:

  1. A empresa A cria uma colaboração e cria uma associação. A colaboração tem a Empresa B como outro membro da colaboração. A empresa A permite o registro de consultas na colaboração e permite o registro de consultas em sua conta.

  2. A empresa B cria uma associação na colaboração. Ele permite o registro de consultas em sua conta.

  3. A empresa A cria uma tabela configurada de CRM

  4. A empresa A adiciona uma regra de análise personalizada vazia à tabela configurada de vendas.

  5. A empresa A associa a tabela configurada de vendas à colaboração.

  6. A empresa B cria uma tabela configurada de visualização.

  7. A empresa B adiciona uma regra de análise personalizada vazia à tabela configurada de visualização.

  8. A empresa B associa a tabela configurada de visualização à colaboração.

  9. A empresa A visualiza a tabela de vendas e a tabela de visualizações associadas à colaboração e cria um modelo de análise, adicionando a consulta de incrementalidade e o parâmetro para o mês da campanha.

    { "analysisParameters": [ { "defaultValue": "" "type": "DATE" "name": "campaign_month" } ], "description": "Monthly incrementality query using sales and viewership data" "format": "SQL" "name": "Incrementality analysis" "source": "WITH labeleddata AS ( SELECT hashedemail, deviceid, purchases, unitprice, purchasedate, CASE WHEN testvalue IN ('value1', 'value2', 'value3') THEN 0 ELSE 1 END AS testgroup FROM viewershipdata ) SELECT labeleddata.purchases, provider.impressions FROM labeleddata INNER JOIN salesdata ON labeleddata.hashedemail = provider.hashedemail WHERE MONTH(labeleddata.purchasedate) > :campaignmonth AND testgroup = :group " }
  10. A Empresa A inclui a conta (por exemplo, 444455556666) ao controle permitido do provedor de análise na regra de análise personalizada. Eles usam o controle permitido do provedor de análise porque desejam permitir que todas as consultas criadas sejam executadas na tabela configurada de vendas.

    { "allowedAnalyses": [ "ANY_QUERY" ], "allowedAnalysisProviders": [ "444455556666" ] }
  11. A empresa B vê o modelo de análise criado na colaboração e revisa seu conteúdo, incluindo a string de consulta e o parâmetro.

  12. A empresa B determina que o modelo de análise atinge o caso de uso de incrementalidade e atende aos requisitos de privacidade de como sua tabela configurada de audiência pode ser consultada.

  13. A empresa B adiciona o ARN do modelo de análise ao controle de análise permitido na regra de análise personalizada da tabela de visualizações. Eles usam o controle de análise permitido porque só querem permitir que a consulta de incrementalidade seja executada em sua tabela configurada de visualização.

    { "allowedAnalyses": [ "arn:aws:cleanrooms:us-east-1:111122223333:membership/41327cc4-bbf0-43f1-b70c-a160dddceb08/analysistemplate/1ff1bf9d-781c-418d-a6ac-2b80c09d6292" ] }
  14. A empresa A executa o modelo de análise e usa o valor do parâmetro 05-01-2023.

Exemplo de regra de análise personalizada com limites mínimos de agregação

O exemplo a seguir demonstra como duas empresas podem colaborar no AWS Clean Rooms uso da regra de análise personalizada com limites mínimos de agregação em vez de revisar modelos de análise individuais.

A empresa A é uma editora com uma impressions tabela contendo user_idcampaign_id, event_date e. A empresa B é uma anunciante que quer medir o alcance da campanha — o número de usuários distintos que viram uma determinada campanha. A empresa A quer garantir que nenhum resultado de consulta possa revelar indivíduos ou pequenos grupos, por isso usa limites mínimos de agregação em vez de revisar modelos de análise individuais.

Para criar uma colaboração e executar uma análise personalizada, as empresas fazem o seguinte:

  1. A empresa A cria uma colaboração com a empresa B como outro membro e como membro que pode consultar. A empresa A permite o registro de consultas na colaboração e em sua conta.

  2. A empresa B cria uma associação na colaboração e permite o registro de consultas em sua conta.

  3. A empresa A cria uma tabela impressions configurada.

  4. A empresa A adiciona uma regra de análise personalizada à tabela impressions configurada com um limite mínimo de agregação para que cada linha retornada represente pelo menos 100 usuários distintos. A empresa A define user_id como coluna de identidade e substitui o limite para 5 para a coluna de saída de baixa campaign_id sensibilidade. A empresa A também permite uma comparação literal de campaign_id e event_date para que a empresa B possa definir o escopo de uma consulta para uma campanha e um intervalo de datas. Cada coluna que aparece em uma comparação literal deve estar na lista de permissões. Por fim, a Empresa A adiciona a conta da Empresa B ao controle permitido dos provedores de análise para que a Empresa B possa executar consultas sem revisão por modelo.

    { "aggregationThresholds": [ { "identityColumns": [ "user_id" ], "minimumIdentityCount": 100, "type": "COUNT_DISTINCT", "allowedAggregateExpressionType": "COLUMNS_ONLY", "outputColumnThresholds": [ { "outputColumnName": "campaign_id", "minimumIdentityCount": 5 } ] } ], "comparisonControls": { "allowedLiteralComparisonColumns": [ "campaign_id", "event_date" ] }, "allowedAnalyses": [ "ANY_QUERY" ], "allowedAnalysisProviders": [ "444455556666" ] }
  5. A empresa A associa a tabela impressions configurada à colaboração.

  6. A empresa B executa uma consulta de alcance agrupada event_date e filtrada por uma campanha:

    SELECT event_date, COUNT(DISTINCT user_id) AS reach FROM impressions WHERE event_date >= '2026-01-01' AND campaign_id = 'Holiday Promotion' GROUP BY event_date;
  7. AWS Clean Rooms retorna somente as linhas apoiadas por pelo menos 100 usuários distintos e suprime o restante. Assim, a Empresa B aprende o alcance diário da campanha de promoção de fim de ano sem conhecer nenhum indivíduo ou grupo pequeno.

    event_date reach
    2026-01-01 142
    2026-01-02 118
    2026-01-04 103

    A data 2026-01-03 não aparece nos resultados porque menos de 100 usuários distintos viram a campanha naquele dia, então AWS Clean Rooms suprimiram essa linha.

A principal diferença da abordagem de modelos de análise é que a Empresa A nunca revisou uma consulta específica. Em vez disso, a empresa A depende do limite para restringir o que qualquer consulta pode retornar. Para obter mais informações, consulte Limites mínimos de agregação e Controles de comparação.

Exemplo de regra de análise personalizada com limites mínimos de agregação e controles de comparação

Configurar limites mínimos de agregação junto com controles de comparação é a configuração básica recomendada. Um limite por si só garante que cada linha de resultado represente um número mínimo de sujeitos de dados distintos, mas não impede comparações em colunas de baixa cardinalidade ou de quase identificação. Sem controles de comparação, um executor de consultas ainda pode filtrar ou unir essas colunas, potencialmente reduzindo os resultados de maneiras não intencionais.

Vale a pena configurar os controles de comparação quando sua tabela contém colunas de baixa cardinalidade ou quase identificação, como código postal ou faixa etária, ou quando o executor da consulta não é totalmente confiável. A adição de controles de comparação restringe quais colunas podem aparecer nas comparações literais e nas comparações de coluna a coluna, fechando a lacuna que um limite sozinho deixa aberta.

A configuração a seguir combina os dois controles:

{ "aggregationThresholds": [ { "identityColumns": [ "user_id" ], "minimumIdentityCount": 100, "type": "COUNT_DISTINCT", "allowedAggregateExpressionType": "COLUMNS_ONLY" } ], "comparisonControls": { "allowedLiteralComparisonColumns": [ "campaign_id" ], "allowedColumnComparisonColumns": [ "user_id" ] }, "allowedAnalyses": [ "ANY_QUERY" ], "allowedAnalysisProviders": [ "444455556666" ] }

Com essa configuração, cada linha de resultados representa pelo menos 100 sujeitos de dados distintos. O executor de consultas pode filtrar campaign_id usando comparações literais e unir usando comparações de coluna a coluna. user_id Como as listas de permissões de comparação estão definidas, qualquer coluna não listada — incluindo colunas de baixa cardinalidade, como código postal ou faixa etária — não pode ser usada em uma comparação.

Para obter mais informações sobre cada controle, consulte Limites mínimos de agregação Controles de comparação e. Para uma configuração mais completa que também inclui colunas de saída não permitidas, consulte. Juntando tudo isso

Juntando tudo isso

O exemplo a seguir mostra uma configuração completa do tipo de regra de análise personalizada, usando colunas de saída não permitidas, limites mínimos de agregação e controles de comparação. Essa configuração impõe a agregação mínima de 100 sujeitos de dados distintos, user_id evita que sejam projetados no resultado da consulta e permite que o executor da consulta analise a interseção de clientes que ingressam na coluna. user_id

Essa política também concede flexibilidade adicional ao permitir a filtragem de comparação literal em colunas de baixa sensibilidade status eprice, além de substituir o limite mínimo de agregação para 5 para a coluna: campaign_id

{ "disallowedOutputColumns": [ "user_id" ], "comparisonControls": { "allowedLiteralComparisonColumns": [ "status", "price" ], "allowedColumnComparisonColumns": [ "user_id" ] }, "aggregationThresholds": [ { "identityColumns": [ "user_id" ], "minimumIdentityCount": 100, "type": "COUNT_DISTINCT", "allowedAggregateExpressionType": "COLUMNS_ONLY", "outputColumnThresholds": [ { "outputColumnName": "campaign_id", "minimumIdentityCount": 5 } ] } ], "allowedAnalyses": [ "ANY_QUERY" ], "allowedAnalysisProviders": [ "444455556666", "333366669999" ] }