Skip to main content

Getting started

This page takes you from nothing to a running Datastrato Enterprise with a catalog attached and metadata flowing. It assumes a Kubernetes cluster you can install into. To confirm yours is suitable, read Requirements first. To use a laptop instead, see Local evaluation.

Expect fifteen to thirty minutes.

Quick Start

1. Get a license key. Trial keys are issued at the Datastrato trial page. Production keys come from your account team. See Licensing.

2. Authenticate to the registry. The chart and the images are served from the same OCI registry, so one credential covers both.

helm registry login {registry_host} --username {username} --password {password}

3. Install the chart.

helm upgrade --install gravitino \
oci://{registry_host}/charts/datastrato-enterprise \
--namespace gravitino --create-namespace \
--set-string license.key="{license_key}"

4. Wait for the pod to become ready. Readiness means the server has reached its entity store, not merely that it is listening.

kubectl -n gravitino rollout status deployment/gravitino

5. Reach the server.

kubectl -n gravitino port-forward svc/gravitino 8090:8090

The API is now at http://localhost:8090 and the UI at the same address in a browser.

Create a Metalake

Nothing is created for you. A metalake is the container everything else lives in, so it comes first.

curl -X POST -H "Content-Type: application/json" \
-d '{"name":"{metalake_name}","comment":"","properties":{}}' \
http://localhost:8090/api/metalakes

Confirm it exists.

curl http://localhost:8090/api/metalakes/{metalake_name}

Connect a Catalog

A catalog attaches one metadata source. This example uses PostgreSQL because it is the quickest to verify, but the shape is the same for every source. See Connecting a catalog for what the properties mean, and the pages under Connect sources for each specific system.

curl -X POST -H "Content-Type: application/json" \
-d '{
"name": "{catalog_name}",
"type": "RELATIONAL",
"provider": "jdbc-postgresql",
"comment": "",
"properties": {
"jdbc-url": "jdbc:postgresql://{host}:5432/{database}",
"jdbc-user": "{user}",
"jdbc-password": "{password}",
"jdbc-driver": "org.postgresql.Driver"
}
}' \
http://localhost:8090/api/metalakes/{metalake_name}/catalogs

The connection is tested before the catalog is committed, so a successful response means the source answered. A failure here is a connectivity or credential problem, not a Gravitino one.

List the schemas to confirm metadata is flowing through.

curl http://localhost:8090/api/metalakes/{metalake_name}/catalogs/{catalog_name}/schemas

What comes back is read from the source, not from Gravitino's own store.

Next Steps

Connect the sources you actually care about. Every catalog type is documented under Connect sources, and Connecting a catalog covers what they have in common.

Set up identity. A production deployment authenticates users against your identity provider rather than running open. See Authentication, then SCIM provisioning to have users and groups arrive from your directory.

Point an engine at it. Connectors on Kubernetes covers getting the Trino, Spark, or Flink connector into an engine running in your cluster.

Move off the defaults. The quick start above uses the chart's built-in storage, which is adequate for a trial and not for production. See Server configuration and Relational backend storage.