Core Concepts
Multi-Engine
The core concepts to understand multi-engine system
Multi-Engine
xorq’s multi-engine system enables seamless data movement between different query engines, allowing you to leverage the strengths of each engine while maintaining a unified workflow.
The into_backend
Operator
The core of xorq’s multi-engine capability is the into_backend
operator, which enables:
- Transparent data movement between engines
- Zero-copy data transfer using Apache Arrow
- Automatic optimization of data placement
Supported Engines
xorq currently supports:
- In-Process Engines
- DuckDB
- DataFusion
- Pandas
- Distributed Engines
- Trino
- Snowflake
- BigQuery
Engine Selection Guidelines
Choose engines based on their strengths:
- DuckDB: Local processing, AsOf joins, efficient file formats
- DataFusion: Custom UDFs, streaming processing
- Trino: Distributed queries, federation, security
- Snowflake/BigQuery: Managed infrastructure, scalability
Data Transfer
Data movement between engines is handled through:
- Arrow Flight: Zero-copy data transfer protocol
- Memory Management: Automatic spilling to disk
- Batching: Efficient chunk-based processing