Trino es un motor de consultas SQL distribuido rápido para análisis de big data.
Consulte el Manual del usuario para obtener instrucciones de implementación y documentación para el usuario final.
Conozca el desarrollo de todos los proyectos de la organización Trino:
Más información en la sección de desarrollo del sitio web incluye diferentes roles, como contribuyentes, revisores y mantenedores, procesos relacionados y otros aspectos.
Consulte la guía para desarrolladores de Trino para obtener información sobre SPI, implementación de conectores y otros complementos, el protocolo del cliente, redacción de pruebas y otros detalles de nivel inferior.
Consulte DESARROLLO para obtener información sobre el estilo del código, el proceso de desarrollo y las pautas.
Consulte CONTRIBUCIÓN para conocer los requisitos de contribución.
Consulte la política de seguridad del proyecto para obtener información sobre cómo informar vulnerabilidades.
Trino admite compilaciones reproducibles a partir de la versión 449.
Trino es un proyecto estándar de Maven. Simplemente ejecute el siguiente comando desde el directorio raíz del proyecto:
./mvnw clean install -DskipTests
En la primera compilación, Maven descarga todas las dependencias de Internet y las almacena en caché en el repositorio local ( ~/.m2/repository
), lo que puede tardar un poco, dependiendo de la velocidad de su conexión. Las compilaciones posteriores son más rápidas.
Trino tiene un conjunto completo de pruebas que tardan una cantidad considerable de tiempo en ejecutarse y, por lo tanto, el comando anterior las desactiva. El sistema CI ejecuta estas pruebas cuando envía una solicitud de extracción. Recomendamos ejecutar pruebas solo localmente para las áreas de código que cambie.
Después de construir Trino por primera vez, puedes cargar el proyecto en tu IDE y ejecutar el servidor. Recomendamos utilizar IntelliJ IDEA. Debido a que Trino es un proyecto estándar de Maven, puedes importarlo fácilmente a tu IDE. En IntelliJ, elija Abrir proyecto en el cuadro Inicio rápido o elija Abrir en el menú Archivo y seleccione el archivo raíz pom.xml
.
Después de abrir el proyecto en IntelliJ, verifique que el SDK de Java esté configurado correctamente para el proyecto:
La forma más sencilla de ejecutar Trino para desarrollo es ejecutar la clase TpchQueryRunner
. Iniciará una versión de desarrollo del servidor que está configurado con el conector TPCH. Luego puede utilizar la CLI para ejecutar consultas en este servidor. Muchos otros conectores tienen su propia clase *QueryRunner
que puede utilizar cuando trabaja en un conector específico.
Trino viene con una configuración de muestra que debería funcionar de inmediato para el desarrollo. Utilice las siguientes opciones para crear una configuración de ejecución:
io.trino.server.DevelopmentServer
-ea -Dconfig=etc/config.properties -Dlog.levels-file=etc/log.properties -Djdk.attach.allowAttachSelf=true
$MODULE_DIR$
trino-server-dev
El directorio de trabajo debe ser el subdirectorio trino-server-dev
. En IntelliJ, usar $MODULE_DIR$
logra esto automáticamente.
Si VM options
no existen en el cuadro de diálogo, debe seleccionar Modify options
y habilitar Add VM options
.
Para ajustar qué complementos están habilitados para el servidor de desarrollo, ajuste el valor de plugin.bundles
en config.properties
. Cada entrada en esta lista debe representar un complemento especificado por una de las siguientes opciones:
pom.xml
o *.pom
que describe un proyecto Maven que produce un complemento.<groupId>:<artifactId>[:<extension>[:<classifier>]]:<version>
. El complemento se cargará a través de Maven y, por lo tanto, debe estar disponible en su repositorio local o en un repositorio remoto. Si desea utilizar un complemento en un catálogo, debe agregar el archivo <catalog_name>.properties
correspondiente a testing/trino-server-dev/etc/catalog
.
Inicie la CLI para conectarse al servidor y ejecutar consultas SQL:
client/trino-cli/target/trino-cli-*-executable.jar
Ejecute una consulta para ver los nodos del clúster:
SELECT * FROM system.runtime.nodes;
Ejecute una consulta en el conector TPCH:
SELECT * FROM tpch.tiny.region;