trino README

The project's README from github.com/trinodb/trino. As one markdown file: README.md.

Trino Logo

Trino is a fast distributed SQL query engine for big data analytics.

See the User Manual for deployment instructions and end user documentation.

Trino download Reproducible builds supported Trino Slack Trino: The Definitive Guide book download

Development

See DEVELOPMENT for information about development and release process, code style and guidelines for implementors of Trino plugins.

See CONTRIBUTING for contribution requirements.

Security

See the project security policy for information about reporting vulnerabilities.

Trino supports reproducible builds as of version 449.

Build requirements

Building Trino

Trino is a standard Maven project. Simply run the following command from the project root directory:

./mvnw clean install -DskipTests

On the first build, Maven downloads all the dependencies from the internet and caches them in the local repository (~/.m2/repository), which can take a while, depending on your connection speed. Subsequent builds are faster.

Trino has a comprehensive set of tests that take a considerable amount of time to run, and are thus disabled by the above command. These tests are run by the CI system when you submit a pull request. We recommend only running tests locally for the areas of code that you change.

Running Trino in your IDE

Overview

After building Trino for the first time, you can load the project into your IDE and run the server. We recommend using IntelliJ IDEA. Because Trino is a standard Maven project, you can easily import it into your IDE. In IntelliJ, choose Open Project from the Quick Start box or choose Open from the File menu and select the root pom.xml file.

After opening the project in IntelliJ, double-check that the Java SDK is properly configured for the project:

Running a testing server

The simplest way to run Trino for development is to run the TpchQueryRunner class. It will start a development version of the server that is configured with the TPCH connector. You can then use the CLI to execute queries against this server. Many other connectors have their own *QueryRunner class that you can use when working on a specific connector. The VM option generally required here is --add-modules jdk.incubator.vector, but various *QueryRunner classes might require additional options (if necessary, check the air.test.jvm.additional-arguments property in the pom.xml file of the module from which the runner comes).

Running tests from the IDE

When running individual test classes directly from IntelliJ, you need to configure the JUnit run configuration template. Go to Run/Debug Configurations > Edit Configuration Templates > JUnit > VM options and set the value to -ea --add-modules=jdk.incubator.vector. Some tests may rely on JVM options provided by airbase (e.g. -XX:-OmitStackTraceInFastThrow), so check for that too.

Running the full server

Trino comes with sample configuration that should work out-of-the-box for development. Use the following options to create a run configuration:

The working directory should be the trino-server-dev subdirectory. In IntelliJ, using $MODULE_DIR$ accomplishes this automatically.

If VM options doesn't exist in the dialog, you need to select Modify options and enable Add VM options.

To adjust which plugins are enabled for the development server, adjust the value of plugin.bundles in config.properties. Each entry in this list must represent a plugin specified by one of the following options:

If you want to use a plugin in a catalog, you must add a corresponding <catalog_name>.properties file to testing/trino-server-dev/etc/catalog.

Running the CLI

Start the CLI to connect to the server and run SQL queries:

client/trino-cli/target/trino-cli-*-executable.jar

Run a query to see the nodes in the cluster:

SELECT * FROM system.runtime.nodes;

Run a query against the TPCH connector:

SELECT * FROM tpch.tiny.region;

trino (trinodb/trino)

hadoop
Searching Database…

13.3K ·GitHub
What is this?Trino is a fast distributed SQL query engine for big data analytics — you run it as a server (or cluster) and query large datasets with standard SQL. It was formerly known as PrestoSQL.
Is this something I install on my laptop, or a server I deploy and connect to?It's a server, not a desktop app: you deploy the Trino engine and connect to it with the bundled trino-cli JAR or any JDBC client to run queries. End-user and deployment docs live at trino.io.
How do I get it up and running from this repo?It's a standard Maven project: run ./mvnw clean install -DskipTests from the repo root, then load it into IntelliJ IDEA and launch the DevelopmentServer or TpchQueryRunner for a dev server with sample config.
What do I need installed before I can build it?A Mac or Linux machine with 64-bit Java 25.0.1+ and Docker. On Apple Silicon you also need Rosetta 2, because some npm packages used to build the web UI are x86-only.
Any gotchas when building or testing locally?Turn off SELinux or anything else blocking write access to the checkout, or containers can't mount the source tree. The full test suite is slow, so -DskipTests leaves it to CI on pull requests.
Will it run on Windows, or is it Mac and Linux only?The build requirements name only Mac OS X or Linux; Windows isn't mentioned. Being pure Java it can probably run elsewhere, but the README only confirms those two.
What's the deal with the PrestoSQL name?Trino is the former PrestoSQL — the engine was renamed, and both 'presto' and 'prestodb' remain among the repository topics, so material under the old names still points to this project.
Does Trino produce reproducible builds?Yes — as of version 449 Trino supports reproducible builds, so released artifacts can be verified against the published source.
How can I peek at what my cluster is doing?Connect with the CLI and query system tables: SELECT * FROM system.runtime.nodes lists the nodes in the cluster, and the bundled tpch.tiny schema is handy for a first test query.
What are similar projects?starrocks, doris, druid, presto, spark, ClickHouse, duckdb, predictionio
Creator
trinodb
Size
319.5 MB
Stars
13.3K
Age
7y
Commits · 90 Days