AI 资源库 · 已整理 2 项

Apache Arrow

查看与Apache Arrow相关的 AI 资讯、工具、Skill、工作流和开源项目。

DataFusion Distributed:为 Apache DataFusion 提供分布式查询执行能力的库

datafusion-contrib/datafusion-distributed · Library for bringing distributed capabilities to Apache DataFusion

DataFusion Distributed 是一个 Rust 库,为 Apache DataFusion 扩展分布式查询执行能力。它并非开箱即用的分布式引擎,而是用于构建分布式引擎的工具包,分布式计划仍是一个普通的 DataFusion 物理计划,只是增加了一些在机器之间传输 Arrow 数据的节点,因此可以以较小改动把已有的单机 DataFusion 系统升级为分布式执行。项目对网络栈不做限定,不区分 coordinator 与 worker,任意节点都可充当协调者或工作节点,并为常见的基于文件的数据源提供默认配置。

☆ 收藏查看来源 ↗

我们如何扩展 Apache DataFusion,让单条查询可以跨多台机器执行

Datadog 的工程师把 Apache DataFusion(一个用来执行查询的引擎)从只能在一台机器上跑,改造成了可以跨多台机器跑同一个查询,这个项目叫 Distributed DataFusion。原来他们有很多不同系统各管一摊,数据没法方便地合在一起查,而 DataFusion 虽然好用但只在单机上执行,遇到超大数据量就慢。新框架把查询拆到多台机器上并行处理,同时让数据以流式方式传输,避免中间结果落地,小查询仍留在单机跑以免浪费。代码已开源,用 Rust 写,可在 GitHub 和 crates.io 获取,Apache 2.0 许可;在 12 节点集群的公开测试里,部分重型查询最多快了 10 倍,成本不变。

文中可用工具

  • Apache DataFusion一个可组合的查询引擎,用来执行分析查询
  • Distributed DataFusion把 DataFusion 扩展成能跨多台机器执行单条查询的开源框架
  • Apache Arrow内存中的数据格式,不同系统之间交换数据用
  • Substrait执行计划的格式,用来描述查询怎么跑
  • ClickHouse被评估过的查询引擎,因扩展性不够被排除
  • Apache Spark被评估过的分布式引擎,因需要中间数据落地不适合低延迟交互
  • Apache DataFusion Ballista被评估过的分布式引擎,同样因中间数据落地被排除
  • Trino被评估过的分布式引擎,因与 Arrow、Substrait 集成不好且成本高被排除
  • Amazon S3存放 Parquet 数据,供集群读取
☆ 收藏查看来源 ↗