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)

Searching Database…

13.3K ·GitHub
这是什么?Trino 是一个用于大数据分析的快速分布式 SQL 查询引擎——你可以把它作为服务器(或集群)运行,然后用标准 SQL 查询海量数据集。它以前叫 PrestoSQL。
这是装在我笔记本上的软件,还是需要部署后再连接的服务器?它是服务器,不是桌面应用:你需要部署 Trino 引擎,然后用自带的 trino-cli JAR 或任意 JDBC 客户端连接它来执行查询。用户文档和部署文档都在 trino.io 上。
怎么用这个仓库把它跑起来?这是一个标准的 Maven 项目:在仓库根目录运行 ./mvnw clean install -DskipTests,然后导入 IntelliJ IDEA,启动 DevelopmentServer 或 TpchQueryRunner,就能得到一个带示例配置的开发服务器。
构建之前需要装好哪些东西?需要一台 Mac 或 Linux 机器,装好 64 位 Java 25.0.1+ 和 Docker。在 Apple Silicon 上还需要 Rosetta 2,因为构建网页界面用到的一些 npm 包只有 x86 版本。
在本地构建或测试时有什么坑?要关掉 SELinux 或其他会阻止向代码检出目录写入的东西,否则容器无法挂载源码树。完整的测试套件跑起来很慢,所以用 -DskipTests 把测试留给 pull request 上的 CI 去跑。
它能在 Windows 上运行吗,还是只支持 Mac 和 Linux?构建要求里只提到 Mac OS X 或 Linux,没有提 Windows。由于它是纯 Java 写的,理论上应该也能在别的系统上跑,但 README 只确认了这两个平台。
PrestoSQL 这个名字是怎么回事?Trino 就是以前的 PrestoSQL——引擎改名了,而仓库的主题标签里仍然保留着 'presto' 和 'prestodb',所以用旧名字的资料仍然指向这个项目。
Trino 的构建结果可以复现吗?可以——从 449 版本开始,Trino 支持可复现构建,发布出来的构建产物可以和公开的源代码进行核对验证。
我想看看我的集群正在干什么,该怎么办?用 CLI 连上去查询系统表:SELECT * FROM system.runtime.nodes 会列出集群中的节点,自带的 tpch.tiny 模式很适合用来跑第一条测试查询。
What are similar projects?starrocks, doris, druid, presto, spark, ClickHouse, duckdb, predictionio
Creator
trinodb
Size
319.6 MB
Stars
13.3K
Age
7y
Commits · 90 Days