

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à.

# Connettore Amazon Athena TPC Benchmark DS (TPC-DS)
<a name="connectors-tpcds"></a>

Il connettore TPC-DS per Amazon Athena consente ad Amazon Athena di comunicare con un'origine di dati TPC Benchmark DS generati casualmente per l'utilizzo nel benchmarking e nei test funzionali di Athena Federation. Il connettore TPC-DS Athena genera un database compatibile con TPC-DS in corrispondenza di uno dei quattro fattori di scala. Non consigliamo di utilizzare questo connettore in alternativa ai test sulle prestazioni dei data lake basati su Amazon S3.

Questo connettore può essere registrato nel Catalogo dati Glue come catalogo federato. Supporta i controlli di accesso ai dati definiti in Lake Formation a livello di catalogo, database, tabella, colonna, riga e tag. Questo connettore utilizza connessioni Glue per centralizzare le proprietà di configurazione in Glue.

## Prerequisiti
<a name="connectors-tpcds-prerequisites"></a>
+ Implementa il connettore sul tuo Account AWS utilizzando la console Athena o AWS Serverless Application Repository. Per ulteriori informazioni, consulta [Crea una connessione di un'origine dati](connect-to-a-data-source.md) o [Utilizzare il AWS Serverless Application Repository per distribuire un connettore di origine dati](connect-data-source-serverless-app-repo.md).

## Parameters
<a name="connectors-tpcds-parameters"></a>

Utilizzare i parametri illustrati in questa sezione per configurare il connettore TPC-DS.

**Nota**  
I connettori di origine dati Athena creati il 3 dicembre 2024 e versioni successive utilizzano connessioni. AWS Glue   
I nomi e le definizioni dei parametri elencati di seguito si riferiscono ai connettori di origine dati Athena creati prima del 3 dicembre 2024. Questi possono differire dalle [proprietà diconnessione AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/connection-properties.html) corrispondenti. Dal 3 dicembre 2024, utilizzare i parametri seguenti solo quando si [implementa manualmente](connect-data-source-serverless-app-repo.md) una versione precedente di un connettore di origine dati Athena.

### Connessioni Glue (consigliate)
<a name="connectors-tpcds-gc"></a>

Si consiglia di configurare un connettore TPC-DS utilizzando un oggetto di connessioni Glue. Per fare ciò, impostare la variabile di ambiente `glue_connection` del connettore TPC-DS Lambda sul nome della connessione Glue da utilizzare.

**Proprietà delle connessioni Glue**

Utilizzare il seguente comando per ottenere lo schema di un oggetto di connessione Glue. Questo schema contiene tutti i parametri che è possibile usare per controllare la connessione.

```
aws glue describe-connection-type --connection-type TPCDS
```

**Proprietà dell’ambiente Lambda**
+ **glue\$1connection**: specifica il nome della connessione Glue associata al connettore federato.

**Nota**  
Tutti i connettori che utilizzano le connessioni Glue devono essere utilizzati Gestione dei segreti AWS per memorizzare le credenziali.
Il connettore TPC-DS creato utilizzando le connessioni Glue non supporta l’uso di un gestore multiplexing.
Il connettore TPC-DS creato utilizzando le connessioni Glue supporta solo 2 `ConnectionSchemaVersion`.

### Connessioni legacy
<a name="connectors-tpcds-legacy"></a>
+ **spill\$1bucket**: specifica il bucket Amazon S3 per i dati che superano i limiti della funzione Lambda.
+ **spill\$1prefix**: (facoltativo) per impostazione predefinita, viene utilizzata una sottocartella nello `spill_bucket` specificato chiamata `athena-federation-spill`. Ti consigliamo di configurare un [ciclo di vita dell'archiviazione](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html) di Amazon S3 in questa posizione per eliminare gli spill più vecchi di un numero predeterminato di giorni o ore.
+ **spill\$1put\$1request\$1headers**: (facoltativo) una mappa codificata in JSON delle intestazioni e dei valori della richiesta per la richiesta `putObject` di Amazon S3 utilizzata per lo spill (ad esempio, `{"x-amz-server-side-encryption" : "AES256"}`). Per altre possibili intestazioni, consulta il *riferimento [PutObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html)all'API di Amazon Simple Storage Service*.
+ **kms\$1key\$1id**: (facoltativo) per impostazione predefinita, tutti i dati riversati in Amazon S3 vengono crittografati utilizzando la modalità di crittografia autenticata AES-GCM e una chiave generata casualmente. Per fare in modo che la tua funzione Lambda utilizzi chiavi di crittografia più potenti generate da KMS come `a7e63k4b-8loc-40db-a2a1-4d0en2cd8331`, puoi specificare l'ID della chiave KMS.
+ **disable\$1spill\$1encryption**: (facoltativo) se impostato su `True`, disabilita la crittografia dello spill. L'impostazione predefinita è `False`: in questo modo, i dati riversati su S3 vengono crittografati utilizzando AES-GCM tramite una chiave generata casualmente o una chiave generata mediante KMS. La disabilitazione della crittografia dello spill può migliorare le prestazioni, soprattutto se la posizione dello spill utilizza la [crittografia lato server](https://docs.aws.amazon.com/AmazonS3/latest/userguide/serv-side-encryption.html).

## Esecuzione di test su database e tabelle
<a name="connectors-tpcds-test-databases-and-tables"></a>

Il connettore TPC-DS per Athena genera un database compatibile con TPC-DS in uno dei quattro fattori di scala `tpcds1`, `tpcds10`, `tpcds100`, `tpcds250` o `tpcds1000`.

### Riepilogo delle tabelle
<a name="connectors-tpcds-table-summary"></a>

Per un elenco completo delle tabelle e delle colonne dei dati del test, esegui le query `SHOW TABLES` o `DESCRIBE TABLE`. Per comodità, viene fornito il seguente riepilogo delle tabelle.

1. call\$1center

1. catalog\$1page

1. catalog\$1returns

1. catalog\$1sales

1. customer

1. customer\$1address

1. customer\$1demographics

1. date\$1dim

1. dbgen\$1version

1. household\$1demographics

1. income\$1band

1.  Inventory

1. elemento

1. promotion

1. motivo

1. ship\$1mode

1. memorizzazione

1. store\$1returns

1. store\$1sales

1. time\$1dim

1. warehouse

1. web\$1page

1. web\$1returns

1. web\$1sales

1. web\$1site

Per le query TPC-DS compatibili con lo schema e i dati generati, consulta la directory [athena](https://github.com/awslabs/aws-athena-query-federation/tree/master/athena-tpcds/src/main/resources/queries) -/su. tpcds/src/main/resources/queries GitHub

### Query di esempio
<a name="connectors-tpcds-example-query"></a>

La query `SELECT` di esempio seguente interroga il catalogo `tpcds` in merito ai dati demografici dei clienti in contee specifiche.

```
SELECT
  cd_gender,
  cd_marital_status,
  cd_education_status,
  count(*) cnt1,
  cd_purchase_estimate,
  count(*) cnt2,
  cd_credit_rating,
  count(*) cnt3,
  cd_dep_count,
  count(*) cnt4,
  cd_dep_employed_count,
  count(*) cnt5,
  cd_dep_college_count,
  count(*) cnt6
FROM
  "lambda:tpcds".tpcds1.customer c, "lambda:tpcds".tpcds1.customer_address ca, "lambda:tpcds".tpcds1.customer_demographics
WHERE
  c.c_current_addr_sk = ca.ca_address_sk AND
    ca_county IN ('Rush County', 'Toole County', 'Jefferson County',
                  'Dona Ana County', 'La Porte County') AND
    cd_demo_sk = c.c_current_cdemo_sk AND
    exists(SELECT *
           FROM "lambda:tpcds".tpcds1.store_sales, "lambda:tpcds".tpcds1.date_dim
           WHERE c.c_customer_sk = ss_customer_sk AND
             ss_sold_date_sk = d_date_sk AND
             d_year = 2002 AND
             d_moy BETWEEN 1 AND 1 + 3) AND
    (exists(SELECT *
            FROM "lambda:tpcds".tpcds1.web_sales, "lambda:tpcds".tpcds1.date_dim
            WHERE c.c_customer_sk = ws_bill_customer_sk AND
              ws_sold_date_sk = d_date_sk AND
              d_year = 2002 AND
              d_moy BETWEEN 1 AND 1 + 3) OR
      exists(SELECT *
             FROM "lambda:tpcds".tpcds1.catalog_sales, "lambda:tpcds".tpcds1.date_dim
             WHERE c.c_customer_sk = cs_ship_customer_sk AND
               cs_sold_date_sk = d_date_sk AND
               d_year = 2002 AND
               d_moy BETWEEN 1 AND 1 + 3))
GROUP BY cd_gender,
  cd_marital_status,
  cd_education_status,
  cd_purchase_estimate,
  cd_credit_rating,
  cd_dep_count,
  cd_dep_employed_count,
  cd_dep_college_count
ORDER BY cd_gender,
  cd_marital_status,
  cd_education_status,
  cd_purchase_estimate,
  cd_credit_rating,
  cd_dep_count,
  cd_dep_employed_count,
  cd_dep_college_count
LIMIT 100
```

## Autorizzazioni richieste
<a name="connectors-tpcds-required-permissions"></a>

Consulta la sezione `Policies` del file [athena-tpcds.yaml](https://github.com/awslabs/aws-athena-query-federation/blob/master/athena-tpcds/athena-tpcds.yaml) per i dettagli completi delle policy IAM richieste da questo connettore. L'elenco che segue riporta un riepilogo delle autorizzazioni richieste.
+ **Accesso in scrittura ad Amazon S3**: per trasferire i risultati di query di grandi dimensioni, il connettore richiede l'accesso in scrittura a una posizione in Amazon S3.
+ **Athena GetQueryExecution**: il connettore utilizza questa autorizzazione per fallire rapidamente quando la query Athena upstream è terminata.

## Performance
<a name="connectors-tpcds-performance"></a>

Il connettore TPC-DS per Athena tenta di condurre le query in parallelo in base al fattore di scala scelto. Il pushdown dei predicati viene eseguito all'interno della funzione Lambda.

## Informazioni sulla licenza
<a name="connectors-tpcds-license-information"></a>

Il progetto del connettore TPC-DS per Amazon Athena è concesso in licenza ai sensi della [Licenza Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.html).

## Risorse aggiuntive
<a name="connectors-tpcds-additional-resources"></a>

[Per ulteriori informazioni su questo connettore, visitate il sito corrispondente su .com.](https://github.com/awslabs/aws-athena-query-federation/tree/master/athena-tpcds) GitHub