Плагины#

Trino использует архитектуру плагинов для расширения своих возможностей и интеграции с различными источниками данных и другими системами. Trino включает множество плагинов как часть бинарных пакетов — в частности, tarball и Docker image.

Плагины реализуют некоторые из следующих возможностей:

Все плагины являются опциональными для использования в Trino, поскольку они поддерживают специфическую функциональность, которая может быть не нужна в вашем сценарии использования. Плагины находятся в папке plugin вашей установки Trino и автоматически загружаются при запуске Trino.

Загрузка плагинов#

Как правило, загрузка плагинов не требуется, поскольку бинарные пакеты Trino уже включают множество плагинов.

Каждый релиз Trino публикует каждый плагин в виде ZIP-архива в Maven Central Repository. См. Список плагинов для получения подробной информации. Конкретное расположение определяется на основе Maven coordinates каждого плагина, указанных в pom.xml исходного кода плагина.

Например, плагин PostgreSQL connector можно найти в директории plugin/trino-postgresql, а файл pom.xml содержит следующий раздел идентификатора:

<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>

Таким образом, Maven coordinates имеют вид io.trino:trino-postgresql:470 с указанием версии или io.trino:trino-postgresql без версии. Используйте это значение для поиска артефакта.

После поиска нажмите View all рядом с Latest version, затем нажмите Browse, чтобы найти ZIP-файл нужной версии.

Эти coordinates преобразуются в путь к ZIP-архиву в Maven Central Repository. Используйте этот URL для загрузки плагина.

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

Доступность плагинов от сторонних проектов и организаций сильно варьируется и может требовать сборки плагина из исходного кода.

При загрузке плагина необходимо убедиться, что его версия совместима с вашей установкой Trino. Полная совместимость гарантируется только при использовании одной и той же версии Trino для сборки плагина и его развертывания, поэтому рекомендуется использовать одинаковые версии. Используйте документацию или исходный код конкретного плагина для проверки совместимости, а также обратитесь к SPI compatibility notes для получения дополнительных технических деталей.

Установка плагинов#

Чтобы установить плагин, распакуйте ZIP-архив в директорию внутри plugin вашей установки Trino на всех узлах кластера. Директория содержит все необходимые ресурсы.

Например, для плагина с именем example-plugin версии 1.0 распакуйте архив example-plugin-1.0.zip. Переименуйте получившуюся директорию example-plugin-1.0 в example-plugin и скопируйте её в директорию plugin вашей установки Trino на всех worker-узлах и coordinator кластера.

Note

Каждый плагин Trino должен находиться в отдельной директории внутри plugin. Не размещайте JAR-файлы напрямую в директории plugin. Каждая директория плагина должна содержать только JAR-файлы. Любые поддиректории и другие файлы игнорируются.

По умолчанию директория плагинов — это plugin, расположенная относительно директории установки Trino, однако её можно изменить с помощью переменной конфигурации plugin.dir при использовании launcher. Docker image использует путь /usr/lib/trino/plugin.

Перезапустите Trino, чтобы начать использовать плагин.

Проект trino-packages project содержит примеры проектов для создания tarball и Docker image с набором плагинов путём установки только необходимых плагинов.

Удаление плагинов#

Плагины можно безопасно удалить, если их функциональность не требуется или нежелательна в вашем кластере Trino. Используйте следующие шаги для безопасного удаления во всём кластере:

  • Остановите Trino на всех узлах.

  • Удалите директорию в папке plugin установки Trino на всех узлах.

  • Запустите Trino на всех узлах.

См. Список плагинов для соответствующих имён директорий.

Для повторяющихся развертываний вы можете удалить плагин из бинарного пакета вашей установки, создав кастомный tarball или кастомный Docker image.

Разработка плагинов#

Вы можете разрабатывать плагины в собственном fork репозитория Trino или в отдельном проекте. См. Руководство разработчика для получения дополнительных подробностей.

Список плагинов#

Следующий список плагинов доступен в проекте Trino. Они включены в процесс сборки и релиза, а также в итоговые бинарные пакеты. Вы также можете загрузить их из Maven Central Repository, используя указанные coordinates.

List of plugins#

Plugin directory

Description

Maven coordinates

Download

ai-functions

Функции AI

io.trino:trino-ai-functions

trino-ai-functions-latest.zip

bigquery

BigQuery connector

io.trino:trino-bigquery

trino-bigquery-latest.zip

blackhole

Black Hole connector

io.trino:trino-blackhole

trino-blackhole-latest.zip

cassandra

Cassandra connector

io.trino:trino-cassandra

trino-cassandra-latest.zip

clickhouse

Коннектор ClickHouse

io.trino:trino-clickhouse

trino-clickhouse-latest.zip

delta-lake

Коннектор Delta Lake

io.trino:trino-delta-lake

trino-delta-lake-latest.zip

druid

Druid connector

io.trino:trino-druid

trino-druid-latest.zip

duckdb

Коннектор DuckDB

io.trino:trino-duckdb

