How engines connect
The engine connectors (Trino, Spark, Flink and Daft) are for the Gravitino REST interface only. An engine that reads Iceberg tables through the Iceberg REST catalog needs no connector at all: it uses its own Iceberg REST client, set up as described on the Engines pages under Iceberg catalogs.
| You want | Use | Install into the engine |
|---|---|---|
| Every catalog type in the metalake (Hive, JDBC, Paimon, Iceberg) | An engine connector, through the Gravitino REST interface | The connector |
| Iceberg tables only | The engine's built-in Iceberg REST client, through the Iceberg REST catalog | Nothing |
Lance tables are a third path, through the Lance REST service. Each path is a different endpoint, so pick the path first; the engine's page under that path has the setup.
| Path | Endpoint | Default port | What the engine sees | Engine side |
|---|---|---|---|---|
| Gravitino connector | Gravitino server API | 8090 | Every catalog type in the metalake: Iceberg, Hive, Paimon, JDBC and the rest | A Gravitino plugin installed into the engine |
| Iceberg REST client | Iceberg REST service | 9001 | Iceberg catalogs only | The engine's own Iceberg REST catalog support; nothing to install |
| Lance REST client | Lance REST service | 9101 | Lance tables | The engine's Lance REST namespace support |
Gravitino authorizes requests on all three paths. On an install made with the Helm chart, the
Iceberg REST and Lance REST services are usually published on their own ingress hostnames, set by the
chart values ingress.iceberg and ingress.lance, rather than on the raw ports.
Engines by path
| Engine | Gravitino connector (8090) | Iceberg REST (9001) | Lance REST (9101) |
|---|---|---|---|
| Trino | Trino connector | Trino | |
| Spark | Spark connector | Spark | Lance integration |
| Flink | Flink connector | Flink | |
| Daft | Daft connector | ||
| Snowflake | Snowflake | ||
| DuckDB | DuckDB | ||
| Doris | Doris | ||
| StarRocks | StarRocks | ||
| PyIceberg | PyIceberg | ||
| Ray | Ray | Lance integration |
Connector or Iceberg REST
Trino, Spark and Flink can use either path.
- Use the Gravitino connector when the engine needs catalogs that are not Iceberg, such as Hive, Paimon or JDBC sources, or when it should pick up catalogs created in Gravitino without per-catalog engine configuration.
- Use Iceberg REST when every catalog the engine reads is Iceberg, when you cannot install a plugin into the engine, or when you want per-table storage credentials vended with each table load.
The connector install for Kubernetes is covered in Install engine connectors. The services themselves are covered in Iceberg REST catalog service and Lance REST service.
AI agents connect through the MCP server, which calls the Gravitino server API.