Un motor SQL ligero, acelerado por GPU, construido sobre el ecosistema RAPIDS.ai.
Comience en app.blazingsql.com
Empezando | Documentación | Ejemplos | Contribuyendo | Licencia | Blog | Pruébalo ahora
BlazingSQL es un motor SQL acelerado por GPU construido sobre el ecosistema RAPIDS. RAPIDS se basa en el formato de memoria columnar Apache Arrow y cuDF es una biblioteca GPU DataFrame para cargar, unir, agregar, filtrar y manipular datos de otro modo.
BlazingSQL es una interfaz SQL para cuDF, con varias funciones para admitir flujos de trabajo de ciencia de datos y conjuntos de datos empresariales a gran escala.
Pruebe nuestro Cuaderno de bienvenida de 5 minutos para comenzar a usar BlazingSQL y RAPIDS AI.
Aquí hay dos fragmentos de BlazingSQL reproducibles de copiar y pegar; siga desplazándose para encontrar cuadernos de ejemplo a continuación.
Cree y consulte una tabla desde un cudf.DataFrame
con barra de progreso:
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
Llave | Valor | |
---|---|---|
0 | a | 7.6 |
1 | b | 7.1 |
Cree y consulte una tabla desde un depósito de 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' )
cuenta_pasajeros | importe_tarifa | |
---|---|---|
0 | 1.0 | 1.1 |
1 | 1.0 | 0,7 |
Título del cuaderno | Descripción | Pruébalo ahora |
---|---|---|
Cuaderno de bienvenida | Una introducción a los portátiles BlazingSQL y al ecosistema de ciencia de datos GPU. | |
El marco de datos | Aprenda a utilizar BlazingSQL y cuDF para crear GPU DataFrames con SQL y API similares a Pandas. | |
Visualización de datos | Conecte sus paquetes de visualización de Python favoritos o utilice herramientas de visualización aceleradas por GPU para representar millones de filas en un instante. | |
Aprendizaje automático | Obtenga información sobre cuML, que se basa en la API Scikit-Learn y ofrece aprendizaje automático acelerado por GPU en GPU DataFrames. |
Puede encontrar nuestra documentación completa en docs.blazingdb.com.
BlazingSQL se puede instalar con conda (miniconda o la distribución completa de Anaconda) desde el canal blazingsql:
conda install -c blazingsql -c rapidsai -c nvidia -c conda-forge -c defaults blazingsql python= $PYTHON_VERSION cudatoolkit= $CUDA_VERSION
Donde $CUDA_VERSION es 11.0, 11.2 o 11.4 y $PYTHON_VERSION es 3.7 o 3.8. Por ejemplo, para CUDA 11.2 y Python 3.8:
conda install -c blazingsql -c rapidsai -c nvidia -c conda-forge -c defaults blazingsql python=3.8 cudatoolkit=11.2
Para la versión nocturna, solo se admite cuda 11+, consulte 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
Donde $CUDA_VERSION es 11.0, 11.2 o 11.4 y $PYTHON_VERSION es 3.7 o 3.8. Por ejemplo, para CUDA 11.2 y 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
Esta es la forma recomendada de crear todos los componentes y dependencias de BlazingSQL desde el código fuente. Garantiza que todas las dependencias estén disponibles para el proceso de compilación.
conda create -n bsql python= $PYTHON_VERSION
conda activate bsql
./dependencies.sh 21.08 $CUDA_VERSION
Donde $CUDA_VERSION es 11.0, 11.2 o 11.4 y $PYTHON_VERSION es 3.7 o 3.8. Por ejemplo, para CUDA 11.2 y Python 3.7:
conda create -n bsql python=3.7
conda activate bsql
./dependencies.sh 21.08 11.2
El proceso de compilación verificará el repositorio de BlazingSQL y lo compilará e instalará en el entorno 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
NOTA: Puede hacer ./build.sh -h
para ver más opciones de compilación.
$CONDA_PREFIX ahora tiene una carpeta para el repositorio blazingsql.
Para la versión nocturna, solo se admite cuda 11+, consulte https://github.com/rapidsai/cudf#cudagpu-requirements
conda create -n bsql python= $PYTHON_VERSION
conda activate bsql
./dependencies.sh 21.10 $CUDA_VERSION nightly
Donde $CUDA_VERSION es 11.0, 11.2 o 11.4 y $PYTHON_VERSION es 3.7 o 3.8. Por ejemplo, para CUDA 11.2 y Python 3.8:
conda create -n bsql python=3.8
conda activate bsql
./dependencies.sh 21.10 11.2 nightly
El proceso de compilación verificará el repositorio de BlazingSQL y lo compilará e instalará en el entorno conda.
cd $CONDA_PREFIX
git clone https://github.com/BlazingDB/blazingsql.git
cd blazingsql
export CUDACXX=/usr/local/cuda/bin/nvcc
./build.sh
NOTA: Puede hacer ./build.sh -h
para ver más opciones de compilación.
NOTA: Puede realizar un análisis estático con cppcheck con el comando cppcheck --project=compile_commands.json
en cualquiera de los directorios de compilación del proyecto cpp.
$CONDA_PREFIX ahora tiene una carpeta para el repositorio blazingsql.
Para compilar sin los complementos de almacenamiento (AWS S3, Google Cloud Storage), utilice los siguientes argumentos:
# 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
NOTA: Al deshabilitar los complementos de almacenamiento, no es necesario instalar previamente AWS SDK C++ o Google Cloud Storage (ni ninguna de sus dependencias).
Para compilar sin los proveedores de SQL (MySQL, PostgreSQL, SQLite), utilice los siguientes argumentos:
# Disable all SQL providers
./build.sh disable-mysql disable-sqlite disable-postgresql
# Disable MySQL provider
./build.sh disable-mysql
...
NOTAS:
Las guías de usuario y la documentación de las API públicas se pueden encontrar aquí
Nuestra arquitectura de código interno se puede construir usando Spinx.
conda install -c conda-forge doxygen
cd $CONDA_PREFIX
cd blazingsql/docsrc
pip install -r requirements.txt
make doxygen
make html
La documentación generada se puede ver en un navegador en blazingsql/docsrc/build/html/index.html
¿Tiene preguntas o comentarios? Publica un nuevo problema de github.
Consulte nuestra guía para contribuir a BlazingSQL.
No dudes en unirte a nuestro canal (#blazingsql) en RAPIDS-GoAi Slack:.
También puede enviarnos un correo electrónico a [email protected] o obtener más detalles en BlazingSQL.com.
Licencia Apache 2.0
El conjunto RAPIDS de bibliotecas de software de código abierto tiene como objetivo permitir la ejecución de procesos de análisis y ciencia de datos de un extremo a otro completamente en GPU. Se basa en las primitivas NVIDIA® CUDA® para la optimización informática de bajo nivel, pero exponiendo el paralelismo de la GPU y la velocidad de la memoria de alto ancho de banda a través de interfaces Python fáciles de usar.
La versión GPU de Apache Arrow es una API común que permite el intercambio eficiente de datos tabulares entre procesos que se ejecutan en la GPU. La computación de extremo a extremo en la GPU evita la copia y conversión innecesaria de datos fuera de la GPU, lo que reduce el tiempo de computación y el costo de los análisis de alto rendimiento comunes en las cargas de trabajo de inteligencia artificial. Como su nombre lo indica, cuDF utiliza el formato de datos en columnas Apache Arrow en la GPU. Actualmente, se admite un subconjunto de funciones de Apache Arrow.