Overview
Dell ECS (Enterprise Cloud Storage) is an on-premises object storage platform that provides S3-compatible APIs. Iceberg supports Dell ECS through the dedicated ECS catalog, available since version 0.15.0.Prerequisites
- Dell ECS installation with S3 API enabled
- ECS access credentials (username and secret key)
- Network access to ECS endpoint
Configuration Parameters
Warehouse Location Format
The warehouse property supports these formats:Spark Integration
Starting Spark SQL Shell
Using the Catalog
PySpark Example
Flink Integration
Setting Up Flink Environment
Creating ECS Catalog in Flink
Flink Streaming Example
Java API
Important Limitations
1. RENAME Operations
- No transaction protection: RENAME statements are supported but without additional safeguards
- Require manual coordination: Ensure all commits are finished before renaming a table
- No data movement: RENAME only updates metadata; data files remain in original location
- Potential path mismatch: Renamed tables may have data outside configured warehouse path
2. CAS (Compare-and-Swap) Operations
- Checksum-based: ECS uses object checksums for atomic commits
- Small collision probability: Very low but non-zero chance of checksum conflicts
- Retry logic recommended: Implement retries for critical operations
3. Concurrent Access
- Limited coordination: Less robust than cloud-native catalogs (Glue, DynamoDB)
- Best for single-writer: Optimal when one writer per table
- Careful with multi-writer: Test thoroughly if multiple writers are required
Best Practices
Use Namespace Prefixes
Use Namespace Prefixes
Organize data with namespace prefixes in warehouse path:
Monitor ECS Performance
Monitor ECS Performance
- Track object operation latencies
- Monitor storage capacity
- Set up alerts for slow operations
- Use ECS monitoring tools
Implement Retry Logic
Implement Retry Logic
Avoid Concurrent Renames
Avoid Concurrent Renames
Coordinate RENAME operations:
- Use external locking mechanism
- Schedule during maintenance windows
- Document rename procedures
Security Configuration
SSL/TLS
Custom Trust Store
Troubleshooting
Connection Issues
- ECS endpoint is reachable:
curl http://10.1.2.3:9020 - Firewall rules allow access
- Correct port number (default: 9020 HTTP, 9021 HTTPS)
- ECS service is running
Authentication Errors
- Username (access-key-id) is correct
- Secret key is correct and not expired
- User has S3 permissions in ECS
- Bucket exists and user has access
Performance Issues
- ECS cluster health and load
- Network latency between Spark/Flink and ECS
- ECS configuration (retention, replication)
- Partition strategy (too many small files)
Metadata Conflicts
- Implement retry logic with exponential backoff
- Reduce concurrent writers
- Check for checksum collisions in ECS logs
Version Compatibility
Migration Path
Migrating from other storage to ECS:Next Steps
AWS S3 Storage
Configure cloud storage with S3
Custom FileIO
Implement custom storage backends