Site Web | Documents API | Chat
DataFusion est un moteur de requête extensible écrit en Rust qui utilise Apache Arrow comme format en mémoire.
Cette caisse fournit des bibliothèques et des binaires aux développeurs qui créent des bases de données et des systèmes analytiques rapides et riches en fonctionnalités, personnalisés pour des charges de travail particulières. Voir les cas d'utilisation pour des exemples. Les sous-projets connexes suivants ciblent les utilisateurs finaux :
« Prêt à l'emploi », DataFusion propose des API [SQL] et [ Dataframe
], d'excellentes performances, une prise en charge intégrée de CSV, Parquet, JSON et Avro, une personnalisation étendue et une grande communauté.
DataFusion comprend un planificateur de requêtes complet, un moteur d'exécution en colonnes, en streaming, multithread et vectorisé et des sources de données partitionnées. Vous pouvez personnaliser DataFusion à presque tous les points, y compris des sources de données supplémentaires, des langages de requête, des fonctions, des opérateurs personnalisés et bien plus encore. Voir la section Architecture pour plus de détails.
Voici des liens vers quelques informations importantes
DataFusion est idéal pour créer des projets tels que des moteurs de requête spécifiques à un domaine, de nouvelles plates-formes de bases de données et pipelines de données, des langages de requête et bien plus encore. Il vous permet de démarrer rapidement à partir d'un moteur entièrement fonctionnel, puis de personnaliser les fonctionnalités spécifiques à votre utilisation. Cliquez ici pour voir une liste des utilisateurs connus.
Veuillez consulter le guide du contributeur et les pages de communication pour plus d'informations.
Cette caisse possède plusieurs fonctionnalités qui peuvent être spécifiées dans votre Cargo.toml
.
Fonctionnalités par défaut :
nested_expressions
: fonctions permettant de travailler avec des fonctions de type imbriqué telles que array_to_string
compression
: lecture de fichiers compressés avec xz2
, bzip2
, flate2
et zstd
crypto_expressions
: fonctions cryptographiques telles que md5
et sha256
datetime_expressions
: fonctions de date et d'heure telles que to_timestamp
encoding_expressions
: fonctions encode
et decode
parquet
: support de la lecture du format Apache Parquetregex_expressions
: fonctions d'expression régulière, telles que regexp_match
unicode_expressions
: Inclut des fonctions compatibles Unicode telles que character_length
unparser
: permet la prise en charge de l'inversion des LogicalPlans en SQLFonctionnalités optionnelles :
avro
: support de la lecture du format Apache Avrobacktrace
: inclure les informations de backtrace dans les messages d'erreurpyarrow
: conversions entre les types PyArrow et DataFusionserde
: active la fonctionnalité serde
de arrow-schema Les versions de la chaîne d'outils Rust sont suivies dans Rust Versions et suivent le versioning sémantique. Une version de la chaîne d'outils Rust peut être identifiée par une chaîne de version telle que 1.80.0
, ou plus généralement major.minor.patch
.
DataFusion prend en charge les 4 dernières versions mineures stables de Rust publiées ainsi que toutes les versions similaires publiées au cours des 4 derniers mois.
Par exemple, étant donné les versions 1.78.0
, 1.79.0
, 1.80.0
, 1.80.1
et 1.81.0
DataFusion prendra en charge la version 1.78.0, soit 3 versions mineures antérieures à la 1.81
la plus récente.
Remarque : si un correctif Rust est publié pour le MSRV actuel, le MSRV sera mis à jour vers la version mineure spécifique qui inclut tous les correctifs applicables précédant les autres politiques.
DataFusion applique la politique MSRV à l'aide d'une vérification MSRV CI
Les méthodes publiques d'Apache DataFusion sont susceptibles d'évoluer dans le cadre du cycle de vie de l'API. Les méthodes obsolètes seront progressivement supprimées conformément à la politique, garantissant ainsi la stabilité et la santé de l'API.