Skip to main content
Delta Sharing organizes data using a three-level hierarchy: Shares contain Schemas, which contain Tables. This structure provides flexible access control and logical grouping of related datasets.

Hierarchical Structure

The data model follows a clear hierarchy:
Each level serves a specific purpose in organizing and controlling access to data.

Shares

A share is the top-level logical grouping used to distribute data to recipients. Shares define the access boundary for data sharing.

Key Characteristics

Access Control

Recipients can access all resources within a share they’re granted access to

Multi-Recipient

A single share can be shared with one or multiple recipients

Multi-Schema

A share may contain multiple schemas for organizing related data

Unique Identity

Each share has an optional immutable ID (UUID format recommended)

Share Metadata

Shares include the following metadata:
The id field, when provided, remains immutable throughout the share’s lifecycle, enabling stable references even if the share name changes.

Example Share

Schemas

A schema is a logical grouping of tables within a share. Schemas help organize related tables and provide namespace separation.

Key Characteristics

  • Namespace: Provides logical separation between different table collections
  • Organization: Groups related tables together for easier discovery
  • Hierarchical: Belongs to exactly one share
  • Case-Insensitive: Schema names are case-insensitive across the protocol

Schema Metadata

Example Schema

Schema names must not contain the period (.) character to avoid conflicts with table references.

Tables

A table represents a Delta Lake table or a view on top of a Delta Lake table. Tables are the actual data containers that recipients access.

Key Characteristics

Delta Format

All tables are Delta Lake tables stored in Parquet format

Versioned

Tables track version history for time travel queries

Partitioned

Support for partition columns to optimize queries

Stateful

Include per-file statistics for query optimization

Table Metadata

The location field is required when the table supports directory-based access mode.

Example Table

Table Schema and Format

Each table has a detailed schema definition and format specification:

Schema Definition

Table schemas use a JSON representation compatible with Apache Spark SQL:

Supported Data Types

  • string: UTF-8 encoded text
  • long: 8-byte signed integer
  • integer: 4-byte signed integer
  • short: 2-byte signed integer
  • byte: 1-byte signed integer
  • float: 4-byte floating-point
  • double: 8-byte floating-point
  • boolean: true/false
  • binary: Binary data
  • date: Calendar date (year-month-day)
  • timestamp: Microsecond precision timestamp
  • decimal: Fixed precision decimal numbers

Partition Columns

Tables can be partitioned to optimize query performance:
Partition values are serialized as strings:

Naming Conventions

All Delta Sharing objects must follow these naming rules:
All Objects
  • Maximum 255 characters
  • Case-insensitive
  • Cannot contain:
    • Space ( )
    • Forward slash (/)
    • ASCII control characters (00-1F hex)
    • DELETE character (7F hex)
Tables and Schemas Only
  • Additionally cannot contain period (.)

Valid Examples

Invalid Examples

Querying the Hierarchy

Clients can navigate the hierarchy using REST APIs:
1

List Shares

Discover all accessible shares
2

List Schemas

Find schemas within a share
3

List Tables

Discover tables within a schema
4

Query Table

Access table data

Pagination Support

All list operations support pagination for large result sets:
Query Parameters:
  • maxResults: Maximum items per page (optional)
  • pageToken: Token from previous response to get next page
The server may return fewer items than maxResults even if more are available. Always check for nextPageToken to determine if additional pages exist.

Complete Example

Here’s a full example showing the hierarchy:

Next Steps

Access Modes

Learn about URL-based and directory-based access patterns

Protocol Overview

Understand the REST API and authentication

Profile Files

Configure recipient access with profile files

API Reference

Explore detailed API documentation