

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Regola di analisi personalizzata in AWS Clean Rooms
<a name="analysis-rules-custom"></a>

In AWS Clean Rooms, una regola di analisi * personalizzata * è un nuovo tipo di regola di analisi che consente di eseguire query personalizzate sulla tabella configurata. Le query SQL personalizzate sono ancora limitate all'utilizzo del solo SELECT comando, ma possono utilizzare più costrutti SQL rispetto alle [ query di [ aggregazione ](analysis-rules-aggregation.md#agg-query-controls) e di ](analysis-rules-list.md#list-query-controls) elenco (ad esempio, funzioni di finestra, OUTER JOIN, CTE o sottoquery; vedere SQL Reference per un elenco completo). [AWS Clean Rooms](https://docs.aws.amazon.com/clean-rooms/latest/sql-reference/sql-reference.html) Le query SQL personalizzate non devono seguire una struttura di query come le query di aggregazione e di elenco. [Struttura e sintassi delle interrogazioni di aggregazione](analysis-rules-aggregation.md#agg-query-structure-syntax) [Elenca la struttura e la sintassi delle interrogazioni](analysis-rules-list.md#list-query-controls) 

La regola di analisi personalizzata supporta casi d'uso più avanzati rispetto a quelli che possono essere supportati dalla regola di aggregazione e analisi degli elenchi, come l'analisi personalizzata dell'attribuzione, il benchmarking, l'analisi dell'incrementalità e l'individuazione del pubblico. Ciò si aggiunge a un superset dei casi d'uso supportati dalla regola di aggregazione e analisi degli elenchi. 

La regola di analisi personalizzata supporta anche la privacy differenziale. La privacy differenziale è un framework matematicamente rigoroso per la protezione della privacy dei dati. Per ulteriori informazioni, consulta [AWS Clean Rooms Privacy differenziale](differential-privacy.md). Quando si crea un modello di analisi, AWS Clean Rooms Differential Privacy controlla il modello per determinare se è compatibile con la struttura di interrogazione generica per Differential Privacy. AWS Clean Rooms Questa convalida garantisce che non si crei un modello di analisi non consentito con una tabella differenziale protetta dalla privacy.

Per configurare la regola di analisi personalizzata, i proprietari dei dati possono scegliere di consentire l'esecuzione di specifiche query personalizzate, archiviate in modelli di [ analisi](create-analysis-template.md), sulle tabelle configurate. I proprietari dei dati esaminano i modelli di analisi prima di aggiungerli al controllo di analisi consentito nella regola di analisi personalizzata. I modelli di analisi sono disponibili e visibili solo nella collaborazione in cui sono stati creati (anche se la tabella è associata ad altre collaborazioni) e possono essere eseguiti solo dal membro che può eseguire una query nell'ambito di tale collaborazione.

In alternativa, i membri possono scegliere di consentire ad altri membri (fornitori di query) di creare query senza revisione. I membri aggiungono gli account dei provider di query, controllati dai provider di query autorizzati nella regola di analisi personalizzata. Se il provider di query è il membro che può eseguire una query, possono eseguire qualsiasi query direttamente sulla tabella configurata. I provider di query possono anche creare query [ creando modelli ](create-analysis-template.md) di analisi. Tutte le query create dai provider di query possono essere eseguite automaticamente sulla tabella in tutte le collaborazioni in cui Account AWS è presente e la tabella è associata.

