Skip to main content

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​

  1. Install the connector into the engine. Every connector is published to Maven Central under com.datastrato; see Install engine connectors.
  2. 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.
  3. 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​

SourceTrinoSparkFlinkOther access
IcebergYesYes¹YesAny Iceberg REST client
HiveYesYesYesIceberg tables also through Iceberg REST, by connecting the metastore as an Iceberg catalog
AWS GlueYesYesNoFlink connects directly
MySQLYesYesYes
PostgreSQLYesYesYes
OracleYes²Yes²Yes²
SQL ServerYes²Yes²Yes²
OceanBaseNoYes³NoTrino and Flink connect directly
PaimonNoYes¹YesTrino connects directly
HudiNoNoNoEngines connect directly
LanceNoNoNoLance REST service, from Spark and Ray
BigQueryNoNoNoEngines connect directly
ClickHouseNoNoNoEngines connect directly
DorisNoNoNoEngines connect directly. Doris itself reads and writes Gravitino Iceberg catalogs as an Iceberg REST client
StarRocksNoNoNoEngines connect directly. StarRocks itself reads and writes Gravitino Iceberg catalogs as an Iceberg REST client
HologresNoNoNoEngines connect directly
FilesetsNoNoNoGVFS from Spark, Hadoop tools and Python; Daft
KafkaNoNoNoProducers 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.