Eine leichte, GPU-beschleunigte SQL-Engine, die auf dem RAPIDS.ai-Ökosystem basiert.
Beginnen Sie mit app.blazingsql.com
Erste Schritte | Dokumentation | Beispiele | Mitwirken | Lizenz | Blog | Versuchen Sie es jetzt
BlazingSQL ist eine GPU-beschleunigte SQL-Engine, die auf dem RAPIDS-Ökosystem aufbaut. RAPIDS basiert auf dem spaltenorientierten Speicherformat Apache Arrow und cuDF ist eine GPU-DataFrame-Bibliothek zum Laden, Zusammenführen, Aggregieren, Filtern und anderweitigen Bearbeiten von Daten.
BlazingSQL ist eine SQL-Schnittstelle für cuDF mit verschiedenen Funktionen zur Unterstützung umfangreicher Data-Science-Workflows und Unternehmensdatensätze.
Probieren Sie unser 5-minütiges Willkommensnotizbuch aus, um mit der Verwendung von BlazingSQL und RAPIDS AI zu beginnen.
Hier sind zwei reproduzierbare BlazingSQL-Schnipsel durch Kopieren und Einfügen. Scrollen Sie weiter, um unten Beispielnotizbücher zu finden.
Erstellen und fragen Sie eine Tabelle aus einem cudf.DataFrame
mit Fortschrittsbalken ab:
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
Schlüssel | Wert | |
---|---|---|
0 | A | 7.6 |
1 | B | 7.1 |
Erstellen Sie eine Tabelle aus einem AWS S3-Bucket und fragen Sie sie ab:
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' )
Passagieranzahl | fare_amount | |
---|---|---|
0 | 1,0 | 1.1 |
1 | 1,0 | 0,7 |
Notizbuchtitel | Beschreibung | Versuchen Sie es jetzt |
---|---|---|
Willkommensnotizbuch | Eine Einführung in BlazingSQL Notebooks und das GPU Data Science Ecosystem. | |
Der DataFrame | Erfahren Sie, wie Sie BlazingSQL und cuDF verwenden, um GPU-DataFrames mit SQL und Pandas-ähnlichen APIs zu erstellen. | |
Datenvisualisierung | Schließen Sie Ihre bevorzugten Python-Visualisierungspakete an oder verwenden Sie GPU-beschleunigte Visualisierungstools, um Millionen von Zeilen im Handumdrehen zu rendern. | |
Maschinelles Lernen | Erfahren Sie mehr über cuML, das der Scikit-Learn-API nachempfunden ist und GPU-beschleunigtes maschinelles Lernen auf GPU-DataFrames bietet. |
Unsere vollständige Dokumentation finden Sie unter docs.blazingdb.com.
BlazingSQL kann mit Conda (Miniconda oder die vollständige Anaconda-Distribution) über den blazingsql-Kanal installiert werden:
conda install -c blazingsql -c rapidsai -c nvidia -c conda-forge -c defaults blazingsql python= $PYTHON_VERSION cudatoolkit= $CUDA_VERSION
Wobei $CUDA_VERSION 11.0, 11.2 oder 11.4 ist und $PYTHON_VERSION 3.7 oder 3.8 ist. Zum Beispiel für CUDA 11.2 und Python 3.8:
conda install -c blazingsql -c rapidsai -c nvidia -c conda-forge -c defaults blazingsql python=3.8 cudatoolkit=11.2
Für die Nightly-Version wird nur cuda 11+ unterstützt, siehe 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
Wobei $CUDA_VERSION 11.0, 11.2 oder 11.4 ist und $PYTHON_VERSION 3.7 oder 3.8 ist. Zum Beispiel für CUDA 11.2 und 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
Dies ist die empfohlene Methode zum Erstellen aller BlazingSQL-Komponenten und -Abhängigkeiten aus der Quelle. Es stellt sicher, dass alle Abhängigkeiten für den Build-Prozess verfügbar sind.
conda create -n bsql python= $PYTHON_VERSION
conda activate bsql
./dependencies.sh 21.08 $CUDA_VERSION
Wobei $CUDA_VERSION 11.0, 11.2 oder 11.4 ist und $PYTHON_VERSION 3.7 oder 3.8 ist. Beispiel für CUDA 11.2 und Python 3.7:
conda create -n bsql python=3.7
conda activate bsql
./dependencies.sh 21.08 11.2
Der Build-Prozess checkt das BlazingSQL-Repository aus und erstellt und installiert es in der Conda-Umgebung.
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
HINWEIS: Sie können ./build.sh -h
ausführen, um weitere Build-Optionen anzuzeigen.
$CONDA_PREFIX verfügt jetzt über einen Ordner für das blazingsql-Repository.
Für die Nightly-Version wird nur cuda 11+ unterstützt, siehe https://github.com/rapidsai/cudf#cudagpu-requirements
conda create -n bsql python= $PYTHON_VERSION
conda activate bsql
./dependencies.sh 21.10 $CUDA_VERSION nightly
Wobei $CUDA_VERSION 11.0, 11.2 oder 11.4 ist und $PYTHON_VERSION 3.7 oder 3.8 ist. Zum Beispiel für CUDA 11.2 und Python 3.8:
conda create -n bsql python=3.8
conda activate bsql
./dependencies.sh 21.10 11.2 nightly
Der Build-Prozess checkt das BlazingSQL-Repository aus und erstellt und installiert es in der Conda-Umgebung.
cd $CONDA_PREFIX
git clone https://github.com/BlazingDB/blazingsql.git
cd blazingsql
export CUDACXX=/usr/local/cuda/bin/nvcc
./build.sh
HINWEIS: Sie können ./build.sh -h
ausführen, um weitere Build-Optionen anzuzeigen.
HINWEIS: Sie können eine statische Analyse mit cppcheck mit dem Befehl cppcheck --project=compile_commands.json
in jedem der CPP-Projekt-Build-Verzeichnisse durchführen.
$CONDA_PREFIX verfügt jetzt über einen Ordner für das blazingsql-Repository.
Um ohne die Speicher-Plugins (AWS S3, Google Cloud Storage) zu erstellen, verwenden Sie die folgenden Argumente:
# 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
HINWEIS: Durch Deaktivieren der Speicher-Plugins müssen Sie weder AWS SDK C++ noch Google Cloud Storage (und auch keine seiner Abhängigkeiten) installieren.
Um ohne die SQL-Anbieter (MySQL, PostgreSQL, SQLite) zu erstellen, verwenden Sie die folgenden Argumente:
# Disable all SQL providers
./build.sh disable-mysql disable-sqlite disable-postgresql
# Disable MySQL provider
./build.sh disable-mysql
...
HINWEISE:
Benutzerhandbücher und öffentliche APIs-Dokumentation finden Sie hier
Unsere interne Codearchitektur kann mit Spinx erstellt werden.
conda install -c conda-forge doxygen
cd $CONDA_PREFIX
cd blazingsql/docsrc
pip install -r requirements.txt
make doxygen
make html
Die generierte Dokumentation kann in einem Browser unter blazingsql/docsrc/build/html/index.html
angezeigt werden
Haben Sie Fragen oder Feedback? Veröffentlichen Sie eine neue Github-Ausgabe.
Bitte lesen Sie unseren Leitfaden für Beiträge zu BlazingSQL.
Treten Sie gerne unserem Kanal (#blazingsql) im RAPIDS-GoAi Slack bei: .
Sie können uns auch eine E-Mail an [email protected] senden oder weitere Details auf BlazingSQL.com erfahren.
Apache-Lizenz 2.0
Die RAPIDS-Suite von Open-Source-Softwarebibliotheken zielt darauf ab, die Ausführung von End-to-End-Data-Science- und Analytics-Pipelines vollständig auf GPUs zu ermöglichen. Es basiert auf NVIDIA® CUDA®-Grundelementen für die Rechenoptimierung auf niedriger Ebene, stellt aber die GPU-Parallelität und Speichergeschwindigkeit mit hoher Bandbreite über benutzerfreundliche Python-Schnittstellen zur Verfügung.
Die GPU-Version von Apache Arrow ist eine gemeinsame API, die einen effizienten Austausch tabellarischer Daten zwischen Prozessen ermöglicht, die auf der GPU ausgeführt werden. Durch die End-to-End-Berechnung auf der GPU wird unnötiges Kopieren und Konvertieren von Daten von der GPU vermieden, wodurch Rechenzeit und Kosten für Hochleistungsanalysen reduziert werden, die bei Workloads mit künstlicher Intelligenz üblich sind. Wie der Name schon sagt, verwendet cuDF das spaltenorientierte Datenformat Apache Arrow auf der GPU. Derzeit wird ein Teil der Funktionen in Apache Arrow unterstützt.