Regra de análise de lista - 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 de lista

Em AWS Clean Rooms, uma regra de análise de lista gera listas em nível de linha da sobreposição entre a tabela configurada à qual ela é adicionada e as tabelas configuradas do membro que pode consultar. O membro que pode consultar executa consultas que incluem uma regra de análise de lista.

O tipo de regra de análise de lista oferece suporte a casos de uso como enriquecimento e criação de público.

Para obter mais informações sobre a estrutura de consulta e a sintaxe predefinidas para essa regra de análise, consulte Estrutura predefinida da regra de análise de listas.

Os parâmetros da regra de análise de lista, definidos em Regra de análise de lista - controles de consulta, têm controles de consulta. Seus controles de consulta incluem a capacidade de selecionar as colunas que podem ser listadas na saída. É necessário que a consulta tenha pelo menos uma junção com uma tabela configurada do membro que pode consultar, direta ou transitivamente.

Não há controles de resultados de consulta como os da regra de análise de agregação.

As consultas de lista só podem usar operadores matemáticos. Eles não podem usar outras funções (como agregação ou escalar).

Estrutura e sintaxe da consulta de lista

As consultas em tabelas que têm uma regra de análise de lista devem seguir a sintaxe a seguir.

--select_list_expression SELECT [TOP number ] DISTINCT column_name [[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] --limit_expression [LIMIT number]

A tabela a seguir explica cada expressão listada na sintaxe anterior.

Expressão Definição Exemplos
select_list_expression

Uma lista separada por vírgulas contendo pelo menos um nome de coluna de tabela.

Um parâmetro DISTINCT é obrigatório.

nota

select_list_expression pode criar um alias para colunas com ou sem o parâmetro AS.

Ele também suporta o parâmetro TOP. Para obter mais informações, consulte AWS Clean Rooms SQL Reference.

SELECT DISTINCT segment

table_expression

Uma tabela, ou junção de tabelas, com join_condition para conectá-la a join_condition.

join_condition retorna um Booleano.

table_expression oferece suporte a:

  • Um tipo específico de JOIN (JOIN INNER)

  • As condições de comparação de igualdade dentro de um join_condition (=)

  • Operadores lógicos (AND, OR).

FROM consumer_table INNER JOIN provider_table ON consumer_table.identifier1 = provider_table.identifier1 AND consumer_table.identifier2 = provider_table.identifier2
where_expression Uma expressão condicional que retorna um Booleano. Pode ser composto pelo seguinte:
  • Nomes de colunas da tabela

  • Operadores matemáticos

  • Literais de string

  • Literais numéricos

As condições de comparação suportadas são (=, >, <, <=, >=, <>, !=, NOT, IN, NOT IN, LIKE, IS NULL, IS NOT NULL).

Os operadores lógicos suportados são (AND, OR).

where_expression é opcional.

WHERE state + '_' + city = 'NY_NYC'

WHERE timestampColumn = timestampColumn2 - 14

limit_expression

Essa expressão deve ter um inteiro positivo. Também pode ser trocado por um parâmetro TOP.

limit_expression é opcional.

LIMIT 100

Para a estrutura e a sintaxe de consulta de lista, lembre-se de que:

  • Comandos SQL diferentes de SELECT não são suportados.

  • Subconsultas e expressões de tabela comuns (por exemplo, WITH) não são suportadas

  • As cláusulas HAVING, GROUP BY e ORDER BY não são suportadas

  • O parâmetro OFFSET não é suportado

Regra de análise de lista - controles de consulta

Com os controles de consulta de lista, 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 ou qual coluna pode ser usada na instrução e cláusula WHERE SELECT.

As seções a seguir explicam cada controle.

Controles de junção

Com os controles de junção, você pode controlar como sua tabela pode ser unida a outras tabelas na table_expression. AWS Clean Rooms suporta apenas JOIN INNER. Na regra de análise de lista, é necessário pelo menos uma JOIN INNER e o membro que pode consultar deve incluir uma tabela de sua propriedade no JOIN INNER. Isso significa que eles devem unir sua mesa à deles, direta ou transitivamente.

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

As instruções JOIN INNER só podem usar colunas que tenham sido explicitamente categorizadas como joinColumn em sua regra de análise.

A JOIN INNER deve operar em uma tabela configurada joinColumn 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 em uma cláusula ON 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 que você deseja permitir que o membro que pode consultar use na instrução JOIN INNER.

A mesma coluna não pode ser categorizada como joinColumn e listColumn (consulte Controles de lista).

joinColumn não pode ser usado em nenhuma outra parte da consulta além de JOIN INNER.

Controles de lista

Os controles de lista controlam as colunas que podem ser listadas na saída da consulta (ou seja, usadas na instrução SELECT) ou usadas para filtrar resultados (ou seja, usadas na WHERE instrução).

Controle Definição Uso
listColumns As colunas que você permite que o membro que pode consultar use no SELECT e WHERE A listColumn pode ser usado em SELECT e WHERE.

A mesma coluna não pode ser usada como a listColumn e joinColumn.

Estrutura predefinida da regra de análise de listas

O exemplo a seguir inclui uma estrutura predefinida que mostra como você conclui uma regra de análise de lista.

No exemplo a seguir, MyTable refere-se à sua tabela de dados. Você pode substituir cada espaço reservado de entrada do usuário por suas próprias informações.

{ "joinColumns": [MyTable column name(s)], "listColumns": [MyTable column name(s)], }

Regra de análise de listas - exemplo

O exemplo a seguir demonstra como duas empresas podem colaborar em AWS Clean Rooms usando a análise de listas.

A empresa A tem dados de gerenciamento de relacionamento com o cliente (CRM). A empresa A deseja obter dados adicionais de segmentos sobre seus clientes para saber mais sobre seus clientes e, potencialmente, usar atributos como entrada em outras análises. A empresa B tem dados de segmento compostos por atributos de segmento exclusivos que eles criaram com base em seus dados primários. A empresa B deseja fornecer os atributos exclusivos do segmento para a empresa A somente em clientes que estejam sobrepostos entre seus dados e os dados da empresa A.

As empresas decidem colaborar para que a Empresa A possa enriquecer os dados sobrepostos. A empresa A é o membro que pode consultar e a empresa B é a colaboradora.

Para criar uma colaboração e executar a análise de listas 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 log de consultas na colaboração e permite o log de consultas em sua conta.

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

  3. A empresa A cria uma tabela configurada de CRM

  4. A empresa A adiciona a regra de análise à tabela configurada do cliente, como mostrado no exemplo a seguir.

    { "joinColumns": [ "identifier1", "identifier2" ], "listColumns": [ "internalid", "segment1", "segment2", "customercategory" ] }

    joinColumns – A empresa A deseja usar hashedemail e/ou thirdpartyid (obtida de um fornecedor de identidade) combinar clientes a partir de dados de CRM com clientes de dados de segmentos. Isso ajudará a garantir que a Empresa A combine dados enriquecidos para os clientes certos. Eles têm duas JoinColumns para melhorar potencialmente a taxa de correspondência da análise.

    listColumns – A empresa A costuma listColumns obter colunas enriquecidas ao lado e internalid usá-las em seus próprios sistemas. Eles adicionam segment1, segment2 e customercategory para potencialmente limitar o enriquecimento a segmentos específicos, usando-os em filtros.

  5. A empresa B cria uma tabela configurada por segmentos.

  6. A empresa B adiciona a regra de análise à tabela configurada do segmento.

    { "joinColumns": [ "identifier2" ], "listColumns": [ "segment3", "segment4" ] }

    joinColumns – A empresa B permite que a empresa A se junte em identifier2 para combinar clientes, desde dados de segmentos até dados de CRM. A empresa A e a empresa B trabalharam com o fornecedor de identidade para obter identifier2 o que corresponderia a essa colaboração. Eles não adicionaram outros joinColumns porque acreditavam que identifier2 fornecem a taxa de correspondência mais alta e precisa e que outros identificadores não são necessários para as consultas.

    listColumns – A empresa B permite que a empresa A enriqueça seus dados com ps atributos segment3 e segment4 exclusivos que ela criou, coletou e alinhou (com o cliente A) para fazer parte do enriquecimento de dados. Eles querem que a Empresa A obtenha esses segmentos para a sobreposição em nível de linha, porque essa é uma colaboração de enriquecimento de dados.

  7. A empresa A cria uma associação de tabela de CRM à colaboração.

  8. A empresa B cria uma associação de tabela de segmentos à colaboração.

  9. A empresa A executa consultas, como a seguinte, para enriquecer os dados sobrepostos do cliente.

    SELECT companyA.internalid, companyB.segment3, companyB.segment4 INNER JOIN returns companyB ON companyA.identifier2 = companyB.identifier2 WHERE companyA.customercategory > 'xxx'
  10. 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.