Um mecanismo SQL leve e acelerado por GPU construído no ecossistema RAPIDS.ai.
Comece em app.blazingsql.com
Primeiros passos | Documentação | Exemplos | Contribuindo | Licença | Blogue | Experimente agora
BlazingSQL é um mecanismo SQL acelerado por GPU construído sobre o ecossistema RAPIDS. RAPIDS é baseado no formato de memória colunar Apache Arrow e cuDF é uma biblioteca GPU DataFrame para carregar, unir, agregar, filtrar e manipular dados.
BlazingSQL é uma interface SQL para cuDF, com vários recursos para oferecer suporte a fluxos de trabalho de ciência de dados em grande escala e conjuntos de dados corporativos.
Experimente nosso caderno de boas-vindas de 5 minutos para começar a usar BlazingSQL e RAPIDS AI.
Aqui estão dois trechos reproduzíveis do BlazingSQL, copiar e colar, continue rolando para encontrar exemplos de notebooks abaixo.
Crie e consulte uma tabela a partir de um cudf.DataFrame
com barra de progresso:
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
Chave | Valor | |
---|---|---|
0 | um | 7.6 |
1 | b | 7.1 |
Crie e consulte uma tabela de um bucket 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' )
contagem_passageiros | tarifa_valor | |
---|---|---|
0 | 1,0 | 1.1 |
1 | 1,0 | 0,7 |
Título do caderno | Descrição | Experimente agora |
---|---|---|
Caderno de boas-vindas | Uma introdução aos notebooks BlazingSQL e ao ecossistema de ciência de dados de GPU. | |
O DataFrame | Aprenda como usar BlazingSQL e cuDF para criar DataFrames de GPU com SQL e APIs semelhantes ao Pandas. | |
Visualização de dados | Conecte seus pacotes de visualização Python favoritos ou use ferramentas de visualização aceleradas por GPU para renderizar milhões de linhas em um piscar de olhos. | |
Aprendizado de máquina | Aprenda sobre cuML, espelhado após a API Scikit-Learn, que oferece aprendizado de máquina acelerado por GPU em GPU DataFrames. |
Você pode encontrar nossa documentação completa em docs.blazingdb.com.
BlazingSQL pode ser instalado com conda (miniconda ou a distribuição completa do Anaconda) do canal blazingsql:
conda install -c blazingsql -c rapidsai -c nvidia -c conda-forge -c defaults blazingsql python= $PYTHON_VERSION cudatoolkit= $CUDA_VERSION
Onde $CUDA_VERSION é 11.0, 11.2 ou 11.4 e $PYTHON_VERSION é 3.7 ou 3.8. Por exemplo, para CUDA 11.2 e Python 3.8:
conda install -c blazingsql -c rapidsai -c nvidia -c conda-forge -c defaults blazingsql python=3.8 cudatoolkit=11.2
Para a versão noturna, cuda 11+ é compatível apenas, 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
Onde $CUDA_VERSION é 11.0, 11.2 ou 11.4 e $PYTHON_VERSION é 3.7 ou 3.8. Por exemplo, para CUDA 11.2 e 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 é a maneira recomendada de construir todos os componentes e dependências do BlazingSQL a partir da fonte. Ele garante que todas as dependências estejam disponíveis para o processo de construção.
conda create -n bsql python= $PYTHON_VERSION
conda activate bsql
./dependencies.sh 21.08 $CUDA_VERSION
Onde $CUDA_VERSION é 11.0, 11.2 ou 11.4 e $PYTHON_VERSION é 3.7 ou 3.8. Por exemplo, para CUDA 11.2 e Python 3.7:
conda create -n bsql python=3.7
conda activate bsql
./dependencies.sh 21.08 11.2
O processo de construção fará check-out do repositório BlazingSQL e irá compilar e instalar no ambiente 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: Você pode fazer ./build.sh -h
para ver mais opções de construção.
$CONDA_PREFIX agora possui uma pasta para o repositório blazingsql.
Para a versão noturna, cuda 11+ é compatível apenas, 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
Onde $CUDA_VERSION é 11.0, 11.2 ou 11.4 e $PYTHON_VERSION é 3.7 ou 3.8. Por exemplo, para CUDA 11.2 e Python 3.8:
conda create -n bsql python=3.8
conda activate bsql
./dependencies.sh 21.10 11.2 nightly
O processo de construção fará check-out do repositório BlazingSQL e irá compilar e instalar no ambiente conda.
cd $CONDA_PREFIX
git clone https://github.com/BlazingDB/blazingsql.git
cd blazingsql
export CUDACXX=/usr/local/cuda/bin/nvcc
./build.sh
NOTA: Você pode fazer ./build.sh -h
para ver mais opções de construção.
NOTA: Você pode realizar análise estática com cppcheck com o comando cppcheck --project=compile_commands.json
em qualquer um dos diretórios de construção do projeto cpp.
$CONDA_PREFIX agora possui uma pasta para o repositório blazingsql.
Para construir sem os plug-ins de armazenamento (AWS S3, Google Cloud Storage) use os seguintes 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: Ao desabilitar os plugins de armazenamento você não precisa instalar previamente AWS SDK C++ ou Google Cloud Storage (nem nenhuma de suas dependências).
Para construir sem os provedores SQL (MySQL, PostgreSQL, SQLite) use os seguintes argumentos:
# Disable all SQL providers
./build.sh disable-mysql disable-sqlite disable-postgresql
# Disable MySQL provider
./build.sh disable-mysql
...
NOTAS:
Guias do usuário e documentação pública de APIs podem ser encontrados aqui
Nossa arquitetura de código interno pode ser construída usando Spinx.
conda install -c conda-forge doxygen
cd $CONDA_PREFIX
cd blazingsql/docsrc
pip install -r requirements.txt
make doxygen
make html
A documentação gerada pode ser visualizada em um navegador em blazingsql/docsrc/build/html/index.html
Tem dúvidas ou comentários? Publique um novo problema no github.
Consulte nosso guia para contribuir com o BlazingSQL.
Sinta-se à vontade para entrar em nosso canal (#blazingsql) no RAPIDS-GoAi Slack: .
Você também pode nos enviar um e-mail para [email protected] ou descobrir mais detalhes em BlazingSQL.com.
Licença Apache 2.0
O conjunto RAPIDS de bibliotecas de software de código aberto visa permitir a execução de pipelines completos de ciência de dados e análise inteiramente em GPUs. Ele se baseia nas primitivas NVIDIA® CUDA® para otimização de computação de baixo nível, mas expõe o paralelismo da GPU e a velocidade de memória de alta largura de banda por meio de interfaces Python fáceis de usar.
A versão GPU do Apache Arrow é uma API comum que permite o intercâmbio eficiente de dados tabulares entre processos em execução na GPU. A computação ponta a ponta na GPU evita cópias e conversões desnecessárias de dados da GPU, reduzindo o tempo de computação e o custo para análises de alto desempenho comuns em cargas de trabalho de inteligência artificial. Como o nome indica, cuDF usa o formato de dados colunares Apache Arrow na GPU. Atualmente, um subconjunto de recursos do Apache Arrow é suportado.