BlazingSQL和dask有什么关系?

What is the relationship between BlazingSQL and dask?

我想了解 BlazingSQL 是 dask 的竞争者还是补充。

我有一些中型数据 (10-50GB) 在 Azure blob 存储上保存为 parquet 文件。

IIUC 我可以使用 SQL 语法使用 BlazingSQL 查询、加入、聚合、groupby,但我也可以使用 dask_cudf 将数据读入 CuDF 并执行所有相同的操作使用 python/dataframe 语法。

所以,在我看来他们是直接竞争对手?

使用 dask 的(其中一个)好处是它可以对分区进行操作,因此可以对大于 GPU 内存的数据集进行操作,而 BlazingSQL 仅限于适合 GPU 的内容,这是否正确? ?

为什么会选择使用 BlazingSQL 而不是 dask?

编辑:
The docs talk about dask_cudf but the actual repo 存档说 cudf 本身现在支持 dask。最好知道如何利用 dask 在具有 cudf

的大于 gpu 内存的数据集上运行

完全公开我是 Blazing 的联合创始人SQL。

BlazingSQL 和 Dask 没有竞争力,事实上你需要 Dask 在分布式上下文中使用 BlazingSQL。所有分布式 BlazingSQL 结果 return dask_cudf 结果集,因此您可以在 python/dataframe 语法中对所述结果进行继续操作。就您的观点而言,您在两个方面是正确的:

  1. BlazingSQL 目前仅限于 GPU 内存,实际上是利用 CUDA's Unified Virtual Memory 的一些系统内存。这很快就会改变,我们估计 v0.13 左右,计划于 3 月初发布。在该版本发布后,内存将溢出并缓存到系统内存、本地驱动器,甚至是我们支持的存储插件,例如 AWS S3、Google 云存储和 HDFS。
  2. 您完全可以将 SQL 操作编写为 dask_cudf 函数,但用户有责任了解所有这些函数,并优化它们的使用。 SQL 有很多好处,因为它更容易获得(更多人知道它,而且非常容易学习),并且围绕优化 SQL(基于成本的优化器)进行了大量研究例如)运行 大规模查询。

如果您希望让更多用户可以访问 RAPIDS SQL 是一个非常简单的入职流程,并且由于优化 Dask 上的 SQL 操作所需的范围缩小,因此优化起来非常容易这还有许多其他考虑因素。