All Projects → apache → arrow-datafusion

apache / arrow-datafusion

Licence: Apache-2.0 license
Apache Arrow DataFusion SQL Query Engine

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to arrow-datafusion

Ballista
Distributed compute platform implemented in Rust, and powered by Apache Arrow.
Stars: ✭ 2,274 (-3.64%)
Mutual labels:  arrow, dataframe, datafusion
Spark With Python
Fundamentals of Spark with Python (using PySpark), code examples
Stars: ✭ 150 (-93.64%)
Mutual labels:  big-data, dataframe
Crate
CrateDB is a distributed SQL database that makes it simple to store and analyze massive amounts of data in real-time.
Stars: ✭ 3,254 (+37.88%)
Mutual labels:  big-data, olap
Eland
Python Client and Toolkit for DataFrames, Big Data, Machine Learning and ETL in Elasticsearch
Stars: ✭ 235 (-90.04%)
Mutual labels:  big-data, dataframe
hadoop-data-ingestion-tool
OLAP and ETL of Big Data
Stars: ✭ 17 (-99.28%)
Mutual labels:  big-data, olap
aut
The Archives Unleashed Toolkit is an open-source toolkit for analyzing web archives.
Stars: ✭ 111 (-95.3%)
Mutual labels:  big-data, dataframe
Awkward 0.x
Manipulate arrays of complex data structures as easily as Numpy.
Stars: ✭ 216 (-90.85%)
Mutual labels:  big-data, arrow
polars
Fast multi-threaded DataFrame library in Rust | Python | Node.js
Stars: ✭ 6,368 (+169.83%)
Mutual labels:  arrow, dataframe
Koalas
Koalas: pandas API on Apache Spark
Stars: ✭ 3,044 (+28.98%)
Mutual labels:  big-data, dataframe
Clickhouse
ClickHouse® is a free analytics DBMS for big data
Stars: ✭ 21,089 (+793.6%)
Mutual labels:  big-data, olap
TT Tech Space
TT Tech Research Notes
Stars: ✭ 21 (-99.11%)
Mutual labels:  big-data, olap
pyspark-algorithms
PySpark Algorithms Book: https://www.amazon.com/dp/B07X4B2218/ref=sr_1_2
Stars: ✭ 72 (-96.95%)
Mutual labels:  big-data, dataframe
Datafusion
DataFusion has now been donated to the Apache Arrow project
Stars: ✭ 611 (-74.11%)
Mutual labels:  arrow, dataframe
Trino
Official repository of Trino, the distributed SQL query engine for big data, formerly known as PrestoSQL (https://trino.io)
Stars: ✭ 4,581 (+94.11%)
Mutual labels:  big-data, query-engine
vinum
Vinum is a SQL processor for Python, designed for data analysis workflows and in-memory analytics.
Stars: ✭ 57 (-97.58%)
Mutual labels:  arrow, olap
Geni
A Clojure dataframe library that runs on Spark
Stars: ✭ 152 (-93.56%)
Mutual labels:  big-data, dataframe
Cboard
An easy to use, self-service open BI reporting and BI dashboard platform.
Stars: ✭ 2,795 (+18.43%)
Mutual labels:  big-data, olap
metriql
The metrics layer for your data. Join us at https://metriql.com/slack
Stars: ✭ 227 (-90.38%)
Mutual labels:  big-data, olap
bow
Go data analysis / manipulation library built on top of Apache Arrow
Stars: ✭ 20 (-99.15%)
Mutual labels:  arrow, dataframe
heidi
heidi : tidy data in Haskell
Stars: ✭ 24 (-98.98%)
Mutual labels:  dataframe

DataFusion

logo

DataFusion is an extensible query planning, optimization, and execution framework, written in Rust, that uses Apache Arrow as its in-memory format.

Features

  • SQL query planner with support for multiple SQL dialects
  • DataFrame API
  • Parquet, CSV, JSON, and Avro file formats are supported natively. Custom file formats can be supported by implementing a TableProvider trait.
  • Supports popular object stores, including AWS S3, Azure Blob Storage, and Google Cloud Storage. There are extension points for implementing custom object stores.

Use Cases

DataFusion is modular in design with many extension points and can be used without modification as an embedded query engine and can also provide a foundation for building new systems. Here are some example use cases:

  • DataFusion can be used as a SQL query planner and query optimizer, providing optimized logical plans that can then be mapped to other execution engines.
  • DataFusion is used to create modern, fast and efficient data pipelines, ETL processes, and database systems, which need the performance of Rust and Apache Arrow and want to provide their users the 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 use case
  • 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.

DataFusion Community Extensions

There are a number of community projects that extend DataFusion or provide integrations with other systems.

Language Bindings

Integrations

Known Uses

Here are some of the projects known to use DataFusion:

(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.

  • (July 2022): DataFusion and Arrow: Supercharge Your Data Analytical Tool with a Rusty Query Engine: recording and slides
  • (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 Guide

Please see User Guide for more information about DataFusion.

Contributor Guide

Please see Contributor Guide for information about contributing to DataFusion.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].