Trino alternatives and similar libraries
Based on the "Database" category.
Alternatively, view Trino alternatives based on common mentions on social networks and blogs.
-
Lettuce
Advanced Java Redis client for thread-safe sync, async, and reactive usage. Supports Cluster, Sentinel, Pipelining, and codecs. -
OpenDJ
OpenDJ is an LDAPv3 compliant directory service, which has been developed for the Java platform, providing a high performance, highly available, and secure store for the identities managed by your organization. Its easy installation process, combined with the power of the Java platform makes OpenDJ the simplest, fastest directory to deploy and manage. -
Spring Data JPA MongoDB Expressions
Use the MongoDB query language to query your relational database, typically from frontend.
InfluxDB - Purpose built for real-time analytics at any scale.
Do you think we are missing an alternative of Trino or a related project?
README
Trino is a fast distributed SQL query engine for big data analytics. See the User Manual for deployment instructions and end user documentation.
Development
See [DEVELOPMENT](.github/DEVELOPMENT.md) for information about code style, development process, and guidelines.
See [CONTRIBUTING](.github/CONTRIBUTING.md) for contribution requirements.
Security
See the project [security policy](.github/SECURITY.md) for information about reporting vulnerabilities.
Build requirements
- Mac OS X or Linux
- Java 17.0.4+, 64-bit
- Docker
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 easily can 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:
- Open the File menu and select Project Structure
- In the SDKs section, ensure that JDK 17 is selected (create one if none exist)
- In the Project section, ensure the Project language level is set to 17
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.
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:
- Main Class:
io.trino.server.DevelopmentServer
- VM Options:
-ea -Dconfig=etc/config.properties -Dlog.levels-file=etc/log.properties -Djdk.attach.allowAttachSelf=true
- Working directory:
$MODULE_DIR$
- Use classpath of module:
trino-server-dev
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
.
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;