Integrations - Trino
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
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
| Catalog | Use |
|---|---|
tpch | Provides synthetic TPC-H benchmark data, useful for tests and initial validations. |
tpcds | Provides synthetic TPC-DS benchmark data, intended for analytics/data warehouse scenarios. |
memory | Allows 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.