sobre a abertura dos códigos-fonte do motor SQL , que utiliza GPU para acelerar o processamento de dados. BlazingSQL não é um SGBD completo, mas é posicionado como um motor para análise e processamento de grandes conjuntos de dados, comparável em suas tarefas com . O código foi escrito na linguagem Python e estão sob a licença Apache 2.0.
BlazingSQL é adequado para realizar consultas analíticas únicas em grandes conjuntos de dados (dezembros de gigabytes), armazenados em formatos tabulares (por exemplo, logs, estatísticas de NetFlow, etc.). BlazingSQL pode executar consultas em arquivos brutos nos formatos CSV e Apache Parquet, localizados em sistemas de arquivos de rede e na nuvem, como HDFS e AWS S3, transmitindo diretamente o resultado para a memória GPU. Graças à paralelização de operações na GPU e ao uso de memória de vídeo mais rápida, a execução de consultas no BlazingSQL é realizada até mais rápido do que no Apache Spark.
Para trabalhar com GPUs, é utilizado um conjunto de bibliotecas , que permite criar aplicações para processamento de dados e análise, realizadas inteiramente do lado da GPU (um para usar primitivos de baixo nível do CUDA e paralelizar cálculos).
BlazingSQL oferece a possibilidade de usar SQL em vez da API de processamento de dados (baseado em ), utilizado no RAPIDS. BlazingSQL é uma camada adicional que opera sobre cuDF e utiliza a biblioteca cuIO para ler dados do disco. As consultas SQL são traduzidas em chamadas de funções cuUDF, permitindo carregar dados na GPU e realizar operações de junção, agregação e filtragem. É suportada a criação de configurações distribuídas cobrindo milhares de GPUs.
BlazingSQL simplifica substancialmente o trabalho com dados — em vez de várias chamadas de funções cuDF, pode-se usar uma única consulta SQL. A utilização do SQL possibilita integrar o RAPIDS com sistemas analíticos existentes, sem a necessidade de escrever manipuladores específicos e sem recorrer ao carregamento intermediário de dados em um SGBD adicional, mas
mantendo plena compatibilidade com todas as partes do RAPIDS, traduzindo a funcionalidade existente em SQL e garantindo desempenho no nível do cuDF. Incluindo suporte para integração com bibliotecas e para resolver tarefas de análise e aprendizado de máquina.
Fonte: opennet.ru
