Configuration File Overview
The Delta Sharing Reference Server uses a YAML configuration file to define:- Shares, schemas, and tables to expose to recipients
- Server settings like host, port, and endpoints
- Performance tuning parameters
- Security settings for authentication
Creating Your Configuration File
Edit the Configuration
Open the file in your preferred text editor:Or use
vim, emacs, or any editor of your choice.Configuration File Structure
The YAML configuration file follows this structure:Defining Shares, Schemas, and Tables
Delta Sharing uses a three-level hierarchy: Share > Schema > TableUnderstanding the Hierarchy
Understanding the Hierarchy
- Share: A top-level container representing a collection of data you’re sharing with a recipient or group
- Schema: A logical grouping of related tables within a share (similar to a database schema)
- Table: An individual Delta Lake or Parquet table
Basic Example
Here’s a simple configuration with one share containing one table:Complete Example with Multiple Shares
Table Configuration Options
Each table in your configuration supports these properties:The name of the table as it will appear to recipients
The cloud storage path to the Delta Lake or Parquet table. Must use the appropriate URI scheme:
- S3:
s3a://bucket-name/path/to/table - Azure Blob:
wasbs://container@account.blob.core.windows.net/path - ADLS Gen2:
abfss://container@account.dfs.core.windows.net/path - GCS:
gs://bucket-name/path/to/table - Cloudflare R2:
s3a://bucket-name/path/to/table
A unique identifier (UUID) for the table. Generate one using:
Enable sharing of table history and Change Data Feed (CDF). When
true, recipients can query incremental changes to the table.The underlying Delta Lake table must have Change Data Feed enabled (
delta.enableChangeDataFeed=true)Example with History Sharing
Server Settings
Configure how the server listens and responds to requests:The hostname or IP address the server binds to:
localhost: Only accessible from the same machine0.0.0.0: Accessible from any network interface- Specific IP: Bind to a specific network interface
The TCP port the server listens on. Ports below 1024 may require root/administrator privileges.
URL path prefix for all Delta Sharing API endpoints. The full API URL will be
http://host:port/endpoint/How long (in seconds) pre-signed URLs remain valid. Clients must download data files within this time window.
Number of Delta Lake table metadata objects to cache in memory for performance.
When
true, the server can work with potentially stale table versions. Useful for static tables that never change.Predicate Pushdown Configuration
Enable filtering to reduce data transfer:JSON predicate hints allow clients to push down filters (WHERE clauses) to the server, which can significantly reduce the amount of data transferred.
Pagination Settings
Maximum number of rows returned in a single page when querying tables.
How long page tokens remain valid (in milliseconds). Default is 3 days.
How long refresh tokens remain valid (in milliseconds). Default is 1 hour.
Complete Configuration Example
Here’s a production-ready configuration example:Validating Your Configuration
Before starting the server, validate your configuration:Environment-Specific Configurations
- Development
- Production
Next Steps
Cloud Storage Authentication
Configure access to S3, Azure, GCS, or R2
Authorization Setup
Set up bearer tokens and security
Start the Server
Learn how to start and run the server
Create Profile Files
Generate profile files for recipients