TPC-H-Erweiterung
Die tpch-Erweiterung implementiert den Datengenerator und die Abfragen für den TPC-H-Benchmark.
Installation und Laden
Die tpch-Erweiterung ist in einigen DuckDB-Builds standardmäßig enthalten, andernfalls wird sie beim ersten Gebrauch transparent automatisch geladen.
Wenn Sie sie manuell installieren und laden möchten, führen Sie aus:
INSTALL tpch;LOAD tpch;Benchmarking mit der TPC-H-Last
Um die vollständige TPC-H-Last mit DuckDB auszuführen, verwenden Sie das eigenständige DuckDB-TPC-H-Implementierungsprojekt.
Verwendung
Daten erzeugen
Um Daten für den Scale Factor 1 zu erzeugen, verwenden Sie:
CALL dbgen(sf = 1);Der Aufruf von dbgen räumt vorhandene TPC-H-Tabellen nicht auf.
Um vorhandene Tabellen zu entfernen, verwenden Sie DROP TABLE, bevor Sie dbgen ausführen:
DROP TABLE IF EXISTS customer;DROP TABLE IF EXISTS lineitem;DROP TABLE IF EXISTS nation;DROP TABLE IF EXISTS orders;DROP TABLE IF EXISTS part;DROP TABLE IF EXISTS partsupp;DROP TABLE IF EXISTS region;DROP TABLE IF EXISTS supplier;Eine Abfrage ausführen
Um eine Abfrage auszuführen, z. B. Query 4, verwenden Sie:
PRAGMA tpch(4);| o_orderpriority | order_count |
|---|---|
| 1-URGENT | 10594 |
| 2-HIGH | 10476 |
| 3-MEDIUM | 10410 |
| 4-NOT SPECIFIED | 10556 |
| 5-LOW | 10487 |
Abfragen auflisten
Um alle 22 Abfragen aufzulisten, führen Sie aus:
FROM tpch_queries();Diese Funktion gibt eine Tabelle mit den Spalten query_nr und query zurück.
Erwartete Antworten auflisten
Um die erwarteten Ergebnisse für alle Abfragen bei den Scale Factors 0,01, 0,1 und 1 zu erzeugen, führen Sie aus:
FROM tpch_answers();Diese Funktion gibt eine Tabelle mit den Spalten query_nr, scale_factor und answer zurück.
Schema erzeugen
Es ist möglich, das Schema von TPC-H ohne Daten zu erzeugen, indem der Scale Factor auf 0 gesetzt wird:
CALL dbgen(sf = 0);Parameter des Datengenerators
Die Datengenerator-Funktion dbgen hat die folgenden Parameter:
| Name | Typ | Beschreibung |
|---|---|---|
catalog |
VARCHAR |
Zielkatalog |
children |
UINTEGER |
Anzahl der Partitionen |
overwrite |
BOOLEAN |
(Nicht verwendet) |
sf |
DOUBLE |
Scale Factor |
step |
UINTEGER |
Definiert die zu erzeugende Partition, indexiert von 0 bis children - 1. Muss angegeben werden, wenn das Argument children gesetzt ist |
suffix |
VARCHAR |
Hängt das suffix an Tabellennamen an |
Vorab erzeugte Datensätze
Vorab erzeugte DuckDB-Datenbanken für TPC-H stehen zum Download bereit:
tpch-sf1.db(250 MB)tpch-sf3.db(754 MB)tpch-sf10.db(2,5 GB)tpch-sf30.db(7,6 GB)tpch-sf100.db(26 GB)tpch-sf300.db(78 GB)tpch-sf1000.db(265 GB)tpch-sf3000.db(796 GB)
Einschränkung
Die Funktion tpch(⟨query_id⟩){:.language-sql .highlight} führt eine feste TPC-H-Abfrage mit vordefinierten Bind-Parametern (auch Substitutionsparameter genannt) aus. Die Abfrageparameter können mit der tpch-Erweiterung nicht geändert werden. Um die Abfragen mit den vom TPC-H-Benchmark vorgegebenen Parametern auszuführen, verwenden Sie eine TPC-H-Framework-Implementierung.