Trino
Configure in the UI
This plugin can be configured directly in the Marmot UI with a step-by-step wizard.
View GuideThe Trino plugin discovers all catalogs (connected data sources like PostgreSQL, Hive, Iceberg, S3, etc.), their schemas, and tables/views.
Required Permissions
The connecting user needs SELECT access to system.metadata.catalogs, system.metadata.table_comments, and each catalog's information_schema. A read-only user with access to these system tables is sufficient.
AI Enrichment
When your Trino instance has AI functions configured, the plugin can automatically enrich discovered assets:
- Auto-generate descriptions (
ai_generate_descriptions: true) — Uses the AI connector'sai_genfunction to produce one-sentence descriptions for tables that have no comment. - Auto-classify tables (
ai_classify_tables: true) — Uses the AI connector'sai_classifyfunction to assign a category label (e.g.,analytics,pii,financial) to each table, added as a tag likeai-category:pii.
AI Setup
- Configure an AI connector in your Trino installation (e.g.,
ai.properties) - Set
ai_catalogto the catalog name of that connector - Enable
ai_generate_descriptionsand/orai_classify_tables - Optionally customise
ai_classify_labelsandai_max_enrichments
AI enrichment is best-effort - failures are logged as warnings but do not prevent normal discovery from completing.re logged as warnings but do not prevent normal discovery from completing.
Example Configuration
host: "trino.company.com"
port: 8080
user: "marmot_reader"
secure: false
exclude_catalogs:
- "system"
- "jmx"
tags:
- "trino"
- "production"
Configuration
The following configuration options are available:
| Property | Type | Required | Description |
|---|---|---|---|
| access_token | string | false | JWT bearer token |
| ai_catalog | string | false | Name of the AI connector catalog (empty = disabled) |
| ai_classify_labels | []string | false | Custom classification labels |
| ai_classify_tables | bool | false | Auto-classify tables into categories |
| ai_generate_descriptions | bool | false | Auto-generate descriptions for undocumented tables |
| ai_max_enrichments | int | false | Max tables to enrich with AI (0 = unlimited) |
| catalog | string | false | Specific catalog to discover (all if empty) |
| exclude_catalogs | []string | false | Catalogs to skip |
| external_links | []ExternalLink | false | External links to show on all assets |
| filter | Filter | false | Filter discovered assets by name (regex) |
| host | string | false | Trino coordinator hostname |
| include_catalogs | bool | false | Create catalog-level assets |
| include_columns | bool | false | Include column info in table metadata |
| include_stats | bool | false | Collect table statistics (can be slow) |
| password | string | false | Password (requires HTTPS) |
| port | int | false | Trino coordinator port |
| secure | bool | false | Use HTTPS |
| ssl_cert_path | string | false | Path to TLS certificate file |
| tags | TagsConfig | false | Tags to apply to discovered assets |
| user | string | false | Username for authentication |
Available Metadata
The following metadata fields are available:
| Field | Type | Description |
|---|---|---|
| catalog | string | Parent catalog name |
| catalog | string | Parent catalog name |
| catalog_name | string | Trino catalog name |
| column_name | string | Column name |
| comment | string | Table comment |
| data_type | string | Column data type |
| is_nullable | string | YES or NO |
| ordinal_position | int | Column position |
| row_count | int64 | Estimated row count |
| schema | string | Parent schema name |
| schema_name | string | Schema name |
| table_name | string | Table or view name |
| table_type | string | BASE TABLE or VIEW |