Plugins#

Trino uses a plugin architecture to extend its capabilities and integrate with various data sources and other systems. Trino includes many plugins as part of the binary packages - specifically the tarball and the Docker image.

Plugins implement some of the following capabilities:

All plugins are optional for your use of Trino because they support specific functionality that is potentially not needed for your use case. Plugins are located in the plugin folder of your Trino installation and are loaded automatically during Trino startup.

Download#

Typically, downloading a plugin is not necessary because Trino binaries include many plugins as part of the binary package.

Every Trino release publishes each plugin as a ZIP archive to the Maven Central Repository. Refer to [plugins-list] for details. The specific location is derived from the Maven coordinates of each plugin as defined in the pom.xml of the source code for the plugin.

For example, the PostgreSQL connector plugin can be found in the plugin/trino-postgresql directory, and the pom.xml file contains the following identifier section:

<parent>
    <groupId>io.trino</groupId>
    <artifactId>trino-root</artifactId>
    <version>470</version>
    <relativePath>../../pom.xml</relativePath>
</parent>

<artifactId>trino-postgresql</artifactId>
<packaging>trino-plugin</packaging>

The Maven coordinates are therefore io.trino:trino-postgresql:470 with version or io.trino:trino-postgresql without version. Use this term for a search to locate the artifact.

After searching, click View all next to Latest version, then click Browse to find the ZIP file for the desired version.

The coordinates translate into a path to the ZIP archive on the Maven Central Repository. Use this URL to download the plugin.

https://repo1.maven.org/maven2/io/trino/trino-postgresql/470/trino-postgresql-470.zip

Availability of plugins from other projects and organizations varies widely, and may require building a plugin from source.

When downloading a plugin you must ensure to download a version of the plugin that is compatible with your Trino installation. Full compatibility is only guaranteed when using the same Trino version used for the plugin build and the deployment, and therefore using the same version is recommended. Use the documentation or the source code of the specific plugin to confirm and refer to the SPI compatibility notes for further technical details.

Installation#

To install a plugin, extract the ZIP archive into a directory in the plugin directory of your Trino installation on all nodes of the cluster. The directory contains all necessary resources.

For example, for a plugin called example-plugin with a version of 1.0, extract the example-plugin-1.0.zip archive. Rename the resulting directory example-plugin-1.0 to example-plugin and copy it into the plugin directory of your Trino installation on all workers and the coordinator of the cluster.

Note

Every Trino plugin must be in a separate directory underneath the plugin directory. Do not put JAR files directly into the plugin directory. Each plugin directory should only contain JAR files. Any subdirectories and other files are ignored.

By default, the plugin directory is the plugin directory relative to the directory in which Trino is installed, but it is configurable using the configuration variable plugin.dir with the launcher. The Docker image uses the path /usr/lib/trino/plugin.

Restart Trino to use the plugin.

Removal#

Plugins can be safely removed if the functionality is not needed or desired on your Trino cluster. Use the following steps for a safe removal across the cluster:

  • Shut down Trino on all nodes.

  • Delete the directory in the plugin folder of the Trino installation on all nodes.

  • Start Trino on all nodes.

Refer to the List of plugins for relevant directory names.

For repeated deployments, you can remove the plugin from the binary package for your installation by creating a custom tarball or a custom Docker image.

Development#

You can develop plugins in your own fork of the Trino codebase or a separate project. Refer to the Developer guide for further details.

List of plugins#

The following list of plugins is available from the Trino project. They are included in the build and release process and the resulting the binary packages. You can also download them from the Maven Central Repository with the listed coordinates.

List of plugins#

Plugin directory

Description

Maven coordinates

Download

ai-functions

AI functions

io.trino:trino-ai-functions

trino-ai-functions-474.zip

bigquery

BigQuery connector

io.trino:trino-bigquery

trino-bigquery-474.zip

blackhole

Black Hole connector

io.trino:trino-blackhole

trino-blackhole-474.zip

cassandra

Cassandra connector

io.trino:trino-cassandra

trino-cassandra-474.zip

clickhouse

ClickHouse connector

io.trino:trino-clickhouse

trino-clickhouse-474.zip

delta-lake

Delta Lake connector

io.trino:trino-delta-lake

trino-delta-lake-474.zip

druid

Druid connector

io.trino:trino-druid

trino-druid-474.zip

duckdb

DuckDB connector

io.trino:trino-duckdb

trino-duckdb-474.zip

elasticsearch

Elasticsearch connector

io.trinotrino-elasticsearch

trino-elasticsearch-474.zip

example-http

Example HTTP connector