trino-duckdb-latest.zip

elasticsearch

Elasticsearch connector

io.trino:trino-elasticsearch

trino-elasticsearch-latest.zip

example-http

Пример HTTP-коннектора

io.trino:trino-example-http

trino-example-http-latest.zip

exasol

Exasol connector

io.trino:trino-exasol

trino-exasol-latest.zip

exchange-filesystem

Fault-tolerant execution exchange file system

io.trino:trino-exchange-filesystem

trino-exchange-filesystem-latest.zip

exchange-hdfs

Fault-tolerant execution exchange file system for HDFS

io.trino:trino-exchange-hdfs

trino-exchange-hdfs-latest.zip

faker

Faker connector

io.trino:trino-faker

trino-faker-latest.zip

functions-python

Python user-defined functions

io.trino:trino-functions-python

trino-functions-python-latest.zip

geospatial

Геопространственные функции

io.trino:trino-geospatial

trino-geospatial-latest.zip

google-sheets

Google Sheets connector

io.trino:trino-google-sheets

trino-google-sheets-latest.zip

hive

Коннектор Hive

io.trino:trino-hive

trino-hive-latest.zip

http-event-listener

HTTP event listener

io.trino:trino-http-event-listener

trino-http-event-listener-latest.zip

http-server-event-listener

HTTP server event listener

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

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

hudi

Hudi connector

io.trino:trino-hudi

trino-hudi-latest.zip

iceberg

Коннектор Iceberg

io.trino:trino-iceberg

trino-iceberg-latest.zip

ignite

Ignite connector

io.trino:trino-ignite

trino-ignite-latest.zip

jmx

Коннектор JMX

io.trino:trino-jmx

trino-jmx-latest.zip

kafka

Коннектор Kafka

io.trino:trino-kafka

trino-kafka-latest.zip

kafka-event-listener

Kafka event listener

io.trino:trino-kafka-event-listener

trino-kafka-event-listener-latest.zip

lakehouse

Коннектор Lakehouse

trino-lakehouse-latest.zip

loki

Loki connector

io.trino:trino-loki

trino-loki-latest.zip

mariadb

MariaDB connector

io.trino:trino-mariadb

trino-mariadb-latest.zip

memory

Коннектор Memory

io.trino:trino-memory

trino-memory-latest.zip

ml

Функции машинного обучения

io.trino:trino-ml

trino-ml-latest.zip

mongodb

MongoDB connector

io.trino:trino-mongodb

trino-mongodb-latest.zip

mysql

MySQL connector

io.trino:trino-mysql

trino-mysql-latest.zip

mysql-event-listener

MySQL event listener

io.trino:trino-mysql-event-listener

trino-mysql-event-listener-latest.zip

opa

Контроль доступа Open Policy Agent

io.trino:trino-opa

trino-opa-latest.zip

openlineage

OpenLineage event listener

io.trino:trino-openlineage

trino-openlineage-latest.zip

opensearch

OpenSearch connector

io.trino:trino-opensearch

trino-opensearch-latest.zip

oracle

Oracle connector

io.trino:trino-oracle

trino-oracle-latest.zip

password-authenticators

Password authentication

io.trino:trino-password-authenticators

trino-password-authenticators-latest.zip

pinot

Pinot connector

io.trino:trino-pinot

trino-pinot-latest.zip

postgresql

Коннектор PostgreSQL

io.trino:trino-postgresql

trino-postgresql-latest.zip

prometheus

Prometheus connector

io.trino:trino-prometheus

trino-prometheus-latest.zip

ranger

Управление доступом Ranger

io.trino:trino-ranger

trino-ranger-latest.zip

redis

Коннектор Redis

io.trino:trino-redis

trino-redis-latest.zip

redshift

Redshift connector

io.trino:trino-redshift

trino-redshift-latest.zip

resource-group-managers

Resource groups

io.trino:trino-resource-group-managers

trino-resource-group-managers-latest.zip

session-property-managers

Менеджеры session properties

io.trino:trino-session-property-managers

trino-session-property-managers-latest.zip

singlestore

SingleStore connector

io.trino:trino-singlestore

trino-singlestore-latest.zip

snowflake

Snowflake connector

io.trino:trino-snowflake

trino-snowflake-latest.zip

spooling-filesystem

Server side support for Протокол спулинга

io.trino:trino-spooling-filesystem

trino-spooling-filesystem-latest.zip

sqlserver

Коннектор SQL Server

io.trino:trino-sqlserver

trino-sqlserver-latest.zip

teradata-functions

Функции Teradata

io.trino:trino-teradata-functions

trino-teradata-functions-latest.zip

thrift

Thrift connector

io.trino:trino-thrift

trino-thrift-latest.zip

tpcds

TPC-DS connector

io.trino:trino-tpcds

trino-tpcds-latest.zip

tpch

TPC-H connector

io.trino:trino-tpch

trino-tpch-latest.zip

vertica

Коннектор Vertica

io.trino:trino-vertica

trino-vertica-latest.zip