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

> TPC-DS 벤치마크 데이터 세트와 쿼리입니다.

# TPC-DS (2012)

[Star Schema Benchmark (SSB)](/ko/get-started/sample-datasets/star-schema)와 마찬가지로 TPC-DS는 [TPC-H](/ko/get-started/sample-datasets/tpch)를 기반으로 하지만, 정반대의 접근을 취했습니다. 즉, 복잡한 스노우플레이크 스키마에 데이터를 저장해 필요한 조인 수를 늘렸습니다(테이블 8개가 아니라 24개).
데이터 분포는 치우쳐 있습니다(예: 정규분포 및 포아송 분포).
무작위 치환이 포함된 보고용 및 애드혹 쿼리 99개가 포함되어 있습니다.

**참고**

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

<div id="data-generation-and-import">
  ## 데이터 생성 및 가져오기
</div>

먼저 TPC-DS 리포지토리를 체크아웃한 다음 데이터 생성기를 컴파일합니다:

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

그런 다음 데이터를 생성합니다. `-scale` 매개변수는 스케일 팩터를 지정합니다.

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

이제 ClickHouse에서 테이블을 생성합니다. 테이블 정의는 ClickHouse 리포지토리의 [`init.sql`](https://github.com/ClickHouse/ClickHouse/blob/master/tests/benchmarks/tpc-ds/init.sql)에서 확인할 수 있습니다.

데이터는 다음과 같이 가져올 수 있습니다.

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

그런 다음 생성된 쿼리를 실행하세요.

<div id="queries">
  ## 쿼리
</div>

99개의 TPC-DS 쿼리는 ClickHouse 리포지토리의 [여기](https://github.com/ClickHouse/ClickHouse/tree/master/tests/benchmarks/tpc-ds/queries)에서 확인할 수 있습니다.

SQL 표준과 호환되는 동작과 예상 결과를 얻으려면 [`settings.json`](https://github.com/ClickHouse/ClickHouse/blob/master/tests/benchmarks/tpc-ds/settings.json)의 설정을 적용하세요.
알려진 문제와 특정 쿼리에 대한 참고 사항은 [README](https://github.com/ClickHouse/ClickHouse/blob/master/tests/benchmarks/tpc-ds/README.md)를 참조하세요.

**정확성**

별도 언급이 없는 한 쿼리 결과는 공식 결과와 일치합니다. TPC-DS 사양에서 허용하는 범위 내에서 미세한 정밀도 차이가 있을 수 있습니다.
