Trino ist eine schnelle verteilte SQL-Abfrage-Engine für Big-Data-Analysen.
Bereitstellungsanweisungen und Endbenutzerdokumentation finden Sie im Benutzerhandbuch.
Erfahren Sie mehr über die Entwicklung aller Trino-Organisationsprojekte:
Weitere Informationen im Entwicklungsbereich der Website umfassen verschiedene Rollen, wie Mitwirkende, Prüfer und Betreuer, verwandte Prozesse und andere Aspekte.
Weitere Informationen zum SPI, zur Implementierung von Konnektoren und anderen Plugins, zum Client-Protokoll, zum Schreiben von Tests und zu anderen Details auf niedrigerer Ebene finden Sie im Trino-Entwicklerhandbuch.
Informationen zum Codestil, zum Entwicklungsprozess und zu Richtlinien finden Sie unter ENTWICKLUNG.
Die Beitragsanforderungen finden Sie unter BEITRAGEN.
Informationen zum Melden von Schwachstellen finden Sie in der Sicherheitsrichtlinie des Projekts.
Trino unterstützt reproduzierbare Builds ab Version 449.
Trino ist ein Standard-Maven-Projekt. Führen Sie einfach den folgenden Befehl aus dem Projektstammverzeichnis aus:
./mvnw clean install -DskipTests
Beim ersten Build lädt Maven alle Abhängigkeiten aus dem Internet herunter und speichert sie im lokalen Repository ( ~/.m2/repository
), was je nach Verbindungsgeschwindigkeit eine Weile dauern kann. Nachfolgende Builds sind schneller.
Trino verfügt über eine umfassende Reihe von Tests, deren Ausführung viel Zeit in Anspruch nimmt und daher durch den obigen Befehl deaktiviert wird. Diese Tests werden vom CI-System ausgeführt, wenn Sie eine Pull-Anfrage senden. Wir empfehlen, Tests nur lokal für die Codebereiche auszuführen, die Sie ändern.
Nachdem Sie Trino zum ersten Mal erstellt haben, können Sie das Projekt in Ihre IDE laden und den Server ausführen. Wir empfehlen die Verwendung von IntelliJ IDEA. Da Trino ein Standard-Maven-Projekt ist, können Sie es problemlos in Ihre IDE importieren. Wählen Sie in IntelliJ im Feld „Schnellstart“ die Option „Projekt öffnen“ oder im Menü „Datei“ die Option „Öffnen“ und wählen Sie die Stammdatei pom.xml
aus.
Überprüfen Sie nach dem Öffnen des Projekts in IntelliJ noch einmal, ob das Java SDK ordnungsgemäß für das Projekt konfiguriert ist:
Der einfachste Weg, Trino für die Entwicklung auszuführen, ist die Ausführung der TpchQueryRunner
-Klasse. Dadurch wird eine Entwicklungsversion des Servers gestartet, die mit dem TPCH-Connector konfiguriert ist. Anschließend können Sie mit der CLI Abfragen an diesen Server ausführen. Viele andere Connectors verfügen über eine eigene *QueryRunner
-Klasse, die Sie bei der Arbeit an einem bestimmten Connector verwenden können.
Trino wird mit einer Beispielkonfiguration geliefert, die für die Entwicklung sofort einsatzbereit sein sollte. Verwenden Sie die folgenden Optionen, um eine Laufkonfiguration zu erstellen:
io.trino.server.DevelopmentServer
-ea -Dconfig=etc/config.properties -Dlog.levels-file=etc/log.properties -Djdk.attach.allowAttachSelf=true
$MODULE_DIR$
trino-server-dev
Das Arbeitsverzeichnis sollte das Unterverzeichnis trino-server-dev
sein. In IntelliJ wird dies durch die Verwendung $MODULE_DIR$
automatisch erreicht.
Wenn im Dialogfeld keine VM options
vorhanden sind, müssen Sie Modify options
auswählen und Add VM options
aktivieren.
Um anzupassen, welche Plugins für den Entwicklungsserver aktiviert sind, passen Sie den Wert von plugin.bundles
in config.properties
an. Jeder Eintrag in dieser Liste muss ein Plugin darstellen, das durch eine der folgenden Optionen angegeben wird:
pom.xml
oder *.pom
Datei, die ein Maven-Projekt beschreibt, das ein Plugin erstellt.<groupId>:<artifactId>[:<extension>[:<classifier>]]:<version>
. Das Plugin wird über Maven geladen und muss daher in Ihrem lokalen Repository oder einem Remote-Repository verfügbar sein. Wenn Sie ein Plugin in einem Katalog verwenden möchten, müssen Sie eine entsprechende Datei <catalog_name>.properties
zu testing/trino-server-dev/etc/catalog
hinzufügen.
Starten Sie die CLI, um eine Verbindung zum Server herzustellen und SQL-Abfragen auszuführen:
client/trino-cli/target/trino-cli-*-executable.jar
Führen Sie eine Abfrage aus, um die Knoten im Cluster anzuzeigen:
SELECT * FROM system.runtime.nodes;
Führen Sie eine Abfrage für den TPCH-Connector aus:
SELECT * FROM tpch.tiny.region;