Delta Sharing supports two distinct access modes for reading table data: URL-based access and directory-based access. Each mode offers different trade-offs between simplicity and performance.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/delta-io/delta-sharing/llms.txt
Use this file to discover all available pages before exploring further.
Overview
The access mode determines how clients retrieve data files from shared tables:URL-based Access
Server provides pre-signed URLs for individual data files. Simple but requires per-file URL generation.
Directory-based Access
Server issues temporary cloud credentials for direct access to table directories. More efficient for advanced query engines.
URL-based Access
In URL-based access mode, the server returns pre-signed URLs for individual data files through the Query Table API.How It Works
Request Example
Response Example
Advantages
Simplicity
Simplicity
- Easy to implement for both clients and servers
- Works with any HTTP client
- No special cloud credentials required
Fine-grained Control
Fine-grained Control
- Server controls exactly which files are accessible
- URLs can have short expiration times
- File-level access tracking
Universal Compatibility
Universal Compatibility
- Works across all cloud providers
- No client-side cloud SDK dependencies
- Firewall-friendly (standard HTTPS)
Limitations
Directory-based Access
In directory-based access mode, the server issues temporary cloud credentials that grant read access to the table’s root directory and Delta log.How It Works
Request Example
Response Examples
- AWS
- Azure
- GCP
Advantages
Performance
Performance
- No per-file URL generation overhead
- Direct access to Delta transaction log
- Enables distributed metadata processing
- Supports advanced query optimizations
Advanced Features
Advanced Features
- Client can read Delta log locally
- Supports deletion vectors, column mapping
- Enables custom metadata caching
- Better for large tables with many files
Efficiency
Efficiency
- Single credential request per query
- Reduced server-side processing
- Lower network overhead
Limitations
Auxiliary Locations
Some tables store files across multiple storage locations. Directory-based access supports this through auxiliary locations:Clients must request credentials for each location separately. If a client cannot read from an auxiliary location, it should fall back to URL-based access or fail the request.
Access Mode Negotiation
Tables advertise supported access modes through theaccessModes field:
["url"]: Only URL-based access supported["dir"]: Only directory-based access supported["url", "dir"]: Both modes supported (client chooses)- Missing/empty: Assumed to be
["url"]for backward compatibility
Compatibility Matrix
The following table shows behavior based on server and client capabilities:- Server Perspective
- Client Perspective
| accessModes | Meaning | Required APIs |
|---|---|---|
["url"] | URL-only | QueryTable |
["dir"] | Directory-only | GenerateTemporaryTableCredential |
["url", "dir"] | Both supported | Both APIs |
| Omitted | URL-only (legacy) | QueryTable |
Implementation Examples
URL-based Access (Python)
Directory-based Access (Delta Kernel)
Choosing an Access Mode
Consider these factors when choosing an access mode:- Use URL-based When
- Use Directory-based When
✅ Simple client implementations✅ Cross-cloud compatibility needed✅ Tables with few files (less than 100)✅ Network restrictions limit cloud storage access✅ Fine-grained audit logging required
Best Practices
Server Implementation
Server Implementation
- Advertise both modes when possible for maximum compatibility
- Set appropriate credential expiration times (1-12 hours)
- Monitor credential usage and costs
- Implement credential caching to reduce overhead
Client Implementation
Client Implementation
- Always check
accessModesbefore querying - Implement credential caching with expiration handling
- Fall back to URL access if directory access fails
- Handle auxiliary locations appropriately
Security
Security
- Use minimum necessary permissions for credentials
- Set short expiration times when possible
- Rotate credentials regularly
- Monitor for credential leakage
Next Steps
Protocol Overview
Understand the REST API and authentication
Data Model
Learn about shares, schemas, and tables
Profile Files
Configure authentication with profile files
API Reference
Explore detailed API specifications