Questa pagina contiene le seguenti sezioni:
+ [Struttura delle regole di analisi personalizzata ](#custom-predefined-structure)
+ [Esempio di regola di analisi personalizzata con modelli di analisi ](#custom-example)
+ [Esempio di regola di analisi personalizzata con soglie minime di aggregazione ](#custom-example-min-agg)
+ [Esempio di regola di analisi personalizzata con soglie minime di aggregazione e controlli di confronto ](#custom-example-min-agg-comparison)
+ [Mettendo tutto insieme ](#custom-complete-example)

La regola di analisi personalizzata supporta i seguenti controlli per il miglioramento della privacy:
+ [Analisi consentite ](custom-allowed-analyses.md)
+ [Colonne di output non consentite ](disallowed-output-columns.md)
+ [Soglie minime di aggregazione ](custom-min-agg-thresholds.md)
+ [Controlli di confronto ](custom-comparison-controls.md)
+ [Regola di analisi personalizzata con privacy differenziale ](custom-diff-privacy.md)
+ [Considerazioni e limitazioni](custom-considerations.md)
+ [Funzionalità SQL per controlli minimi di aggregazione e confronto ](custom-sql-capabilities.md)

## Struttura delle regole di analisi personalizzata
<a name="custom-predefined-structure"></a>

La seguente struttura predefinita mostra i controlli disponibili in una regola di analisi personalizzata. Includi solo i controlli necessari per il tuo caso d'uso. Il `userIdentifier` valore nel `differentialPrivacy` controllo è la colonna che identifica in modo univoco gli utenti, ad esempio user\_id. * * Quando in una collaborazione sono attivate due o più tabelle con privacy differenziale, è AWS Clean Rooms necessario configurare la stessa colonna della colonna dell'identificatore utente in entrambe le regole di analisi. Ciò mantiene una definizione coerente degli utenti in tutte le tabelle.

```
{
  "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}}"
      }
    ]
  }
}
```

Puoi eseguire una delle seguenti operazioni: 
+ Aggiungi gli ARN dei modelli di analisi al controllo delle analisi consentito. In questo caso, il `allowedAnalysisProviders` controllo non è incluso.

  ```
  {
    allowedAnalyses: string[]
  }
  ```
+ Aggiungere gli Account AWS ID dei membri al `allowedAnalysisProviders` controllo. In questo caso, si aggiunge `ANY_QUERY` qualcosa al `allowedAnalyses` controllo. 

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

È inoltre possibile configurare uno dei seguenti controlli:
+ Le colonne che non consentite vengano proiettate nel risultato della query. Per ulteriori informazioni, consulta [Colonne di output non consentite](disallowed-output-columns.md).

  ```
  {
    disallowedOutputColumns: string[]
  }
  ```
+ Una soglia minima di aggregazione che richiede che ogni riga dei risultati rappresenti almeno un numero minimo di soggetti di dati distinti. È possibile sovrascrivere la soglia per le singole colonne di output tramite `outputColumnThresholds` e `allowedAggregateExpressionType` controllare se le espressioni sono consentite all'interno delle funzioni di aggregazione. Per ulteriori informazioni, consultare [Soglie minime di aggregazione](custom-min-agg-thresholds.md), [Sovrascrivere la soglia minima di aggregazione per colonne di output specifiche](custom-min-agg-thresholds.md#custom-min-agg-output-override) e [Consentire espressioni annidate nelle funzioni aggregate](custom-min-agg-thresholds.md#custom-min-agg-nested-expressions).

  ```
  {
    aggregationThresholds: [
      {
        identityColumns: string[],
        minimumIdentityCount: number,
        type: "COUNT_DISTINCT",
        allowedAggregateExpressionType: "COLUMNS_ONLY" | "ANY_EXPRESSION",
        outputColumnThresholds: [
          {
            outputColumnName: string,
            minimumIdentityCount: number
          }
        ]
      }
    ]
  }
  ```
+ Controlli di confronto che definiscono quali colonne possono essere confrontate con un valore letterale e quali possono essere confrontate con un'altra colonna. Per ulteriori informazioni, consulta [Controlli di confronto](custom-comparison-controls.md).

  ```
  {
    comparisonControls: {
      allowedLiteralComparisonColumns: string[],
      allowedColumnComparisonColumns: string[]
    }
  }
  ```
+ Una configurazione di privacy differenziale che protegge la tabella identificando la colonna identificativa dell'utente. Per ulteriori informazioni, vedere Privacy [AWS Clean Rooms differenziale. ](differential-privacy.md#dp-overview)

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

La configurazione consigliata è la configurazione delle soglie minime di aggregazione insieme ai controlli di confronto. Una soglia di per sé lascia comunque comparabili le colonne a bassa cardinalità o quasi identificative, il che può restringere i risultati in modi non intenzionali.

È opportuno configurare i controlli di confronto quando la tabella contiene colonne a bassa cardinalità o quasi identificative, ad esempio il codice postale o la fascia di età, o quando il query runner non è completamente attendibile. Per un esempio funzionante che mostra entrambi i controlli configurati insieme, vedi. [Esempio di regola di analisi personalizzata con soglie di aggregazione minime e controlli di confronto](#custom-example-min-agg-comparison)

## Esempio di regola di analisi personalizzata con modelli di analisi
<a name="custom-example"></a>

L'esempio seguente dimostra come due aziende possono collaborare AWS Clean Rooms utilizzando la regola di analisi personalizzata.

L'azienda A dispone di dati sui clienti e sulle vendite. L'azienda A è interessata a comprendere l'incrementalità delle vendite di una campagna pubblicitaria sul sito dell'azienda B. L'azienda B dispone di dati sulle visualizzazioni e di attributi di segmento utili all'Azienda (ad esempio, il dispositivo utilizzato per visualizzare la pubblicità). 

L'azienda A ha una query di incrementalità specifica che desidera eseguire nell'ambito della collaborazione. 

Per creare una collaborazione ed eseguire un'analisi personalizzata in collaborazione, le aziende fanno quanto segue: 

1. L'azienda A crea una collaborazione e crea un'iscrizione. La collaborazione ha la Società B come altro membro della collaborazione. L'azienda A abilita la registrazione delle query nella collaborazione e abilita la registrazione delle query nel proprio account. 

1. L'azienda B crea un'iscrizione alla collaborazione. Consente la registrazione delle query nel proprio account. 

1. L'azienda A crea una tabella configurata con CRM

1. L'azienda A aggiunge una regola di analisi personalizzata vuota alla tabella configurata per le vendite.

1. La società A associa la tabella configurata per le vendite alla collaborazione.

1. L'azienda B crea una tabella configurata per le visualizzazioni.

1. L'azienda B aggiunge una regola di analisi personalizzata vuota alla tabella configurata per le visualizzazioni.

1. L'azienda B associa la tabella configurata per le visualizzazioni alla collaborazione.

1. L'azienda A visualizza la tabella delle vendite e la tabella delle visualizzazioni associate alla collaborazione e crea un modello di analisi, aggiungendo la query di incrementalità e il parametro per il mese della campagna.

   ```
   {
       "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
          "
   }
   ```

1. L'azienda A aggiunge il proprio account (ad esempio, 444455556666) al controllo del fornitore di analisi consentito nella regola di analisi personalizzata. Utilizzano il controllo del fornitore di analisi consentito perché desiderano consentire l'esecuzione di qualsiasi query creata nella tabella configurata per le vendite.

   ```
   {
     "allowedAnalyses": [
       "ANY_QUERY"
     ],
     "allowedAnalysisProviders": [
       "444455556666"
     ]
   }
   ```

1. L'azienda B vede il modello di analisi creato nella collaborazione e ne esamina il contenuto, inclusi la stringa e il parametro di query.

1. L'azienda B stabilisce che il modello di analisi soddisfa il caso d'uso di incrementalità e soddisfa i requisiti di privacy relativi al modo in cui è possibile interrogare la tabella configurata per le visualizzazioni.

1. L'azienda B aggiunge il modello di analisi ARN al controllo di analisi consentito nella regola di analisi personalizzata della tabella delle visualizzazioni. Utilizzano il controllo di analisi consentito perché desiderano consentire l'esecuzione della query di incrementalità solo sulla tabella configurata per le visualizzazioni.

   ```
   {
     "allowedAnalyses": [
       "arn:aws:cleanrooms:us-east-1:111122223333:membership/41327cc4-bbf0-43f1-b70c-a160dddceb08/analysistemplate/1ff1bf9d-781c-418d-a6ac-2b80c09d6292"
     ]
   }
   ```

1. La società A esegue il modello di analisi e utilizza il valore del parametro. `05-01-2023`

## Esempio di regola di analisi personalizzata con soglie di aggregazione minime
<a name="custom-example-min-agg"></a>

L'esempio seguente dimostra come due aziende possono collaborare AWS Clean Rooms utilizzando la regola di analisi personalizzata con soglie di aggregazione minime invece di rivedere i singoli modelli di analisi.

L'azienda A è un editore con una `impressions` tabella contenente,, e. `user_id` `campaign_id` `event_date` L'azienda B è un inserzionista che desidera misurare la copertura della campagna, ossia il numero di utenti distinti che hanno visto una determinata campagna. L'azienda A vuole assicurarsi che nessun risultato della query possa rivelare singoli individui o piccoli gruppi, quindi utilizza soglie minime di aggregazione anziché esaminare singoli modelli di analisi.

Per creare una collaborazione ed eseguire un'analisi personalizzata, le aziende effettuano le seguenti operazioni:

1. L'azienda A crea una collaborazione con la società B come altro membro e come membro che può effettuare domande. L'azienda A consente la registrazione delle query nella collaborazione e nel relativo account.

1. L'azienda B crea un'iscrizione alla collaborazione e consente la registrazione delle query nel proprio account.

1. L'azienda A crea una tabella `impressions` configurata.

1. La società A aggiunge una regola di analisi personalizzata alla tabella `impressions` configurata con una soglia minima di aggregazione in modo che ogni riga restituita rappresenti almeno 100 utenti distinti. La società A viene impostata `user_id` come colonna dell'identità e sostituisce la soglia a 5 per la colonna di output con sensibilità inferiore`campaign_id`. La società A consente inoltre il confronto letterale su `campaign_id` e in `event_date` modo che la società B possa limitare una query a una campagna e a un intervallo di date. Ogni colonna che appare in un confronto letterale deve essere inclusa nella lista consentita. Infine, la società A aggiunge l'account della società B al controllo dei fornitori di analisi consentiti in modo che la società B possa eseguire query senza revisione per modello.

   ```
   {
     "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"
     ]
   }
   ```

1. L'azienda A associa la tabella `impressions` configurata alla collaborazione.

1. L'azienda B esegue una query di copertura raggruppata `event_date` e filtrata in base a una campagna:

   ```
   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;
   ```

1. AWS Clean Rooms restituisce solo le righe supportate da almeno 100 utenti distinti ed elimina le altre, in modo che l'azienda B apprenda quotidianamente la copertura della campagna Holiday Promotion senza conoscere alcun individuo o piccolo gruppo.    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/it_it/clean-rooms/latest/userguide/analysis-rules-custom.html)

   La data `2026-01-03` non viene visualizzata nei risultati perché meno di 100 utenti distinti hanno visto la campagna quel giorno, quindi ho eliminato quella riga. AWS Clean Rooms 

La differenza fondamentale rispetto all'approccio basato sui modelli di analisi è che la società A non ha mai esaminato una richiesta specifica. Invece, l'azienda A si basa sulla soglia per limitare il valore restituito da qualsiasi query. Per ulteriori informazioni, consultare [Soglie minime di aggregazione](custom-min-agg-thresholds.md) e [Controlli di confronto](custom-comparison-controls.md).

## Esempio di regola di analisi personalizzata con soglie di aggregazione minime e controlli di confronto
<a name="custom-example-min-agg-comparison"></a>

La configurazione di base consigliata è la configurazione di base consigliata per configurare le soglie minime di aggregazione insieme ai controlli di confronto. Una soglia da sola garantisce che ogni riga dei risultati rappresenti un numero minimo di soggetti di dati distinti, ma non impedisce i confronti su colonne a bassa cardinalità o quasi identificative. Senza controlli di confronto, un interrogatore può comunque filtrare o unire quelle colonne, restringendo potenzialmente i risultati in modi non intenzionali.

Vale la pena configurare i controlli di confronto quando la tabella contiene colonne a bassa cardinalità o quasi identificative, come il codice postale o la fascia di età, o quando il query runner non è completamente attendibile. L'aggiunta di controlli di confronto limita le colonne che possono essere visualizzate nei confronti letterali e nei confronti da colonna a colonna, colmando il divario che una sola soglia lascia aperto.

La seguente configurazione combina entrambi i controlli:

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

Con questa configurazione, ogni riga dei risultati rappresenta almeno 100 soggetti di dati distinti. Il query runner può filtrare `campaign_id` utilizzando confronti letterali e unirsi a quelli da colonna a colonna`user_id`. Poiché le liste consentite per il confronto sono impostate, qualsiasi colonna non elencata, comprese le colonne a bassa cardinalità come il codice postale o la fascia di età, non può essere utilizzata affatto in un confronto.

Per ulteriori informazioni su ciascun controllo, vedere e. [Soglie minime di aggregazione](custom-min-agg-thresholds.md) [Controlli di confronto](custom-comparison-controls.md) Per una configurazione più completa che include anche colonne di output non consentite, vedere. [Mettere tutto insieme](#custom-complete-example)

## Mettere tutto insieme
<a name="custom-complete-example"></a>

L'esempio seguente mostra una configurazione completa del tipo di regola di analisi personalizzata, utilizzando colonne di output non consentite, soglie minime di aggregazione e controlli di confronto. Questa configurazione impone l'aggregazione minima di 100 soggetti di dati distinti, `user_id` impedisce che vengano proiettati nel risultato della query e consente al gestore della query di analizzare l'intersezione dei clienti che si uniscono alla colonna. `user_id`

Questa politica garantisce inoltre una maggiore flessibilità consentendo il filtraggio letterale di confronto sulle colonne a bassa sensibilità `status` e sostituisce la soglia minima di aggregazione a `price` 5 per la colonna: `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"
  ]
}
```