Плагины#
Trino использует архитектуру плагинов для расширения своих возможностей и интеграции с различными источниками данных и другими системами. Trino включает множество плагинов как часть бинарных пакетов — в частности, tarball и Docker image.
Плагины реализуют некоторые из следующих возможностей:
Additional types and global functions
Block encodings
Resource group configuration managers
Session property configuration managers
Exchange managers
Spooling managers
Все плагины являются опциональными для использования в 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.
Plugin directory |
Description |
Maven coordinates |
Download |
|---|---|---|---|
ai-functions |
|||
bigquery |
|||
blackhole |
|||
cassandra |
|||
clickhouse |
|||
delta-lake |
|||
druid |
|||
duckdb |
|||
elasticsearch |
|||
example-http |
|||
exasol |
|||
exchange-filesystem |
Fault-tolerant execution exchange file system |
||
exchange-hdfs |
Fault-tolerant execution exchange file system for HDFS |
||
faker |
|||
functions-python |
|||
geospatial |
|||
google-sheets |
|||
hive |
|||
http-event-listener |
|||
http-server-event-listener |
HTTP server event listener |
||
hudi |
|||
iceberg |
|||
ignite |
|||
jmx |
|||
kafka |
|||
kafka-event-listener |
|||
lakehouse |
|||
loki |
|||
mariadb |
|||
memory |
|||
ml |
|||
mongodb |
|||
mysql |
|||
mysql-event-listener |
|||
opa |
|||
openlineage |
|||
opensearch |
|||
oracle |
|||
password-authenticators |
Password authentication |
||
pinot |
|||
postgresql |
|||
prometheus |
|||
ranger |
|||
redis |
|||
redshift |
|||
resource-group-managers |
|||
session-property-managers |
|||
singlestore |
|||
snowflake |
|||
spooling-filesystem |
Server side support for Протокол спулинга |
||
sqlserver |
|||
teradata-functions |
|||
thrift |
|||
tpcds |
|||
tpch |
|||
vertica |