

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

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

Le connecteur Amazon Athena pour TPC-DS permet à Amazon Athena de communiquer avec une source de données TPC Benchmark DS générées de manière aléatoire et destinées à être utilisées pour la définition de points de référence et les tests fonctionnels d’Athena Federation. Le connecteur TPC-DS d'Athena génère une base de données conforme TPC-DS à l'un des quatre facteurs d'échelle. Nous ne recommandons pas l’utilisation de ce connecteur comme alternative aux tests de performance des lacs de données basés sur Amazon S3.

Ce connecteur peut être enregistré auprès du Catalogue de données Glue en tant que catalogue fédéré. Il prend en charge les contrôles d’accès aux données définis dans Lake Formation aux niveaux catalogue, base de données, table, colonne, ligne et balise. Ce connecteur utilise les connexions Glue pour centraliser les propriétés de configuration dans Glue.

## Conditions préalables
<a name="connectors-tpcds-prerequisites"></a>
+ Déployez le connecteur sur votre Compte AWS à l’aide de la console Athena ou du AWS Serverless Application Repository. Pour plus d’informations, consultez [Création d’une connexion à une source de données](connect-to-a-data-source.md) ou [Utilisez le AWS Serverless Application Repository pour déployer un connecteur de source de données](connect-data-source-serverless-app-repo.md).

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

Utilisez les paramètres de cette section pour configurer le connecteur TPC-DS.

**Note**  
Les connecteurs de source de données Athena créés le 3 décembre 2024 et les versions ultérieures utilisent AWS Glue des connexions.  
Les noms et définitions de paramètres répertoriés ci-dessous concernent les connecteurs de source de données Athena créés avant le 3 décembre 2024. Ces noms et définitions peuvent différer de ceux des [propriétés de connexion AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/connection-properties.html) correspondantes. À compter du 3 décembre 2024, utilisez les paramètres ci-dessous uniquement lorsque vous [déployez manuellement](connect-data-source-serverless-app-repo.md) une version antérieure d’un connecteur de source de données Athena.

### AWS Glue Data Catalog connecteurs fédérés
<a name="connectors-tpcds-gc"></a>

Nous vous recommandons de configurer un connecteur TPC-DS en utilisant un objet des connexions Glue. Pour ce faire, définissez la variable d’environnement `glue_connection` du connecteur TPC-DS Lambda sur le nom de la connexion Glue à utiliser.

**Propriétés des connexions Glue**

Utilisez la commande suivante afin d’obtenir le schéma d’un objet de connexion Glue. Ce schéma contient tous les paramètres que vous pouvez utiliser pour contrôler votre connexion.

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

**Propriétés d’environnement Lambda**

Les propriétés d'environnement Lambda suivantes s'appliquent uniquement lorsque vous utilisez le connecteur avec une fonction Lambda dans votre compte.
+ **glue\_connection** : spécifie le nom de la connexion Glue associée au connecteur fédéré.

**Note**  
Tous les connecteurs qui utilisent une connexion AWS Glue Data Catalog fédérée doivent être utilisés AWS Secrets Manager pour stocker les informations d'identification.
Le connecteur TPC-DS créé à l'aide d'une connexion AWS Glue Data Catalog fédérée ne prend pas en charge l'utilisation d'un gestionnaire de multiplexage.
Le connecteur TPC-DS créé à l'aide d'une connexion AWS Glue Data Catalog fédérée ne prend en charge que 2. `ConnectionSchemaVersion`

