AI 资源库 · 已整理 1 项

Substrait

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

我们如何扩展 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 数据,供集群读取
☆ 收藏查看来源 ↗