Metalakes
A metalake is the top of the metadata hierarchy and the boundary everything else lives inside. Catalogs, schemas, tables, filesets, topics, models, and functions all sit beneath one, and so do the users, groups, roles, tags, policies, and jobs that apply to them. Creating, enabling, and deleting metalakes is an administrator task, covered in Metalake administration.
Quick start
Everything you explore, govern, or authorize happens inside one metalake, so the first step is choosing it.
- UI
- REST
-
Choose the metalake. Select it in the metalake selector at the top of the navigation bar. Every section other than Configure then describes that metalake.
-
See what it holds. Its catalogs are the top level of Explore; see Catalogs and schemas.
The selector offers only the metalakes you can access. If it offers none, ask an administrator to add you to one.
-
List the metalakes.
List metalakescurl -sS "https://{gravitino_host}/api/metalakes" \
-H "Accept: application/vnd.gravitino.v1+json" \
-H "Authorization: Bearer $TOKEN" -
Work inside one. Every metadata path names its metalake, as in
/api/metalakes/{metalake}/catalogs; see Catalogs and schemas.
The boundary
Nothing crosses a metalake:
- Users and groups are members of one metalake. The same person working in two metalakes is added to each, even when the identity provider supplies them once to the whole server.
- Roles are defined and granted within one metalake, so a role held in one carries no privilege in another.
- A tag or policy created in one metalake cannot be attached to an object in another.
- Names only have to be unique within one metalake.
That makes a metalake the unit to reach for when separating environments, business units, or tenants that should not see each other's metadata.
Most installations need very few. A metalake per production estate, and perhaps one for development, is a common shape. Every client connects to a single metalake and works inside it, so adding more means people have to know which one they are in.
How clients reach a metalake
The Java and Python clients, and the Trino, Spark, and Flink connectors, name the metalake when they connect.
The IRC serves one metalake for the whole installation, set at install time with the chart value
gravitino.icebergRest.dynamicConfigProvider.metalake. Each catalog in that metalake is an IRC
warehouse, selected by its name. Iceberg engines therefore reach only the catalogs of that metalake.
The MCP server can be given a default metalake with the chart value mcp.metalake; without one,
agents name the metalake on every call.
Names and properties
A metalake name is unique across the server and is what every client names when it connects, so renaming one changes what every stored connection has to ask for.
Properties are free-form key and value pairs, with one reserved key. in-use records whether the
metalake is available, defaults to true, and is set by enabling and disabling the metalake rather
than by writing the property directly.
A metalake cannot carry a tag or a policy, so there is no way to classify or govern everything at once from the top. The widest attachment point is a catalog.
Enabled and disabled
A disabled metalake can only be listed, loaded, enabled, or deleted. Every other operation on it or on anything inside it fails, which is how an administrator takes an estate out of service without deleting anything. The metalake list under Configure shows each metalake's status.