Skip to main content
Version 3.0

Integrations - Trino

ChartVersion3.0.1TypeapplicationAppVersion478
CompatibilityKubernetes1.32+OpenShift4.19+Rancher2.10.x+

Overview

The tdp-trino chart integrates data sources through catalogs defined in tdp-trino.catalogs.
Each catalog is a Trino connector properties block and becomes available for queries as catalog.schema.object.

The examples below cover ClickHouse, Hive/Iceberg with S3, Kafka, and PostgreSQL.
Use them as starting points and adjust hosts, ports, Secrets, and properties for your environment.

Configuration Pattern

Example
helm upgrade --install <RELEASE_NAME> oci://registry.tecnisys.com.br/tdp/charts/tdp-trino -n <NAMESPACE> -f values.yaml

Define catalogs under tdp-trino.catalogs:

tdp-trino:
catalogs:
<CATALOG_NAME>: |
connector.name=<CONNECTOR_NAME>
property=value

Default Catalogs

CatalogUse
tpchProvides synthetic TPC-H benchmark data, useful for tests and initial validations.
tpcdsProvides synthetic TPC-DS benchmark data, intended for analytics/data warehouse scenarios.
memoryAllows creating temporary tables kept in memory, useful for simple tests.

PostgreSQL

tdp-trino:
catalogs:
postgresql: |
connector.name=postgresql
connection-url=jdbc:postgresql://<POSTGRESQL_SERVICE>:5432/<DATABASE_NAME>
connection-user=<USERNAME>
connection-password=<PASSWORD>

Prerequisites: PostgreSQL must be reachable from the Trino namespace, the user must have the permissions required by the expected queries, and credentials should be protected through Secrets or external tooling when required.

ClickHouse

tdp-trino:
catalogs:
clickhouse: |
connector.name=clickhouse
connection-url=jdbc:clickhouse://<CLICKHOUSE_SERVICE>:8123/<DATABASE_NAME>
connection-user=<USERNAME>
connection-password=<PASSWORD>
domain-compaction-threshold=1000

Prerequisites: ClickHouse must be deployed and reachable from the cluster network, the HTTP/JDBC port must be accessible to Trino, and passwords should be stored outside plain values when required.

Example for creating a password Secret when needed:

kubectl create secret generic tdp-clickhouse-trino-secret \
--from-literal=password=<PASSWORD> \
--namespace <NAMESPACE>

Hive and Iceberg with S3/Ozone

Use Hive Metastore as the metadata catalog and an S3-compatible endpoint, such as Ozone S3 Gateway or MinIO.

tdp-trino:
catalogs:
hive: |
connector.name=hive
hive.metastore.uri=thrift://<HIVE_METASTORE_SERVICE>:9083
hive.non-managed-table-writes-enabled=true
hive.non-managed-table-creates-enabled=true
fs.native-s3.enabled=true
s3.endpoint=<S3_ENDPOINT>
s3.region=us-east-1
s3.aws-access-key=<S3_ACCESS_KEY>
s3.aws-secret-key=<SECRET_KEY>
s3.path-style-access=true
iceberg: |
connector.name=iceberg
iceberg.catalog.type=hive_metastore
hive.metastore.uri=thrift://<HIVE_METASTORE_SERVICE>:9083
fs.native-s3.enabled=true
s3.endpoint=<S3_ENDPOINT>
s3.region=us-east-1
s3.aws-access-key=<S3_ACCESS_KEY>
s3.aws-secret-key=<SECRET_KEY>
s3.path-style-access=true

Prerequisites: Hive Metastore reachable on the Thrift port, S3-compatible storage reachable by Trino, and storage credentials.

Kafka

tdp-trino:
catalogs:
kafka: |
connector.name=kafka
kafka.nodes=<KAFKA_BOOTSTRAP_SERVICE>:9092
kafka.table-description-dir=/etc/trino/kafka
kafka.default-schema=default
kafka.hide-internal-columns=false
kafka.buffer-size=64kB

Prerequisites: Kafka brokers reachable from Trino, table descriptions when required by the connector model, and Schema Registry when using formats such as Avro or Protobuf.

Ranger and Access Control

Ranger integration is not configured in tdp-trino.catalogs.
It uses tdp-trino.accessControl, additional coordinator files, and often certificates.
See Security - Trino.

Validation

kubectl -n <NAMESPACE> get pods
kubectl -n <NAMESPACE> get configmap
kubectl -n <NAMESPACE> logs deploy/<DEPLOYMENT_NAME>
trino --server http://<TRINO_SERVICE>:8080 --user <USERNAME> --catalog tpch --schema tiny

For HTTPS/LDAP, follow Security - Trino.