Un moteur SQL léger, accéléré par GPU, construit sur l'écosystème RAPIDS.ai.
Commencez sur app.blazingsql.com
Commencer | Documents | Exemples | Contribuer | Licence | Blogue | Essayez maintenant
BlazingSQL est un moteur SQL accéléré par GPU construit sur l'écosystème RAPIDS. RAPIDS est basé sur le format de mémoire en colonnes Apache Arrow et cuDF est une bibliothèque GPU DataFrame permettant de charger, joindre, agréger, filtrer et manipuler des données.
BlazingSQL est une interface SQL pour cuDF, avec diverses fonctionnalités pour prendre en charge les flux de travail de science des données à grande échelle et les ensembles de données d'entreprise.
Essayez notre carnet de bienvenue de 5 minutes pour commencer à utiliser BlazingSQL et RAPIDS AI.
Voici deux extraits BlazingSQL reproductibles copier-coller. Continuez à faire défiler pour trouver des exemples de blocs-notes ci-dessous.
Créez et interrogez une table à partir d'un cudf.DataFrame
avec barre de progression :
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
Clé | Valeur | |
---|---|---|
0 | un | 7.6 |
1 | b | 7.1 |
Créez et interrogez une table à partir d'un compartiment 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' )
nombre_passagers | montant_tarif | |
---|---|---|
0 | 1.0 | 1.1 |
1 | 1.0 | 0,7 |
Titre du cahier | Description | Essayez maintenant |
---|---|---|
Carnet de bienvenue | Une introduction aux blocs-notes BlazingSQL et à l'écosystème GPU Data Science. | |
Le DataFrame | Apprenez à utiliser BlazingSQL et cuDF pour créer des DataFrames GPU avec des API SQL et Pandas. | |
Visualisation des données | Branchez vos packages de visualisation Python préférés ou utilisez les outils de visualisation accélérés par GPU pour restituer des millions de lignes en un éclair. | |
Apprentissage automatique | Découvrez cuML, mis en miroir après l'API Scikit-Learn, il offre un apprentissage automatique accéléré par GPU sur les DataFrames GPU. |
Vous pouvez trouver notre documentation complète sur docs.blazingdb.com.
BlazingSQL peut être installé avec conda (miniconda ou la distribution complète d'Anaconda) à partir du canal blazingsql :
conda install -c blazingsql -c rapidsai -c nvidia -c conda-forge -c defaults blazingsql python= $PYTHON_VERSION cudatoolkit= $CUDA_VERSION
Où $CUDA_VERSION est 11.0, 11.2 ou 11.4 et $PYTHON_VERSION est 3.7 ou 3.8. Par exemple pour CUDA 11.2 et Python 3.8 :
conda install -c blazingsql -c rapidsai -c nvidia -c conda-forge -c defaults blazingsql python=3.8 cudatoolkit=11.2
Pour la version nocturne, cuda 11+ est uniquement pris en charge, voir 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
Où $CUDA_VERSION est 11.0, 11.2 ou 11.4 et $PYTHON_VERSION est 3.7 ou 3.8. Par exemple pour CUDA 11.2 et 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
Il s'agit de la méthode recommandée pour créer tous les composants et dépendances BlazingSQL à partir des sources. Il garantit que toutes les dépendances sont disponibles pour le processus de construction.
conda create -n bsql python= $PYTHON_VERSION
conda activate bsql
./dependencies.sh 21.08 $CUDA_VERSION
Où $CUDA_VERSION est 11.0, 11.2 ou 11.4 et $PYTHON_VERSION est 3.7 ou 3.8. Par exemple pour CUDA 11.2 et Python 3.7 :
conda create -n bsql python=3.7
conda activate bsql
./dependencies.sh 21.08 11.2
Le processus de construction extraira le référentiel BlazingSQL et sera construit et installé dans l'environnement 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
REMARQUE : vous pouvez exécuter ./build.sh -h
pour voir plus d'options de construction.
$CONDA_PREFIX dispose désormais d'un dossier pour le référentiel blazingsql.
Pour la version nocturne, cuda 11+ est uniquement pris en charge, voir https://github.com/rapidsai/cudf#cudagpu-requirements
conda create -n bsql python= $PYTHON_VERSION
conda activate bsql
./dependencies.sh 21.10 $CUDA_VERSION nightly
Où $CUDA_VERSION est 11.0, 11.2 ou 11.4 et $PYTHON_VERSION est 3.7 ou 3.8. Par exemple pour CUDA 11.2 et Python 3.8 :
conda create -n bsql python=3.8
conda activate bsql
./dependencies.sh 21.10 11.2 nightly
Le processus de construction extraira le référentiel BlazingSQL et sera construit et installé dans l'environnement conda.
cd $CONDA_PREFIX
git clone https://github.com/BlazingDB/blazingsql.git
cd blazingsql
export CUDACXX=/usr/local/cuda/bin/nvcc
./build.sh
REMARQUE : vous pouvez exécuter ./build.sh -h
pour voir plus d'options de construction.
REMARQUE : Vous pouvez effectuer une analyse statique avec cppcheck avec la commande cppcheck --project=compile_commands.json
dans n'importe quel répertoire de construction du projet cpp.
$CONDA_PREFIX dispose désormais d'un dossier pour le référentiel blazingsql.
Pour créer sans les plugins de stockage (AWS S3, Google Cloud Storage), utilisez les arguments suivants :
# 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
REMARQUE : en désactivant les plug-ins de stockage, vous n'avez pas besoin d'installer au préalable AWS SDK C++ ou Google Cloud Storage (ni aucune de ses dépendances).
Pour construire sans les fournisseurs SQL (MySQL, PostgreSQL, SQLite), utilisez les arguments suivants :
# Disable all SQL providers
./build.sh disable-mysql disable-sqlite disable-postgresql
# Disable MySQL provider
./build.sh disable-mysql
...
REMARQUES :
Les guides d'utilisation et la documentation publique sur les API sont disponibles ici
Notre architecture de code interne peut être construite à l'aide de Spinx.
conda install -c conda-forge doxygen
cd $CONDA_PREFIX
cd blazingsql/docsrc
pip install -r requirements.txt
make doxygen
make html
La documentation générée peut être consultée dans un navigateur à l' blazingsql/docsrc/build/html/index.html
Vous avez des questions ou des commentaires ? Publiez un nouveau problème sur GitHub.
Veuillez consulter notre guide pour contribuer à BlazingSQL.
N'hésitez pas à rejoindre notre chaîne (#blazingsql) dans le RAPIDS-GoAi Slack : .
Vous pouvez également nous envoyer un e-mail à [email protected] ou trouver plus de détails sur BlazingSQL.com.
Licence Apache 2.0
La suite RAPIDS de bibliothèques de logiciels open source vise à permettre l'exécution de pipelines de science des données et d'analyse de bout en bout entièrement sur des GPU. Il s'appuie sur les primitives NVIDIA® CUDA® pour l'optimisation des calculs de bas niveau, tout en exposant le parallélisme GPU et la vitesse de la mémoire à large bande passante via des interfaces Python conviviales.
La version GPU d'Apache Arrow est une API commune qui permet un échange efficace de données tabulaires entre les processus exécutés sur le GPU. Le calcul de bout en bout sur le GPU évite la copie et la conversion inutiles des données hors du GPU, réduisant ainsi le temps et les coûts de calcul pour les analyses hautes performances courantes dans les charges de travail d'intelligence artificielle. Comme son nom l'indique, cuDF utilise le format de données en colonnes Apache Arrow sur le GPU. Actuellement, un sous-ensemble des fonctionnalités d'Apache Arrow est pris en charge.