Prerequisites
- A GCP project with permissions to create GCS buckets and IAM roles
- A Databricks account with permissions to create workspaces
1. Create a Databricks Workspace
Skip this step if you already have the Databricks Workspace in GCPIn the GCP Databricks account console, click Create workspace. Enter the workspace name, choose the region, and provide your GCP project ID. Click Save. The workspace status shows Provisioning while initialization is in progress. When the status changes to Running, the workspace is ready. Open the workspace to enter the Unity Catalog console.
2. (Recommend) Generate an OAuth2 Service Principal
For OAuth2 authentication, navigate to Identity and access -> Service principals -> Manage. Click Add service principal -> Add new and provide a name. Open the service principal, click Secrets -> Generate secret, choose an expiration period, and Generate. Record both the Client ID and Client Secret — the secret cannot be retrieved later.3. (Alternative) Generate a User Token
A Databricks user token can be used by StreamNative Ursa to authenticate against Unity Catalog. Open User Settings. Navigate to Developer -> Access tokens -> Manage and generate a new token. Record the token value — it cannot be retrieved later.4. Configure Unity Catalog Access
Navigate to Catalog -> Settings -> Metastore. Enable External data access on the metastore. Grant catalog privileges with the following settings:- Principal: All accounts (or the specific user/service principal)
- Privilege presets: Data Editor (selects related privileges automatically)
- EXTERNAL USE SCHEMA: Enabled
5. Grant Bucket Permissions to the Databricks Service Account
When the Databricks workspace is initialized, a service account is created for Unity Catalog. Navigate to Catalog -> Settings -> Credentials to find the service account. Example service account name:5.1 Create a Custom IAM Role
In the GCP console, navigate to IAM & Admin -> Roles -> Create role and add the following permissions:storage.buckets.getstorage.objects.createstorage.objects.deletestorage.objects.getstorage.objects.list
5.2 Assign the Role to the Databricks Service Account
Open your bucket, click PERMISSIONS -> View BY PRINCIPALS -> GRANT ACCESS. Add the Databricks service account, select the role created in step 6.1, and click SAVE.6. Create an External Location in Unity Catalog
Navigate to Catalog -> Settings -> External Locations and create a new external location. Configure with:- External location name: any name
- URL: the GCS bucket path
- Storage credential: the Unity Catalog credential
Catalog Information Summary
When the steps above are complete, collect the following values for the StreamNative Ursa compaction service:
For the next steps, see Register Lakehouse Catalogs.