io.trino:trino-example-http

trino-example-http-474.zip

exasol

Exasol connector

io.trino:trino-exasol

trino-exasol-474.zip

exchange-filesystem

Fault-tolerant execution exchange file system

io.trino:trino-exchange-filesystem

trino-exchange-filesystem-474.zip

exchange-hdfs

Fault-tolerant execution exchange file system for HDFS

io.trino:trino-exchange-hdfs

trino-exchange-hdfs-474.zip

faker

Faker connector

io.trino:trino-faker

trino-faker-474.zip

functions-python

Python user-defined functions

io.trino:trino-functions-python

trino-functions-python-474.zip

geospatial

Geospatial functions

io.trino:trino-geospatial

trino-geospatial-474.zip

google-sheets

Google Sheets connector

io.trino:trino-google-sheets

trino-google-sheets-474.zip

hive

Hive connector

io.trino:trino-hive

trino-hive-474.zip

http-event-listener

HTTP event listener

io.trino:trino-http-event-listener

trino-http-event-listener-474.zip

http-server-event-listener

HTTP server event listener

io.trino:trino-http-server-event-listener

trino-http-server-event-listener-474.zip

hudi

Hudi connector

io.trinotrino-:hudi

trino-hudi-474.zip

iceberg

Iceberg connector

io.trino:trino-iceberg

trino-iceberg-474.zip

ignite

Ignite connector

io.trino:trino-ignite

trino-ignite-474.zip

jmx

JMX connector

io.trino:trino-jmx

trino-jmx-474.zip

kafka

Kafka connector

io.trino:trino-kafka

trino-kafka-474.zip

kafka-event-listener

Kafka event listener

io.trino:trino-kafka-event-listener

trino-kafka-event-listener-474.zip

loki

Loki connector

io.trino:trino-loki

trino-loki-474.zip

mariadb

MariaDB connector

io.trino:trino-mariadb

trino-mariadb-474.zip

memory

Memory connector

io.trino:trino-memory

trino-memory-474.zip

ml

Machine learning functions

io.trino:trino-ml

trino-ml-474.zip

mongodb

MongoDB connector

io.trino:trino-mongodb

trino-mongodb-474.zip

mysql

MySQL connector

io.trino:trino-mysql

trino-mysql-474.zip

mysql-event-listener

MySQL event listener

io.trino:trino-mysql-event-listener

trino-mysql-event-listener-474.zip

opa

Open Policy Agent access control

io.trino:trino-opa

trino-opa-474.zip

openlineage

OpenLineage event listener

io.trino:trino-openlineage

trino-openlineage-474.zip

opensearch

OpenSearch connector

io.trino:trino-opensearch

trino-opensearch-474.zip

oracle

Oracle connector

io.trino:trino-oracle

trino-oracle-474.zip

password-authenticators

Password authentication

io.trino:trino-password-authenticators

trino-password-authenticators-474.zip

pinot

Pinot connector

io.trino:trino-pinot

trino-pinot-474.zip

postgresql

PostgreSQL connector

io.trino:trino-postgresql

trino-postgresql-474.zip

prometheus

Prometheus connector

io.trino:trino-prometheus

trino-prometheus-474.zip

ranger

Ranger access control

io.trino:trino-ranger

trino-ranger-474.zip

redis

Redis connector

io.trino:trino-redis

trino-redis-474.zip

redshift

Redshift connector

io.trino:trino-redshift

trino-redshift-474.zip

resource-group-managers

Resource groups

io.trino:trino-resource-group-managers

trino-resource-group-managers-474.zip

session-property-managers

Session property managers

io.trino:trino-session-property-managers

trino-session-property-managers-474.zip

singlestore

SingleStore connector

io.trino:trino-singlestore

trino-singlestore-474.zip

snowflake

Snowflake connector

io.trino:trino-snowflake

trino-snowflake-474.zip

spooling-filesystem

Server side support for Spooling protocol

io.trino:trino-spooling-filesystem

trino-spooling-filesystem-474.zip

sqlserver

SQL Server connector

io.trino:trino-sqlserver

trino-sqlserver-474.zip

teradata-functions

Teradata functions

io.trino:trino-teradata-functions

trino-teradata-functions-474.zip

thrift

Thrift connector

io.trino:trino-thrift

trino-thrift-474.zip

tpcds

TPC-DS connector

io.trino:trino-tpcds

trino-tpcds-474.zip

tpch

TPC-H connector

io.trino:trino-tpch

trino-tpch-474.zip

vertica

Vertica connector

io.trino:trino-vertica

trino-vertica-474.zip