> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-mintlify-fbfa8bee.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Le jeu de données de benchmark TPC-DS et ses requêtes.

# TPC-DS (2012)

À l’instar du [Star Schema Benchmark (SSB)](/fr/get-started/sample-datasets/star-schema), TPC-DS repose sur [TPC-H](/fr/get-started/sample-datasets/tpch), mais suit l’approche inverse : il augmente le nombre de jointures nécessaires en stockant les données dans un schéma en flocon complexe (24 tables au lieu de 8).
La distribution des données est déséquilibrée (par ex. distributions normale et de Poisson).
Il comprend 99 requêtes de reporting et ad hoc avec des substitutions aléatoires.

**Références**

* [The Making of TPC-DS](https://dl.acm.org/doi/10.5555/1182635.1164217) (Nambiar), 2006

<div id="data-generation-and-import">
  ## Génération et importation des données
</div>

Commencez par cloner le dépôt TPC-DS, puis compilez le générateur de données :

```bash theme={null}
git clone https://github.com/gregrahn/tpcds-kit.git
cd tpcds-kit/tools
make
```

Ensuite, générez les données. Le paramètre `-scale` définit le facteur d’échelle.

```bash theme={null}
./dsdgen -scale 1
```

Créez maintenant des tables dans ClickHouse. Les définitions des tables sont disponibles dans [`init.sql`](https://github.com/ClickHouse/ClickHouse/blob/master/tests/benchmarks/tpc-ds/init.sql) dans le dépôt ClickHouse.

Les données peuvent être importées comme suit :

```bash theme={null}
clickhouse-client --format_csv_delimiter '|' --query "INSERT INTO call_center FORMAT CSV" < call_center.dat
clickhouse-client --format_csv_delimiter '|' --query "INSERT INTO catalog_page FORMAT CSV" < catalog_page.dat
clickhouse-client --format_csv_delimiter '|' --query "INSERT INTO catalog_returns FORMAT CSV" < catalog_returns.dat
clickhouse-client --format_csv_delimiter '|' --query "INSERT INTO catalog_sales FORMAT CSV" < catalog_sales.dat
clickhouse-client --format_csv_delimiter '|' --query "INSERT INTO customer FORMAT CSV" < customer.dat
clickhouse-client --format_csv_delimiter '|' --query "INSERT INTO customer_address FORMAT CSV" < customer_address.dat
clickhouse-client --format_csv_delimiter '|' --query "INSERT INTO customer_demographics FORMAT CSV" < customer_demographics.dat
clickhouse-client --format_csv_delimiter '|' --query "INSERT INTO date_dim FORMAT CSV" < date_dim.dat
clickhouse-client --format_csv_delimiter '|' --query "INSERT INTO household_demographics FORMAT CSV" < household_demographics.dat
clickhouse-client --format_csv_delimiter '|' --query "INSERT INTO income_band FORMAT CSV" < income_band.dat
clickhouse-client --format_csv_delimiter '|' --query "INSERT INTO inventory FORMAT CSV" < inventory.dat
clickhouse-client --format_csv_delimiter '|' --query "INSERT INTO item FORMAT CSV" < item.dat
clickhouse-client --format_csv_delimiter '|' --query "INSERT INTO promotion FORMAT CSV" < promotion.dat
clickhouse-client --format_csv_delimiter '|' --query "INSERT INTO reason FORMAT CSV" < reason.dat
clickhouse-client --format_csv_delimiter '|' --query "INSERT INTO ship_mode FORMAT CSV" < ship_mode.dat
clickhouse-client --format_csv_delimiter '|' --query "INSERT INTO store FORMAT CSV" < store.dat
clickhouse-client --format_csv_delimiter '|' --query "INSERT INTO store_returns FORMAT CSV" < store_returns.dat
clickhouse-client --format_csv_delimiter '|' --query "INSERT INTO store_sales FORMAT CSV" < store_sales.dat
clickhouse-client --format_csv_delimiter '|' --query "INSERT INTO time_dim FORMAT CSV" < time_dim.dat
clickhouse-client --format_csv_delimiter '|' --query "INSERT INTO warehouse FORMAT CSV" < warehouse.dat
clickhouse-client --format_csv_delimiter '|' --query "INSERT INTO web_page FORMAT CSV" < web_page.dat
clickhouse-client --format_csv_delimiter '|' --query "INSERT INTO web_returns FORMAT CSV" < web_returns.dat
clickhouse-client --format_csv_delimiter '|' --query "INSERT INTO web_sales FORMAT CSV" < web_sales.dat
clickhouse-client --format_csv_delimiter '|' --query "INSERT INTO web_site FORMAT CSV" < web_site.dat
```

Ensuite, exécutez les requêtes générées.

<div id="queries">
  ## Requêtes
</div>

Les 99 requêtes TPC-DS sont disponibles [ici](https://github.com/ClickHouse/ClickHouse/tree/master/tests/benchmarks/tpc-ds/queries), dans le dépôt de ClickHouse.

Pour obtenir un comportement compatible avec la norme SQL et les résultats attendus, appliquez les paramètres définis dans [`settings.json`](https://github.com/ClickHouse/ClickHouse/blob/master/tests/benchmarks/tpc-ds/settings.json).
Consultez le [README](https://github.com/ClickHouse/ClickHouse/blob/master/tests/benchmarks/tpc-ds/README.md) pour connaître les problèmes connus et les remarques concernant certaines requêtes.

**Conformité**

Les résultats des requêtes correspondent aux résultats officiels, sauf mention contraire. De légères différences de précision peuvent exister ; elles sont autorisées par la spécification TPC-DS.
