Saltar a contenido

Trino

Forma parte del lakehouse (visión general y esquema de interacciones).

La plantilla Trino (categoría Procesamiento) despliega un coordinador y workers Trino con un catálogo lakehouse preconectado a la instancia Apache Iceberg elegida.

Trino no es una base de datos: es un motor SQL sin almacenamiento. El trabajo se reparte en tres papeles — el catálogo Apache Iceberg sabe qué tablas existen y qué archivos las componen, el bucket S3 contiene los datos en Parquet, y Trino ejecuta el SQL en memoria, repartido entre sus workers. De ahí el orden de despliegue: primero el catálogo, después Trino, en el mismo namespace y sobre el mismo bucket.

Opciones de despliegue

Campo Función
Catálogo Apache Iceberg (Polaris) (obligatorio) Instancia Apache Iceberg del mismo namespace. Fijado en la creación.
Catálogo Iceberg (warehouse) Nombre del catálogo en Polaris (lakehouse por defecto).
Bucket S3 del warehouse (pestaña Almacenamiento) El mismo bucket que el del catálogo: selecciónelo para rellenar endpoint, región y claves.
Endpoint S3, Región S3, Access Key ID, Secret Access Key (pestaña Almacenamiento) Rellenados por el selector de bucket, modificables después — entrada manual para un S3 externo. us-east-1 por defecto para la región.
Número de workers (pestaña Capacidad) 1 por defecto.
Memoria del coordinador, Memoria por worker (pestaña Capacidad) 3Gi cada una por defecto. Mantener ≥ 3 Gi: el heap JVM está fijado en 1400M y el resto es fuera de heap — se ha observado un OOM con 2 Gi bajo carga.

Conectarse

El inicio de sesión usa su cuenta de la plataforma (OpenID Connect), y el acceso se concede desde Acceso a los usuarios o grupos deseados — véase Acceso y permisos. Tres puertas de entrada:

  • La interfaz web, https://<nombre>-<namespace>.<dominio>/ui/: una consola de supervisión — consultas en curso y pasadas, estado del clúster. No es un editor SQL, no sirve para escribir consultas;
  • Un cliente SQL: trino --server https://… --external-authentication, que abre el navegador para iniciar sesión; o JDBC con externalAuthentication=true, para DBeaver o una herramienta de restitución de terceros;
  • Un notebook de JupyterHub del mismo namespace: la variable TRINO_HOST ya está definida (nombre:8080, acceso interno al namespace), suficiente para conectar trino-python-client sin salir del clúster.

Consultar el lakehouse

CREATE SCHEMA lakehouse.ventas;
CREATE TABLE lakehouse.ventas.pedidos AS SELECT 1 AS id, 'test' AS etiqueta;
SELECT * FROM lakehouse.ventas.pedidos;

Los archivos Parquet y los metadatos Iceberg aparecen en el bucket bajo <esquema>/<tabla>-<uuid>/.

Es el mismo catálogo que Spark Connect, PyIceberg y los jobs Spark: una tabla escrita por un tratamiento Spark es legible por Trino acto seguido, y a la inversa. Una sola copia de los datos, varios motores — ese es todo el sentido del lakehouse.

Lo que Trino no hace aquí

  • Sin federación de fuentes: hay un solo catálogo configurado, lakehouse, sobre la instancia Apache Iceberg elegida. Los catálogos de demostración del chart original (tpch, tpcds) están retirados, y no se expone en el formulario ningún conector hacia una base de datos aplicativa (PostgreSQL, MySQL…). Consultar una base así desde Trino exigiría añadir un catálogo en los valores del chart.
  • Sin transformaciones pesadas y largas: para los tratamientos distribuidos costosos, Spark Connect para lo interactivo y los jobs Spark para el batch.

Primer arranque

Cuente de 3 a 4 minutos antes de la primera consulta, el tiempo de arrancar la JVM y cargar los plugins. La tarjeta pasa a Running antes de que Trino responda.

Eliminación

Eliminar una instancia Trino también retira su cliente OpenID de la plataforma.