github.com-apache-arrow-datafusion_-_2022-03-11_17-45-55
Item Preview
Share or Embed This Item
- Publication date
- 2022-03-11
Apache Arrow DataFusion and Ballista query engines
DataFusion
DataFusion is an extensible query execution framework, written inRust, that uses Apache Arrow as itsin-memory format.
DataFusion supports both an SQL and a DataFrame API for buildinglogical query plans as well as a query optimizer and execution enginecapable of parallel execution against partitioned data sources (CSVand Parquet) using threads.
DataFusion also supports distributed query execution via theBallista crate.
Use Cases
DataFusion is used to create modern, fast and efficient datapipelines, ETL processes, and database systems, which need theperformance of Rust and Apache Arrow and want to provide their usersthe convenience of an SQL interface or a DataFrame API.
Why DataFusion?
- High Performance: Leveraging Rust and Arrow's memory model, DataFusion achieves very high performance
- Easy to Connect: Being part of the Apache Arrow ecosystem (Arrow, Parquet and Flight), DataFusion works well with the rest of the big data ecosystem
- Easy to Embed: Allowing extension at almost any point in its design, DataFusion can be tailored for your specific usecase
- High Quality: Extensively tested, both by itself and with the rest of the Arrow ecosystem, DataFusion can be used as the foundation for production systems.
Known Uses
Projects that adapt to or serve as plugins to DataFusion:
Here are some of the projects known to use DataFusion:
- Ballista Distributed Compute Platform
- Cloudfuse Buzz
- Cube Store
- delta-rs
- InfluxDB IOx Time Series Database
- ROAPI
- Tensorbase
- Squirtle
- VegaFusion Server-side acceleration for the Vega visualization grammar
(if you know of another project, please submit a PR to add a link!)
Example Usage
Please see example usage to find how to use DataFusion.
Roadmap
Please see Roadmap for information of where the project is headed.
Architecture Overview
There is no formal document describing DataFusion's architecture yet, but the following presentations offer a good overview of its different components and how they interact together.
- (March 2021): The DataFusion architecture is described in Query Engine Design and the Rust-Based DataFusion in Apache Arrow: recording (DataFusion content starts ~ 15 minutes in) and slides
- (February 2021): How DataFusion is used within the Ballista Project is described in *Ballista: Distributed Compute with Rust and Apache Arrow: recording
User's guide
Please see User Guide for more information about DataFusion.
Contribution Guide
Please see Contribution Guide for information about contributing to DataFusion.
To restore the repository download the bundle
wget https://archive.org/download/github.com-apache-arrow-datafusion_-_2022-03-11_17-45-55/apache-arrow-datafusion_-_2022-03-11_17-45-55.bundle
and run: git clone apache-arrow-datafusion_-_2022-03-11_17-45-55.bundle
Source: https://github.com/apache/arrow-datafusion
Uploader: apache
Upload date: 2022-03-11
- Addeddate
- 2022-03-12 01:15:10
- Identifier
- github.com-apache-arrow-datafusion_-_2022-03-11_17-45-55
- Originalurl
-
https://github.com/apache/arrow-datafusion
- Pushed_date
- 2022-03-11 17:45:55
- Scanner
- Internet Archive Python library 1.8.1
- Uploaded_with
- iagitup - v1.6
- Year
- 2022