一個基於 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 中的部分功能。