---json
{
"canonical": ":tpcds",
"description": "This page talks about the TPC-DS benchmark and how you can use it with Tabulify",
"featured-raster-image": ":docs:system:tpc.png",
"images": [
{ "path": ":docs:system:tpc.ico" },
{ "path": ":docs:system:tpc.png" }
],
"name": "Tpc-ds",
"page_id": "yr3zjjle8idlp03w04k09"
}
---
====== Tabulify - TPC-DS (Benchmark) ======
{{ :howto:database:tpc.svg?200|}}
===== About =====
''Tabulify'' supports the [[http://www.tpc.org/tpcds/|Tpc-Ds]] [[.database:database|database]] benchmark on the following points:
* the [[howto:sql_schema:create_table_with_dependencies|creation of schema]]
* the [[howto:getting_started:6_transfer_data_resource|transfer of data]]
* the execution of [[docs:connection:tpcds_query|TPC-DS queries]]
===== Operations =====
==== Schema Management====
This section shows you how to manage the sub-schema of ''TPC-DS''
=== All tables ===
''tpcds'' - all ''TPC-DS'' tables
* [[docs:tabul:data:list]]
tabul data list *@tpcds
* [[docs:tabul:data:create]]
tabul data create *@tpcds @targetConnection
* [[docs:tabul:data:fill]]
tabul data fill *@tpcds @targetConnection
=== Dwh ===
the data-warehouse tables - all tables without the tables that starts with a ''s'' (ie without the staging tables)
* [[docs:tabul:data:list]]
tabul data list [!s]*@tpcds
* [[docs:tabul:data:create]]
tabul data create [!s]*@tpcds @targetConnection
* [[docs:tabul:data:fill]]
tabul data fill [!s]*@tpcds @targetConnection
=== Store Sales ===
The ''store-sales'' schema has the ''store_sales'' and ''store_return'' star schema (a data-warehouse schema).
* [[docs:tabul:data:list]]
tabul data list --with-dependencies store*@tpcds
path media_type
---------------------- ------------
customer sql/relation
customer_address sql/relation
customer_demographics sql/relation
date_dim sql/relation
household_demographics sql/relation
income_band sql/relation
item sql/relation
promotion sql/relation
reason sql/relation
store sql/relation
store_returns sql/relation
store_sales sql/relation
time_dim sql/relation
* [[docs:tabul:data:create]]: With the same argument, you can create the tables
tabul data create --with-dependencies store*@tpcds @targetConnection
* [[docs:tabul:data:copy]]
tabul data copy --with-dependencies store*@tpcds @targetConnection
This article explains this technic: [[howto:sql_schema:create_table_with_dependencies|how to select a star schema]]
==== Note on the schema ====
The ''TPC-DS'' benchmark does not define the ''B'' column (''business key'') as unique key. Our implementation makes them all unique (except on the ''item'' table where the column is unique only with the start and end date)
Why ? Because when using ''TPC-DS'' as a sample schema, the [[docs:generator:generator|data generator]] will then create data that is consistent with the [[docs:connection:tpcds_query|queries]].
For TPC-DS, a business key is neither a primary key nor a foreign key in the context of the data warehouse schema. It is only used to differentiate new data from update data of the source tables during the data maintenance operations.