Skip to main content

Trino connector

The Gravitino Trino connector loads catalog metadata from Gravitino into Trino automatically. Catalogs created in Gravitino appear in Trino without further Trino configuration.

The connector talks to the Gravitino server API, port 8090 by default. To reach Iceberg catalogs through the Iceberg REST service on port 9001 instead, see Trino via Iceberg REST.

It works through Trino's dynamic catalog management. When the connector reads a catalog from the Gravitino server, it generates a CREATE CATALOG statement and executes it against the running Trino server. Metadata changes reach Trino on the refresh interval, roughly three to ten seconds by default.

Install the plugin first, as described in Install the connector, then create etc/catalog/gravitino.properties on the coordinator.

etc/catalog/gravitino.properties
connector.name=gravitino
gravitino.uri=http://{gravitino_host}:8090
gravitino.metalake={metalake_name}

Catalog naming​

A Gravitino catalog appears in Trino under its own name, addressed as {catalog}.{schema}.{table}.

Setting gravitino.use-single-metalake to false enables multi-metalake mode, where catalogs are addressed as {metalake}.{catalog}.{schema}.{table}. That mode works on connector versions 435-445 and 469-478. On 446-468 the connector logs a warning and starts, but the mode is not fully supported and some operations fail.

Configuration​

PropertyTypeDefaultRequiredDescription
connector.namestring(none)YesAlways gravitino
gravitino.metalakestring(none)YesThe metalake to load catalogs from
gravitino.uristringhttp://localhost:8090NoThe Gravitino server address
gravitino.metadata.refresh-interval-secondsinteger10NoHow often to refresh metadata
gravitino.use-single-metalakebooleantrueNoFalse enables multi-metalake mode
gravitino.trino.skip-catalog-patternsstring(none)NoComma-separated regex patterns for catalogs to exclude, e.g. test_.*
gravitino.trino.skip-version-validationbooleanfalseNoTrue allows an unsupported Trino version, without compatibility guarantees
trino.jdbc.userstringadminNoJDBC user for the local Trino server
trino.jdbc.passwordstring(none)NoJDBC password for the local Trino server
gravitino.client.string(none)NoPrefix for Gravitino client settings, passed through directly

The connector does not need the Gravitino server running when Trino starts; it connects when the server becomes available. An invalid gravitino.client. property raises an exception rather than being ignored, and the accepted set is under Java client configuration.

The connector authenticates to the Gravitino server with simple, basic, OAuth, or Kerberos authentication. See Authentication.