一个基于 RAPIDS.ai 生态系统构建的轻量级 GPU 加速 SQL 引擎。
开始使用 app.blazingsql.com
开始使用 |文档 |示例 |贡献 |许可证|博客 |立即尝试
BlazingSQL 是一个构建在 RAPIDS 生态系统之上的 GPU 加速 SQL 引擎。 RAPIDS 基于 Apache Arrow 列式内存格式,而 cuDF 是一个 GPU DataFrame 库,用于加载、连接、聚合、过滤和以其他方式操作数据。
BlazingSQL 是 cuDF 的 SQL 接口,具有支持大规模数据科学工作流程和企业数据集的各种功能。
尝试我们的 5 分钟欢迎笔记本,开始使用 BlazingSQL 和 RAPIDS AI。
这里有两个复制 + 粘贴可重现的 BlazingSQL 片段,继续滚动以查找下面的示例笔记本。
从带有进度条的cudf.DataFrame
创建并查询表:
import cudf
df = cudf . DataFrame ()
df [ 'key' ] = [ 'a' , 'b' , 'c' , 'd' , 'e' ]
df [ 'val' ] = [ 7.6 , 2.9 , 7.1 , 1.6 , 2.2 ]
from blazingsql import BlazingContext
bc = BlazingContext ( enable_progress_bar = True )
bc . create_table ( 'game_1' , df )
bc . sql ( 'SELECT * FROM game_1 WHERE val > 4' ) # the query progress will be shown
钥匙 | 价值 | |
---|---|---|
0 | 一个 | 7.6 |
1 | 乙 | 7.1 |
从 AWS S3 存储桶创建并查询表:
from blazingsql import BlazingContext
bc = BlazingContext ()
bc . s3 ( 'blazingsql-colab' , bucket_name = 'blazingsql-colab' )
bc . create_table ( 'taxi' , 's3://blazingsql-colab/yellow_taxi/taxi_data.parquet' )
bc . sql ( 'SELECT passenger_count, trip_distance FROM taxi LIMIT 2' )
乘客数量 | 票价_金额 | |
---|---|---|
0 | 1.0 | 1.1 |
1 | 1.0 | 0.7 |
笔记本标题 | 描述 | 立即尝试 |
---|---|---|
欢迎笔记本 | BlazingSQL Notebooks 和 GPU 数据科学生态系统简介。 | |
数据框 | 了解如何使用 BlazingSQL 和 cuDF 通过 SQL 和类似 Pandas 的 API 创建 GPU DataFrame。 | |
数据可视化 | 插入您最喜欢的 Python 可视化包,或使用 GPU 加速可视化工具瞬间渲染数百万行。 | |
机器学习 | 了解 cuML,它是 Scikit-Learn API 的镜像,它在 GPU DataFrame 上提供 GPU 加速机器学习。 |
您可以在 docs.blazingdb.com 找到我们的完整文档。
BlazingSQL 可以通过 blazingsql 通道与 conda(miniconda 或完整的 Anaconda 发行版)一起安装:
conda install -c blazingsql -c rapidsai -c nvidia -c conda-forge -c defaults blazingsql python= $PYTHON_VERSION cudatoolkit= $CUDA_VERSION
其中 $CUDA_VERSION 为 11.0、11.2 或 11.4,$PYTHON_VERSION 为 3.7 或 3.8例如,对于 CUDA 11.2 和 Python 3.8:
conda install -c blazingsql -c rapidsai -c nvidia -c conda-forge -c defaults blazingsql python=3.8 cudatoolkit=11.2
仅支持 nightly 版本 cuda 11+,请参阅 https://github.com/rapidsai/cudf#cudagpu-requirements
conda install -c blazingsql-nightly -c rapidsai-nightly -c nvidia -c conda-forge -c defaults blazingsql python= $PYTHON_VERSION cudatoolkit= $CUDA_VERSION
其中 $CUDA_VERSION 为 11.0、11.2 或 11.4,$PYTHON_VERSION 为 3.7 或 3.8例如,对于 CUDA 11.2 和 Python 3.8:
conda install -c blazingsql-nightly -c rapidsai-nightly -c nvidia -c conda-forge -c defaults blazingsql python=3.8 cudatoolkit=11.2
这是从源代码构建所有 BlazingSQL 组件和依赖项的推荐方法。它确保所有依赖项均可用于构建过程。
conda create -n bsql python= $PYTHON_VERSION
conda activate bsql
./dependencies.sh 21.08 $CUDA_VERSION
其中 $CUDA_VERSION 为 11.0、11.2 或 11.4,$PYTHON_VERSION 为 3.7 或 3.8例如对于 CUDA 11.2 和 Python 3.7:
conda create -n bsql python=3.7
conda activate bsql
./dependencies.sh 21.08 11.2
构建过程将检出 BlazingSQL 存储库,并将构建并安装到 conda 环境中。
cd $CONDA_PREFIX
git clone https://github.com/BlazingDB/blazingsql.git
cd blazingsql
git checkout main
export CUDACXX=/usr/local/cuda/bin/nvcc
./build.sh
注意:您可以执行./build.sh -h
来查看更多构建选项。
$CONDA_PREFIX 现在有一个 blazingsql 存储库的文件夹。
仅支持 nightly 版本 cuda 11+,请参阅 https://github.com/rapidsai/cudf#cudagpu-requirements
conda create -n bsql python= $PYTHON_VERSION
conda activate bsql
./dependencies.sh 21.10 $CUDA_VERSION nightly
其中 $CUDA_VERSION 为 11.0、11.2 或 11.4,$PYTHON_VERSION 为 3.7 或 3.8例如,对于 CUDA 11.2 和 Python 3.8:
conda create -n bsql python=3.8
conda activate bsql
./dependencies.sh 21.10 11.2 nightly
构建过程将检出 BlazingSQL 存储库,并将构建并安装到 conda 环境中。
cd $CONDA_PREFIX
git clone https://github.com/BlazingDB/blazingsql.git
cd blazingsql
export CUDACXX=/usr/local/cuda/bin/nvcc
./build.sh
注意:您可以执行./build.sh -h
来查看更多构建选项。
注意:您可以在任何 cpp 项目构建目录中使用命令cppcheck --project=compile_commands.json
使用 cppcheck 执行静态分析。
$CONDA_PREFIX 现在有一个 blazingsql 存储库的文件夹。
要在不使用存储插件(AWS S3、Google Cloud Storage)的情况下进行构建,请使用以下参数:
# Disable all storage plugins
./build.sh disable-aws-s3 disable-google-gs
# Disable AWS S3 storage plugin
./build.sh disable-aws-s3
# Disable Google Cloud Storage plugin
./build.sh disable-google-gs
注意:通过禁用存储插件,您无需安装之前的 AWS SDK C++ 或 Google Cloud Storage(也无需安装其任何依赖项)。
要在不使用 SQL 提供程序(MySQL、PostgreSQL、SQLite)的情况下进行构建,请使用以下参数:
# Disable all SQL providers
./build.sh disable-mysql disable-sqlite disable-postgresql
# Disable MySQL provider
./build.sh disable-mysql
...
笔记:
用户指南和公共 API 文档可在此处找到
我们的内部代码架构可以使用 Spinx 构建。
conda install -c conda-forge doxygen
cd $CONDA_PREFIX
cd blazingsql/docsrc
pip install -r requirements.txt
make doxygen
make html
生成的文档可以在浏览器中查看: blazingsql/docsrc/build/html/index.html
有疑问或反馈吗?发布一个新的 github 问题。
请参阅我们的 BlazingSQL 贡献指南。
欢迎加入 RAPIDS-GoAi Slack 中的我们的频道 (#blazingsql): 。
您还可以发送电子邮件至 [email protected] 或在 BlazingSQL.com 上了解更多详细信息。
阿帕奇许可证 2.0
RAPIDS 开源软件库套件旨在完全在 GPU 上执行端到端数据科学和分析管道。它依靠 NVIDIA® CUDA® 原语进行低级计算优化,但通过用户友好的 Python 界面展示 GPU 并行性和高带宽内存速度。
Apache Arrow 的 GPU 版本是一种通用 API,可实现在 GPU 上运行的进程之间高效交换表格数据。 GPU 上的端到端计算避免了不必要的 GPU 数据复制和转换,从而减少了人工智能工作负载中常见的高性能分析的计算时间和成本。顾名思义,cuDF 在 GPU 上使用 Apache Arrow 列式数据格式。目前,支持 Apache Arrow 中的部分功能。