Zum Inhalt springen

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:

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.