RAPIDS.ai エコシステム上に構築された、軽量の GPU アクセラレーションの SQL エンジン。
app.blazingsql.com で始めてみる
はじめに |ドキュメント |例 |貢献する |ライセンス |ブログ |今すぐ試してみる
BlazingSQL は、RAPIDS エコシステム上に構築された GPU アクセラレーション SQL エンジンです。 RAPIDS は Apache Arrow 列指向メモリ形式に基づいており、cuDF はデータのロード、結合、集約、フィルタリングなどの操作を行うための GPU データフレーム ライブラリです。
BlazingSQL は、大規模なデータ サイエンス ワークフローとエンタープライズ データセットをサポートするさまざまな機能を備えた cuDF 用の SQL インターフェイスです。
BlazingSQL と RAPIDS AI の使用を開始するには、5 分間のウェルカム ノートブックをお試しください。
ここに、再現可能な BlazingSQL スニペットを 2 つコピーして貼り付けます。スクロールを続けて、以下のノートブックの例を見つけてください。
進行状況バーを使用して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 | b | 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 ノートブックと GPU データ サイエンス エコシステムの紹介。 | |
データフレーム | BlazingSQL と cuDF を使用して、SQL と Pandas のような API で GPU データフレームを作成する方法を学びます。 | |
データの視覚化 | お気に入りの Python 視覚化パッケージをプラグインするか、GPU 高速化視覚化ツールを使用して数百万行を瞬時にレンダリングします。 | |
機械学習 | Scikit-Learn API の後にミラー化された cuML について学び、GPU データフレーム上で 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
夜間バージョンの 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 リポジトリ用のフォルダーができました。
夜間バージョンの 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 で詳細をご確認いただくこともできます。
Apache ライセンス 2.0
オープンソース ソフトウェア ライブラリの RAPIDS スイートは、エンドツーエンドのデータ サイエンスと分析パイプラインを完全に GPU 上で実行できるようにすることを目的としています。低レベルのコンピューティングの最適化には NVIDIA® CUDA® プリミティブに依存しますが、ユーザー フレンドリーな Python インターフェイスを通じて GPU の並列処理と高帯域幅のメモリ速度を公開します。
Apache Arrow の GPU バージョンは、GPU 上で実行されているプロセス間での表形式データの効率的な交換を可能にする共通 API です。 GPU でのエンドツーエンドの計算により、GPU からのデータの不必要なコピーや変換が回避され、人工知能ワークロードで一般的な高性能分析の計算時間とコストが削減されます。名前が示すように、cuDF は GPU 上で Apache Arrow 列指向データ形式を使用します。現在、Apache Arrow の機能のサブセットがサポートされています。