Gravitino clients
Gravitino clients are engines that connect through a Gravitino connector, a plugin installed into the engine. The connector calls the Gravitino server API on port 8090, reads the metalake's catalogs from the server, and registers each one in the engine with the engine's own connector for that source, so catalogs created in Gravitino appear in the engine without per-catalog engine configuration. Gravitino authorizes every request the connector makes.
Connectors exist for Trino, Spark, Flink and Daft. Each one maps a fixed set of catalog providers onto the engine, shown in the table below. An engine that reads only Iceberg tables can skip the connector and use its own Iceberg REST client instead; see How engines connect.
Quick start
- Install the connector into the engine. Every connector is published to Maven Central under
com.datastrato; see Install engine connectors. - Point the connector at the server and a metalake, with the engine's sign-in, as described on the Trino, Spark or Flink connector page.
- Check the source is supported in the table below. A catalog whose source the connector does not support is not registered in the engine.
Supported sources
| Source | Trino | Spark | Flink | Other access |
|---|---|---|---|---|
| Iceberg | Yes | Yes¹ | Yes | Any Iceberg REST client |
| Hive | Yes | Yes | Yes | Iceberg tables also through Iceberg REST, by connecting the metastore as an Iceberg catalog |
| AWS Glue | Yes | Yes | No | Flink connects directly |
| MySQL | Yes | Yes | Yes | |
| PostgreSQL | Yes | Yes | Yes | |
| Oracle | Yes² | Yes² | Yes² | |
| SQL Server | Yes² | Yes² | Yes² | |
| OceanBase | No | Yes³ | No | Trino and Flink connect directly |
| Paimon | No | Yes¹ | Yes | Trino connects directly |
| Hudi | No | No | No | Engines connect directly |
| Lance | No | No | No | Lance REST service, from Spark and Ray |
| BigQuery | No | No | No | Engines connect directly |
| ClickHouse | No | No | No | Engines connect directly |
| Doris | No | No | No | Engines connect directly. Doris itself reads and writes Gravitino Iceberg catalogs as an Iceberg REST client |
| StarRocks | No | No | No | Engines connect directly. StarRocks itself reads and writes Gravitino Iceberg catalogs as an Iceberg REST client |
| Hologres | No | No | No | Engines connect directly |
| Filesets | No | No | No | GVFS from Spark, Hadoop tools and Python; Daft |
| Kafka | No | No | No | Producers and consumers connect to the brokers directly |
¹ Spark registers Iceberg catalogs only with spark.sql.gravitino.enableIcebergSupport=true, and
Paimon catalogs only with spark.sql.gravitino.enablePaimonSupport=true.
² Oracle and SQL Server support comes from the Datastrato additions in each connector artifact.
³ OceanBase works through Spark's generic JDBC catalog with the MySQL driver.
Connects directly means the engine uses its own connector for the source, configured against the source itself, with no Gravitino connector involved. Gravitino still catalogs the source and governs its metadata: browse, search, tags, policies and owners, with every request through the Gravitino API authorized. Gravitino is not in that query path, though, so the source's own permissions decide what the engine can read.
Trino and Flink skip a catalog whose source is not supported, and Trino logs the catalog as not registered. Spark hands every JDBC source it has no mapping for to its generic JDBC catalog, so those catalogs list their schemas and tables in Spark, but reading a table is not supported and fails for BigQuery.
Daft has no column because its connector covers a different set: it lists a metalake's catalogs, reads tables, and reads and writes files in filesets; see Daft.
Each connector's supported catalogs page covers per-source behavior, properties and limits: Trino, Spark and Flink.