Overview
TeeBI is big-data ready, designed to handle datasets containing billions of cells. The array-based architecture and 64-bit support enable processing of massive datasets that exceed traditional database limitations.Architecture for Scale
64-Bit Support
TeeBI automatically adapts to platform architecture:Memory-Efficient Storage
Columnar Format: Only load columns you need, not entire rows. Type Optimization: Each column uses the most appropriate data type. Delayed Loading: Use data providers to load data on-demand.Billion-Cell Example
See the OneBillion demo for a working example of handling massive datasets.Creating Large Datasets
Memory Considerations
Calculate Memory Requirements
Estimate memory needs before loading:Memory Management Tips
- Free Unused Data: Release TDataItem instances when done
- Use Filters: Create filtered views instead of copying data
- Stream Processing: Process data in chunks when possible
- Compression: Use compressed storage for disk persistence
Delayed Loading
For datasets too large to fit in memory, use delayed loading providers:Remote Web Server for Big Data
Use the TeeBI Web Server to serve large datasets remotely:- Server-Side Processing: Perform queries and aggregations on the server
- Compressed Transmission: Only transfer needed data, compressed
- Pagination: Load data in pages/chunks
Query Optimization for Large Data
Use Indexes
Create indexes on frequently queried columns:Limit Results
Use TOP and OFFSET in queries:Group and Aggregate
Reduce data volume through aggregation:Parallel Processing
Leverage multiple CPU cores for big data operations:Best Practices
- Test with Representative Data: Profile performance with realistic data volumes
- Monitor Memory: Use task manager or profiling tools to watch memory usage
- Use 64-Bit: Always compile as 64-bit for large datasets
- Progressive Loading: Load data in stages if possible
- Compression: Use compression for stored data to reduce disk I/O
Platform Limits
Theoretical Limits (64-bit)
- Array Elements: Up to 2^63-1 (limited by available RAM)
- Memory: Up to available physical + virtual memory
Practical Limits
- RAM: Most systems have 8-128 GB RAM
- OS Limits: Windows/Linux/macOS impose process memory limits
- Performance: Beyond a few billion rows, consider distributed systems
