5.4 Delta Sharing

Key Takeaways

  • Delta Sharing is an open protocol for secure data sharing across organizations without copying data.
  • The data provider defines shares containing tables/partitions, and recipients access shared data through credentials or open connectors.
  • Recipients do not need a Databricks account — they can access shared data using Pandas, Spark, Power BI, or any Delta Sharing-compatible client.
  • Databricks-to-Databricks sharing allows seamless access through Unity Catalog without additional client setup.
  • Shares can include whole tables, specific partitions, or views with row-level filtering for fine-grained control.
Last updated: March 2026

Delta Sharing

Quick Answer: Delta Sharing is an open protocol for sharing live data securely across organizations without copying. Providers create shares containing tables; recipients access shared data using any compatible client (Spark, Pandas, Power BI) — no Databricks account required.

How Delta Sharing Works

Architecture

Data Provider                        Data Recipient
┌──────────────┐                    ┌──────────────────┐
│ Unity Catalog │  ── Share ──>     │ Any Delta Sharing │
│ Delta Tables  │  (no data copy)   │ Compatible Client │
│ + Shares      │                   │ (Spark, Pandas,   │
│ + Recipients  │                   │  Power BI, etc.)  │
└──────────────┘                    └──────────────────┘

Key Concepts

ConceptDescription
ShareA named collection of tables (or table partitions) to be shared
RecipientAn entity (organization, team, user) authorized to access a share
ProviderThe Databricks account that owns and shares the data
Activation linkCredential file sent to recipients for authentication

Provider Setup (Sharing Data)

Create a Share

-- Create a share
CREATE SHARE customer_data_share;

-- Add tables to the share
ALTER SHARE customer_data_share ADD TABLE prod.sales.orders;
ALTER SHARE customer_data_share ADD TABLE prod.sales.customers;

-- Add a table with partition filtering
ALTER SHARE customer_data_share ADD TABLE prod.sales.orders
PARTITION (region = 'US');

-- Add a view (for row-level filtering)
ALTER SHARE customer_data_share ADD TABLE prod.sales.filtered_orders;

Create a Recipient

-- Open sharing: any Delta Sharing client (non-Databricks)
CREATE RECIPIENT external_partner;

-- Databricks-to-Databricks sharing
CREATE RECIPIENT partner_workspace
USING ID '<partner-metastore-sharing-id>';

-- Grant share access to recipient
GRANT SELECT ON SHARE customer_data_share TO RECIPIENT external_partner;

Manage Shares

-- List all shares
SHOW SHARES;

-- Show tables in a share
SHOW ALL IN SHARE customer_data_share;

-- Show recipients of a share
SHOW GRANTS ON SHARE customer_data_share;

-- Remove a table from a share
ALTER SHARE customer_data_share REMOVE TABLE prod.sales.orders;

-- Drop a share
DROP SHARE customer_data_share;

Recipient Access (Consuming Shared Data)

Databricks-to-Databricks

When both provider and recipient use Databricks:

-- Recipient sees the shared data as a catalog
-- No additional client setup needed
SELECT * FROM partner_share.sales.orders;

Open Sharing (Non-Databricks Recipients)

Recipients download a credential file and use any Delta Sharing client:

# Python with delta-sharing library
import delta_sharing

# Read shared data
profile = "config.share"  # Credential file from provider
table_url = profile + "#share_name.schema_name.table_name"

# Read as Pandas DataFrame
df = delta_sharing.load_as_pandas(table_url)

# Read as Spark DataFrame
df = delta_sharing.load_as_spark(table_url)

Supported Open Sharing Clients

  • Apache Spark (Python, Scala, Java)
  • Pandas (Python)
  • Power BI
  • Tableau
  • Rust, Go, Node.js, and other language connectors

Benefits of Delta Sharing

BenefitDescription
No data copyingRecipients read live data from provider storage
Open protocolNo vendor lock-in; works with any compatible client
Fine-grained controlShare specific tables, partitions, or filtered views
Revocable accessProvider can revoke recipient access instantly
Audit trailAll access events logged in Unity Catalog audit logs
Fresh dataRecipients always see the latest version of the data

On the Exam: Know that Delta Sharing does not copy data (recipients read from the provider's storage), recipients do not need Databricks, and shares can include whole tables or filtered partitions/views.

Test Your Knowledge

Does a recipient need a Databricks account to access data shared via Delta Sharing?

A
B
C
D
Test Your Knowledge

What happens to the data when a provider shares a Delta table via Delta Sharing?

A
B
C
D
Test Your Knowledge

A data provider wants to share only US region data from their orders table. How can they achieve this with Delta Sharing?

A
B
C
D