Databricks Unity Catalog SQL Commands

This post is basic commands you will need to know for working with Unity Catalog.

Display Current Metastore
  1. SELECT CURRENT_METASTORE();
Display Current Catalog
  1. SELECT CURRENT_CATALOG();
Create Catalog
  1. CREATE CATALOG IF NOT EXISTS <Catalog_Name> COMMENT 'A COMMENT';
Create Catalog With Location
  1. CREATE CATALOG IF NOT EXISTS <Catalog_Name> MANAGED LOCATION 'abfss://<METASTORE_CONTAINER_NAME>@<STORAGE_ACCOUNT>.dfs.core.windows.net/<CATALOG_NAME>' COMMENT 'A COMMENT';
Describe Catalog
  1. DESCRIBE CATALOG <Catalog_Name>;
Create Schema
  1. CREATE SCHEMA IF NOT EXISTS <SCHEMA_NAME> COMMENT '<COMMENT>';
Create Schema With Location
  1. CREATE SCHEMA IF NOT EXISTS <SCHEMA_NAME> MANAGED LOCATION 'abfss://<METASTORE_CONTAINER_NAME>@<STORAGE_ACCOUNT>.dfs.core.windows.net/<CATALOG_NAME>/<SCHEMA_NAME>' COMMENT '<COMMENT>';
Show All Storage Credentials
  1. SHOW STORAGE CREDENTIALS;
Describe Credential
  1. DESCRIBE STORAGE CREDENTIAL <CREDENTIAL_NAME>;
Create External Location

You will first need a storage credential.

You can reference down to the full table path or keep it at the container

  1. CREATE EXTERNAL LOCATION IF NOT EXISTS <NAME>
  2. URL 'abfss://<COTNAINER>@<STORAGE_ACCOUNT>.dfs.core.windows.net/'
  3. WITH (STORAGE CREDENTIAL <CREDENTIAL_NAME>)
  4. COMMENT '<COMMENT>';
Create External Table
  1. CREATE TABLE <CATALOG_NAME>.<SCHEMA_NAME>.<TABLE_NAME>
  2. USING <FORMAT>
  3. LOCATION 'abfss://<COTNAINER>@<STORAGE_ACCOUNT>.dfs.core.windows.net/FOLDER/PATH;'
Grant Create Storage Credential on Metastore
  1. GRANT CREATE STORAGE CREDENTIAL ON METASTORE TO `<USER>`;
Grant Permission to Create External Locations on Storage Credential
  1. GRANT CREATE EXTERNAL LOCATION ON STORAGE CREDENTIAL <CREDENTIAL_NAME> TO `<USER>`;
Grant Permission to Create External Location On Metastored
  1. GRANT CREATE EXTERNAL LOCATION ON METASTORE TO `<USER>`;
Grant Permission to Use Catalog
  1. GRANT USE_CATALOG ON CATALOG <CATALOG_NAME> TO `<USER>`;
Show all Grants On Metastore
  1. SHOW GRANTS `<USER>` ON METASTORE;
Grant Permission to Use Schema
  1. GRANT USE_SCHEMA ON SCHEMA <CATALOG_NAME>.<SCHEMA_NAME> TO `<USER>`;
Grant Permission to Create Table
  1. GRANT CREATE TABLE ON SCHEMA <CATALOG_NAME>.<SCHEMA_NAME> TO <USER>;

 

Databricks Unity Catalog Rest API’s

This post is how to work with Databricks Unity Catalog Rest API’s.

Set Catalog Isolation Mode to ISOLATED

  1. curl --location --request PATCH 'https://<DATABRICK_URL>/api/2.1/unity-catalog/catalogs/<CATALOG_NAME>' \
  2. --header 'Authorization: Bearer <TOKEN>' \
  3. --header 'Content-Type: application/json' \
  4. --data-raw '{
  5. "isolation_mode": "ISOLATED"
  6. }'

Bind Workspace to Catalog

  1. curl --location --request PATCH 'https://<DATABRICK_URL>/api/2.1/unity-catalog/bindings/catalog/<CATALOG_NAME>' \
  2. --header 'Authorization: Bearer <TOKEN>' \
  3. --header 'Content-Type: application/json' \
  4. --data-raw '{
  5. "add": [{ "workspace_id": "<WORKSPACEE_ID>", "binding_type": "BINDING_TYPE_READ_WRITE" }]
  6. "remove": []
  7. }'

Unbind Workspace to Catalog

  1. curl --location --request PATCH 'https://<DATABRICK_URL>/api/2.1/unity-catalog/bindings/catalog/<CATALOG_NAME>' \
  2. --header 'Authorization: Bearer <TOKEN>' \
  3. --header 'Content-Type: application/json' \
  4. --data-raw '{
  5. "unassign_workspaces": ["<WORKSPACE_ID>"]
  6. }'

List Workspaces Assigned to Catalog

  1. curl --location --request GET 'https://<DATABRICK_URL>/api/2.1/unity-catalog/bindings/catalog/<CATALOG_NAME>' \
  2. --header 'Authorization: Bearer <TOKEN>' \
  3. --header 'Content-Type: application/json'