### Connecteurs fédérés du catalogue de données Athena
<a name="connectors-tpcds-legacy"></a>
+ **spill\_bucket** – Spécifie le compartiment Amazon S3 pour les données qui dépassent les limites des fonctions Lambda.
+ **spill\_prefix** – (Facultatif) Par défaut, il s’agit d’un sous-dossier dans le `spill_bucket` spécifié appelé `athena-federation-spill`. Nous vous recommandons de configurer un [cycle de vie de stockage](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html) Amazon S3 à cet endroit pour supprimer les déversements supérieurs à un nombre de jours ou d’heures prédéterminé.
+ **spill\_put\_request\_headers** – (Facultatif) Une carte codée au format JSON des en-têtes et des valeurs des demandes pour la demande `putObject` Amazon S3 utilisée pour le déversement (par exemple, `{"x-amz-server-side-encryption" : "AES256"}`). Pour les autres en-têtes possibles, consultez le [PutObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html)manuel *Amazon Simple Storage Service API Reference*.
+ **kms\_key\_id** – (Facultatif) Par défaut, toutes les données déversées vers Amazon S3 sont chiffrées à l'aide du mode de chiffrement authentifié AES-GCM et d'une clé générée de manière aléatoire. Pour que votre fonction Lambda utilise des clés de chiffrement plus puissantes générées par KMS, comme `a7e63k4b-8loc-40db-a2a1-4d0en2cd8331`, vous pouvez spécifier l’ID d’une clé KMS.
+ **disable\_spill\_encryption** – (Facultatif) Lorsque la valeur est définie sur `True`, le chiffrement des déversements est désactivé. La valeur par défaut est `False` afin que les données déversées vers S3 soient chiffrées à l’aide d’AES-GCM, soit à l’aide d’une clé générée de manière aléatoire soit à l’aide de KMS pour générer des clés. La désactivation du chiffrement des déversements peut améliorer les performances, surtout si votre lieu de déversement utilise le [chiffrement côté serveur](https://docs.aws.amazon.com/AmazonS3/latest/userguide/serv-side-encryption.html).

## Tester des bases de données et des tables
<a name="connectors-tpcds-test-databases-and-tables"></a>

Le connecteur TPC-DS d’Athena génère une base de données conforme TPC-DS à l’un des quatre facteurs d’échelle `tpcds1`, `tpcds10`, `tpcds100`, `tpcds250` ou `tpcds1000`.

### Résumé des tables
<a name="connectors-tpcds-table-summary"></a>

Pour obtenir une liste complète des tables et des colonnes de données de test, exécutez les requêtes `SHOW TABLES` ou `DESCRIBE TABLE`. Le résumé des tables suivant est fourni pour des raisons de commodité.

1. call\_center

1. catalog\_page

1. catalog\_returns

1. catalog\_sales

1. customer

1. customer\_address

1. customer\_demographics

1. date\_dim

1. dbgen\_version

1. household\_demographics

1. income\_band

1.  Inventory

1. item

1. promotion

1. raison

1. ship\_mode

1. stocker

1. store\_returns

1. store\_sales

1. time\_dim

1. warehouse

1. web\_page

1. web\_returns

1. web\_sales

1. web\_site

Pour les requêtes TPC-DS compatibles avec le schéma et les données générés, consultez le répertoire [athena-tpcds/src/main/resources/queries/](https://github.com/awslabs/aws-athena-query-federation/tree/master/athena-tpcds/src/main/resources/queries)sur. GitHub

### Exemple de requête
<a name="connectors-tpcds-example-query"></a>

Les exemples de requêtes `SELECT` suivants interrogent le catalogue `tpcds` pour la démographie des clients dans des comtés spécifiques.

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

## Autorisations nécessaires
<a name="connectors-tpcds-required-permissions"></a>

Pour plus de détails sur les politiques IAM requises par ce connecteur, reportez-vous à la section `Policies` du fichier [athena-tpcds.yaml](https://github.com/awslabs/aws-athena-query-federation/blob/master/athena-tpcds/athena-tpcds.yaml). La liste suivante résume les autorisations requises.
+ **Amazon S3 write access** (Accès en écriture Amazon S3) – Le connecteur nécessite un accès en écriture à un emplacement dans Amazon S3 pour déverser les résultats à partir de requêtes volumineuses.
+ **Athena GetQueryExecution** — Le connecteur utilise cette autorisation pour échouer rapidement lorsque la requête Athena en amont est terminée.

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

Le connecteur Athena TPC-DS tente de paralléliser les requêtes en fonction du facteur d’échelle que vous choisissez. La poussée vers le bas de prédicat est effectuée au sein de la fonction Lambda.

## Informations de licence
<a name="connectors-tpcds-license-information"></a>

Le projet de connecteur TPC-DS Amazon Athena est concédé sous licence dans le cadre de la [licence Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.html).

## Ressources supplémentaires
<a name="connectors-tpcds-additional-resources"></a>

Pour plus d'informations sur ce connecteur, rendez-vous sur [le site correspondant](https://github.com/awslabs/aws-athena-query-federation/tree/master/athena-tpcds) sur GitHub .com.