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 de agregação
Em AWS Clean Rooms, uma regra de análise de agregação gera estatísticas agregadas usando as funções COUNT, SUM e/ou AVG junto com dimensões opcionais. Quando a regra de análise de agregação é adicionada a uma tabela configurada, ela permite que o membro que pode consultar execute consultas na tabela configurada.
A regra de análise de agregação oferece suporte a casos de uso como planejamento de campanhas, alcance de mídia, medição de frequência e atribuição.
A estrutura e a sintaxe de consulta suportadas são definidas em Estrutura e sintaxe da consulta de agregação.
Os parâmetros da regra de análise, definidos em Regra de análise de agregação - controles de consulta, incluem controles de consulta e controles de resultados de consulta. Seus controles de consulta incluem a capacidade de exigir que uma tabela configurada seja unida a pelo menos uma tabela configurada de propriedade do membro que pode consultar, direta ou transitivamente. Esse requisito permite garantir que a consulta seja executada na interseção (INNER JOIN) da sua tabela com a deles.
Estrutura e sintaxe da consulta de agregação
As consultas em tabelas que têm uma regra de análise de agregação devem seguir a sintaxe a seguir.
--
select_aggregate_function_expression
SELECT aggregation_function(column_name) [[AS] column_alias ] [, ...] --select_grouping_column_expression
[, {column_name|scalar_function(arguments)} [[AS] column_alias ]][, ...] --table_expression
FROM table_name [[AS] table_alias ] [[INNER] JOIN table_name [[AS] table_alias] ON join_condition] [...] --where_expression
[WHERE where_condition] --group_by_expression
[GROUP BY {column_name|scalar_function(arguments)}, ...]] --having_expression
[HAVING having_condition] --order_by_expression
[ORDER BY {column_name|scalar_function(arguments)} [{ASC|DESC}]] [,...]]
A tabela a seguir explica cada expressão listada na sintaxe anterior.
Expressão | Definição | Exemplos |
---|---|---|
|
Uma lista separada por vírgulas contendo as seguintes expressões:
notaDeve haver pelo menos um |
|
|
Uma ou mais funções de agregação suportadas aplicadas a uma ou mais colunas. Somente colunas são permitidas como argumentos das funções de agregação. notaDeve haver pelo menos um |
|
|
Uma expressão que pode conter qualquer expressão usando o seguinte:
nota
|
|
|
Uma tabela, ou junção de tabelas, conectando expressões condicionais de junção com
O
|
|
|
Uma expressão condicional que retorna um booliano. Pode ser composto do seguinte:
As condições de comparação suportadas são ( Os operadores lógicos suportados são (
|
|
|
Uma lista separada por vírgulas de expressões que atendem aos requisitos do |
|
|
Uma expressão condicional que retorna um booleano. Eles têm uma função de agregação compatível aplicada a uma única coluna (por exemplo, As condições suportadas são ( Os operadores lógicos suportados são (
|
|
|
Uma lista de expressões separadas por vírgulas que é compatível com os mesmos requisitos
nota
|
|
Para a estrutura e a sintaxe da consulta de agregação, lembre-se de que:
-
Comandos SQL diferentes SELECT dos não são suportados.
-
Não há suporte para subconsultas e expressões de tabela comuns (por exemplo, WITH).
-
Operadores que combinam várias consultas (por exemplo, UNION) não são compatíveis.
-
Os parâmetros TOP, LIMIT e OFFSET não têm suporte.
Regra de análise de agregação - controles de consulta
Com os controles de consulta de agregação, você pode controlar como as colunas em sua tabela são usadas para consultar a tabela. Por exemplo, você pode controlar qual coluna é usada para unir, qual coluna pode ser contada ou qual coluna pode ser usada em declarações WHERE.
As seções a seguir explicam cada controle.
Controles de agregação
Ao usar controles de agregação, você pode definir quais funções de agregação permitir e em quais colunas elas devem ser aplicadas. As funções de agregação podem ser usadas nas expressões SELECT, HAVING, ORDER e BY.
Controle | Definição | Uso |
---|---|---|
aggregateColumns |
Colunas de colunas de tabela configuradas que você permite usar nas funções de agregação. |
Alguns Considerando que |
function |
As funções COUNT, SUM e AVG que você permite usar em cima do aggregateColumns . |
|
Controles de junção
Uma cláusula JOIN
é usada para combinar linhas de duas ou mais tabelas, com base em uma coluna relacionada entre elas.
Você pode usar os controles de união para controlar como sua tabela pode ser unida a outras tabelas no table_expression
. AWS Clean Rooms só suporta INNER JOIN. As instruções INNER JOIN só podem usar colunas que tenham sido explicitamente categorizadas como joinColumn
em sua regra de análise, sujeitas aos controles que você define.
INNER JOIN devem operar em uma joinColumn
da sua tabela configurada e em outra joinColumn
tabela configurada na colaboração. Você decide quais colunas da sua tabela podem ser usadas como joinColumn
.
Cada condição de correspondência dentro da cláusula ON deve usar a condição de comparação de igualdade (=
) entre duas colunas.
Várias condições de correspondência dentro de qualquer ON cláusula podem ser:
-
Combinado usando o operador lógico
AND
-
Separado usando o operador lógico
OR
nota
Todas as condições de correspondência JOIN devem corresponder a uma linha de cada lado do JOIN. Todas as condicionais conectadas por um OR
ou um operador lógico AND
ou devem atender a este requisito também.
Veja a seguir um exemplo de uma consulta com um operador lógico AND
.
SELECT some_col, other_col FROM table1 JOIN table2 ON table1.id = table2.id AND table1.name = table2.name
Veja a seguir um exemplo de uma consulta com um operador lógico OR
.
SELECT some_col, other_col FROM table1 JOIN table2 ON table1.id = table2.id OR table1.name = table2.name
Controle | Definição | Uso |
---|---|---|
joinColumns |
As colunas (se houver) que você deseja permitir que o membro que pode consultar use na instrução INNER JOIN. |
Um A mesma coluna não pode ser usada como A menos que também tenha sido categorizado como um |
joinRequired |
Controle se você precisa de um INNER JOIN com uma tabela configurada do membro que pode consultar. |
Se você ativar esse parâmetro, será necessário um INNER JOIN. Se você não habilitar esse parâmetro, an INNER JOIN é opcional. Supondo que você habilite esse parâmetro, o membro que pode consultar deverá incluir uma tabela de sua propriedade no INNER JOIN. Eles devem unir JOIN sua mesa à deles, direta ou transitivamente (ou seja, unir sua mesa a outra mesa, que por sua vez está unida à sua mesa). |
A seguir está um exemplo de transitividade.
ON my_table.identifer = third_party_table.identifier .... ON third_party_table.identifier = member_who_can_query_table.id
nota
O membro que pode consultar também pode usar o parâmetro joinRequired
. Nesse caso, a consulta deve unir sua tabela a pelo menos uma outra tabela.
Controles de dimensão
Os controles de dimensão controlam a coluna na qual as colunas de agregação podem ser filtradas, agrupadas ou agregadas.
Controle | Definição | Uso |
---|---|---|
dimensionColumns |
As colunas (se houver) que você permite que o membro que pode consultar use em SELECT, WHERE, GROUP BY e ORDER BY. |
A A mesma coluna não pode ser ao mesmo tempo um |
Funções escalares
As funções escalares controlam quais funções escalares podem ser usadas em colunas de dimensão.
Controle | Definição | Uso |
---|---|---|
scalarFunctions |
As funções escalares que podem ser usadas em |
Especifica as funções escalares (se houver) nas quais você permite (por exemplo, CAST) que sejam aplicadas a As funções escalares não podem ser usadas em cima de outras funções ou dentro de outras funções. Os argumentos das funções escalares podem ser colunas, literais de string ou literais numéricos. |
As seguintes funções escalares são suportadas:
-
Funções matemáticas — ABS, CEILING, FLOOR, LOG, LN, ROUND, SQRT
-
Funções de formatação de tipo de dados – CAST, CONVERT, TO_CHAR, TO_DATE, TO_NUMBER, TO_TIMESTAMP
-
Funções de string — LOWER, UPPER, TRIM, RTRIM, SUBSTRING
-
Para RTRIM, conjuntos de caracteres personalizados para cortar não são permitidos.
-
-
Expressões condicionais – COALESCE
-
Funções de data — EXTRACT, GETDATE, CURRENT_DATE, DATEADD
-
Outras funções – TRUNC
Para obter mais detalhes, consulte a SQL Reference AWS Clean Rooms.
Regra de análise de agregação - controles de resultados da consulta
Com os controles de resultados da consulta de agregação, você pode controlar quais resultados são retornados especificando uma ou mais condições que cada linha de saída deve atender para que seja retornada. AWS Clean Rooms suporta restrições de agregação na forma de COUNT (DISTINCT column) >=
X
. Esse formulário exige que cada linha agregue pelo menos X valores distintos de uma escolha da tabela configurada (por exemplo, um número mínimo de user_id
valores distintos). Esse limite mínimo é aplicado automaticamente, mesmo que a consulta enviada em si não use a coluna especificada. Elas são aplicadas coletivamente em cada tabela configurada na consulta a partir das tabelas configuradas de cada membro na colaboração.
Cada tabela configurada deve ter pelo menos uma restrição de agregação em sua regra de análise. Os proprietários de tabelas configuradas podem adicionar várias columnName
e associadas minimum
e elas são aplicadas coletivamente.
Restrições de agregação
As restrições de agregação controlam quais linhas nos resultados da consulta são retornadas. Para ser retornada, uma linha deve atender ao número mínimo especificado de valores distintos em cada coluna especificada na restrição de agregação. Esse requisito se aplica mesmo que a coluna não seja mencionada explicitamente na consulta ou em outras partes da regra de análise.
Controle | Definição | Uso |
---|---|---|
columnName |
O |
Pode ser qualquer coluna na tabela configurada. |
minimum |
O número mínimo de valores distintos associados |
O |
Estrutura de regras de análise de agregação
O exemplo a seguir mostra uma estrutura predefinida para uma regra de análise de agregação.
No exemplo a seguir,
refere-se à sua tabela de dados. Você pode substituir cada MyTable
espaço reservado de entrada do usuário
por suas próprias informações.
{ "aggregateColumns": [ { "columnNames": [
MyTable column names
], "function": [Allowed Agg Functions
] }, ], "joinRequired": ["QUERY_RUNNER"], "joinColumns": [MyTable column names
], "dimensionColumns": [MyTable column names
], "scalarFunctions": [Allowed Scalar functions
], "outputConstraints": [ { "columnName": [MyTable column names
], "minimum": [Numeric value
] }, ] }
Regra de análise de agregação - exemplo
O exemplo a seguir demonstra como duas empresas podem colaborar em AWS Clean Rooms usando da análise de agregação.
A empresa A tem dados de clientes e vendas. A empresa A está interessada em entender a atividade de devolução de produtos. A empresa B é uma das varejistas da empresa A e tem dados de devoluções. A empresa B também tem atributos de segmento de clientes que são úteis para a empresa A (por exemplo, comprou produtos relacionados, usa o atendimento ao cliente do varejista). A empresa B não quer fornecer dados de retorno de clientes em nível de linha e informações de atributos. A empresa B deseja apenas habilitar um conjunto de consultas para que a empresa A obtenha estatísticas agregadas sobre clientes sobrepostos em um limite mínimo de agregação.
A empresa A e a empresa B decidem colaborar para que a empresa A possa entender a atividade de devolução de produtos e oferecer produtos melhores na empresa B e em outros canais.
Para criar a colaboração e executar uma análise de agregação, as empresas fazem o seguinte:
-
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.
-
A empresa B cria uma associação na colaboração. Ele permite o registro de consultas em sua conta.
-
A empresa A cria uma tabela configurada de vendas.
-
A empresa A adiciona a seguinte regra de análise de agregação à tabela configurada de vendas.
{ "aggregateColumns": [ { "columnNames": [ "identifier" ], "function": "COUNT_DISTINCT" }, { "columnNames": [ "purchases" ], "function": "AVG" }, { "columnNames": [ "purchases" ], "function": "SUM" } ], "joinColumns": [ "hashedemail" ], "dimensionColumns": [ "demoseg", "purchasedate", "productline" ], "scalarFunctions": [ "CAST", "COALESCE", "TRUNC" ], "outputConstraints": [ { "columnName": "hashedemail", "minimum": 2, "type": "COUNT_DISTINCT" }, ] }
aggregateColumns
– A empresa A quer contar o número de clientes únicos na sobreposição entre dados de vendas e dados de devoluções. A empresa A também deseja somar o número depurchases
feitos para comparar com o número dereturns
.joinColumns
– A empresa A deseja usar para combinar clientesidentifier
a partir de dados de vendas com clientes a partir de dados de devoluções. Isso ajudará a empresa A Match a retornar às compras certas. Também ajuda a Empresa A a segmentar clientes sobrepostos.dimensionColumns
– A empresa A usadimensionColumns
para filtrar por produto específico, comparar compras e devoluções em um determinado período de tempo, garantir que a data de devolução seja posterior à data do produto e ajudar a segmentar clientes sobrepostos.scalarFunctions
– A empresa A seleciona a função escalarCAST
para ajudar a atualizar os formatos do tipo de dados, se necessário, com base na tabela configurada que a empresa A associa à colaboração. Ele também adiciona funções escalares para ajudar a formatar colunas, se necessário.outputConstraints
– A empresa A define restrições mínimas de produção. Não é necessário restringir os resultados porque o analista pode ver dados em nível de linha em sua tabela de vendasnota
A empresa A não inclui
joinRequired
na regra de análise. Ele fornece flexibilidade para o analista consultar a tabela de vendas sozinho. -
A empresa B cria uma tabela configurada de devoluções.
-
A empresa B adiciona a seguinte regra de análise de agregação à tabela configurada de devoluções.
{ "aggregateColumns": [ { "columnNames": [ "identifier" ], "function": "COUNT_DISTINCT" }, { "columnNames": [ "returns" ], "function": "AVG" }, { "columnNames": [ "returns" ], "function": "SUM" } ], "joinColumns": [ "hashedemail" ], "joinRequired": [ "QUERY_RUNNER" ], "dimensionColumns": [ "state", "popularpurchases", "customerserviceuser", "productline", "returndate" ], "scalarFunctions": [ "CAST", "LOWER", "UPPER", "TRUNC" ], "outputConstraints": [ { "columnName": "hashedemail", "minimum": 100, "type": "COUNT_DISTINCT" }, { "columnName": "producttype", "minimum": 2, "type": "COUNT_DISTINCT" } ] }
aggregateColumns
– A empresa B permite que a empresa A faça uma somareturns
para comparar com o número de compras. Eles têm pelo menos uma coluna agregada porque estão habilitando uma consulta agregada.joinColumns
– A empresa B permite que a empresa A se junteidentifier
para combinar clientes a partir dos dados de devolução com os clientes a partir dos dados de vendas. Os dadosidentifier
são particularmente confidenciais e tê-los como garantiajoinColumn
de que os dados nunca serão gerados em uma consulta.joinRequired
– A empresa B exige que as consultas sobre os dados de devolução sejam sobrepostas aos dados de vendas. Eles não querem permitir que a Empresa A consulte todas as pessoas em seu conjunto de dados. Eles também concordaram com essa restrição em seu acordo de colaboração.dimensionColumns
– A empresa B permite que a empresa A filtre e agrupe porstate
,popularpurchases
ecustomerserviceuser
que são atributos exclusivos que podem ajudar a fazer a análise para a empresa A. A empresa B permite que a empresa A usereturndate
para filtrar a saídareturndate
que ocorre depois depurchasedate
. Com essa filtragem, a saída é mais precisa para avaliar o impacto da alteração do produto.scalarFunctions
– A empresa B permite o seguinte:-
TRUNC para datas
-
LOWER e UPPER, caso o
producttype
seja inserido em um formato diferente em seus dados -
CAST se a empresa A precisar converter os tipos de dados em vendas para serem iguais aos tipos de dados em devoluções
A empresa A não habilita outras funções escalares porque não acredita que sejam necessárias para consultas.
outputConstraints
– A empresa B define restrições mínimas de produção emhashedemail
para ajudar a reduzir a capacidade de reidentificar clientes. Também adiciona uma restrição mínima de produção emproducttype
para reduzir a capacidade de reidentificar produtos específicos que foram devolvidos. Certos tipos de produtos podem ser mais dominantes com base nas dimensões da produção (por exemplo,state
). Suas restrições de saída sempre serão aplicadas, independentemente das restrições de saída adicionadas pela Empresa A aos seus dados. -
-
A empresa A cria uma associação de tabela de vendas à colaboração.
-
A empresa B cria uma associação de tabela de devoluções à colaboração.
-
A empresa A executa consultas, como o exemplo a seguir, para entender melhor a quantidade de devoluções na empresa B em comparação com o total de compras por local em 2022.
SELECT companyB.state, SUM(companyB.returns), COUNT(DISTINCT companyA.hashedemail) FROM sales companyA INNER JOIN returns companyB ON companyA.identifier = companyB.identifier WHERE companyA.purchasedate BETWEEN '2022-01-01' AND '2022-12-31' AND TRUNC(companyB.returndate) > companyA.purchasedate GROUP BY companyB.state;
-
A empresa A e a empresa B revisam os logs de consulta. A empresa B verifica se a consulta está alinhada com o que foi acordado no contrato de colaboração.
Solução de problemas de regras de análise de agregação
Use as informações aqui para ajudá-lo a diagnosticar e corrigir problemas comuns ao trabalhar com regras de análise de agregação.
Minha consulta não retornou nenhum resultado
Isso pode acontecer quando não há resultados correspondentes ou quando os resultados correspondentes não atendem a um ou mais limites mínimos de agregação.
Para obter mais informações sobre limites mínimos de agregação, consulte Regra de análise de agregação - exemplo.