RAPIDS.ai 생태계에 구축된 경량의 GPU 가속 SQL 엔진입니다.
app.blazingsql.com에서 시작하세요
시작하기 | 문서 | 예 | 기여 | 라이센스 | 블로그 | 지금 사용해 보세요
BlazingSQL은 RAPIDS 생태계를 기반으로 구축된 GPU 가속 SQL 엔진입니다. RAPIDS는 Apache Arrow 컬럼 메모리 형식을 기반으로 하며, cuDF는 데이터 로드, 조인, 집계, 필터링 및 기타 조작을 위한 GPU 데이터프레임 라이브러리입니다.
BlazingSQL은 대규모 데이터 과학 워크플로우 및 엔터프라이즈 데이터 세트를 지원하는 다양한 기능을 갖춘 cuDF용 SQL 인터페이스입니다.
BlazingSQL 및 RAPIDS AI 사용을 시작하려면 5분 분량의 환영 노트북을 사용해 보세요.
다음은 재현 가능한 BlazingSQL 스니펫 2개입니다. 아래에서 노트북 예시를 찾으려면 계속 스크롤하세요.
진행률 표시줄을 사용하여 cudf.DataFrame
에서 테이블을 만들고 쿼리합니다.
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
열쇠 | 값 | |
---|---|---|
0 | 에이 | 7.6 |
1 | 비 | 7.1 |
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' )
승객_수 | 운임_금액 | |
---|---|---|
0 | 1.0 | 1.1 |
1 | 1.0 | 0.7 |
노트북 제목 | 설명 | 지금 사용해 보세요 |
---|---|---|
환영 노트 | BlazingSQL 노트북과 GPU 데이터 과학 생태계를 소개합니다. | |
데이터프레임 | BlazingSQL 및 cuDF를 사용하여 SQL 및 Pandas와 유사한 API로 GPU DataFrame을 생성하는 방법을 알아보세요. | |
데이터 시각화 | 즐겨 사용하는 Python 시각화 패키지를 연결하거나 GPU 가속 시각화 도구를 사용하여 수백만 개의 행을 순식간에 렌더링하세요. | |
기계 학습 | Scikit-Learn API 이후에 미러링된 cuML에 대해 알아보세요. 이 API는 GPU DataFrames에서 GPU 가속 기계 학습을 제공합니다. |
docs.blazingdb.com에서 전체 문서를 찾을 수 있습니다.
BlazingSQL은 blazingsql 채널에서 conda(miniconda 또는 전체 Anaconda 배포판)와 함께 설치할 수 있습니다.
conda install -c blazingsql -c rapidsai -c nvidia -c conda-forge -c defaults blazingsql python= $PYTHON_VERSION cudatoolkit= $CUDA_VERSION
여기서 $CUDA_VERSION은 11.0, 11.2 또는 11.4이고 $PYTHON_VERSION은 3.7 또는 3.8입니다 . 예를 들어 CUDA 11.2 및 Python 3.8의 경우:
conda install -c blazingsql -c rapidsai -c nvidia -c conda-forge -c defaults blazingsql python=3.8 cudatoolkit=11.2
야간 버전 cuda 11+만 지원되는 경우 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
여기서 $CUDA_VERSION은 11.0, 11.2 또는 11.4이고 $PYTHON_VERSION은 3.7 또는 3.8입니다 . 예를 들어 CUDA 11.2 및 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
이는 소스에서 모든 BlazingSQL 구성 요소와 종속성을 빌드하는 데 권장되는 방법입니다. 이는 모든 종속성을 빌드 프로세스에 사용할 수 있도록 보장합니다.
conda create -n bsql python= $PYTHON_VERSION
conda activate bsql
./dependencies.sh 21.08 $CUDA_VERSION
여기서 $CUDA_VERSION은 11.0, 11.2 또는 11.4이고 $PYTHON_VERSION은 3.7 또는 3.8입니다 . 예를 들어 CUDA 11.2 및 Python 3.7의 경우:
conda create -n bsql python=3.7
conda activate bsql
./dependencies.sh 21.08 11.2
빌드 프로세스에서는 BlazingSQL 리포지토리를 체크아웃하고 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
참고: ./build.sh -h
실행하면 더 많은 빌드 옵션을 볼 수 있습니다.
$CONDA_PREFIX에는 이제 blazingsql 저장소용 폴더가 있습니다.
야간 버전 cuda 11+만 지원되는 경우 https://github.com/rapidsai/cudf#cudagpu-requirements를 참조하세요.
conda create -n bsql python= $PYTHON_VERSION
conda activate bsql
./dependencies.sh 21.10 $CUDA_VERSION nightly
여기서 $CUDA_VERSION은 11.0, 11.2 또는 11.4이고 $PYTHON_VERSION은 3.7 또는 3.8입니다 . 예를 들어 CUDA 11.2 및 Python 3.8의 경우:
conda create -n bsql python=3.8
conda activate bsql
./dependencies.sh 21.10 11.2 nightly
빌드 프로세스에서는 BlazingSQL 리포지토리를 체크아웃하고 conda 환경에 빌드 및 설치합니다.
cd $CONDA_PREFIX
git clone https://github.com/BlazingDB/blazingsql.git
cd blazingsql
export CUDACXX=/usr/local/cuda/bin/nvcc
./build.sh
참고: ./build.sh -h
실행하면 더 많은 빌드 옵션을 볼 수 있습니다.
참고: cpp 프로젝트 빌드 디렉터리에서 cppcheck --project=compile_commands.json
명령을 사용하여 cppcheck로 정적 분석을 수행할 수 있습니다.
$CONDA_PREFIX에는 이제 blazingsql 저장소용 폴더가 있습니다.
스토리지 플러그인(AWS S3, Google Cloud Storage) 없이 빌드하려면 다음 인수를 사용하십시오.
# 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
참고: 스토리지 플러그인을 비활성화하면 이전에 AWS SDK C++ 또는 Google Cloud Storage(해당 종속성 모두)를 설치할 필요가 없습니다.
SQL 공급자(MySQL, PostgreSQL, SQLite) 없이 빌드하려면 다음 인수를 사용합니다.
# Disable all SQL providers
./build.sh disable-mysql disable-sqlite disable-postgresql
# Disable MySQL provider
./build.sh disable-mysql
...
참고:
사용자 가이드 및 공개 API 문서는 여기에서 찾을 수 있습니다.
내부 코드 아키텍처는 Spinx를 사용하여 구축할 수 있습니다.
conda install -c conda-forge doxygen
cd $CONDA_PREFIX
cd blazingsql/docsrc
pip install -r requirements.txt
make doxygen
make html
생성된 문서는 blazingsql/docsrc/build/html/index.html
의 브라우저에서 볼 수 있습니다.
질문이나 의견이 있으신가요? 새로운 github 문제를 게시하세요.
BlazingSQL에 기여하려면 가이드를 참조하세요.
RAPIDS-GoAi Slack의 채널(#blazingsql)에 자유롭게 참여하세요.
[email protected]으로 이메일을 보내시거나 BlazingSQL.com에서 자세한 내용을 확인하실 수도 있습니다.
아파치 라이센스 2.0
RAPIDS 오픈 소스 소프트웨어 라이브러리 제품군은 GPU에서 엔드투엔드 데이터 과학 및 분석 파이프라인을 완전히 실행할 수 있도록 하는 것을 목표로 합니다. 낮은 수준의 컴퓨팅 최적화를 위해 NVIDIA® CUDA® 기본 요소를 사용하지만 사용자 친화적인 Python 인터페이스를 통해 GPU 병렬성과 고대역폭 메모리 속도를 노출합니다.
Apache Arrow의 GPU 버전은 GPU에서 실행되는 프로세스 간에 표 형식 데이터를 효율적으로 교환할 수 있는 공통 API입니다. GPU의 엔드투엔드 계산은 GPU에서 불필요한 데이터 복사 및 변환을 방지하여 인공 지능 워크로드에서 흔히 발생하는 고성능 분석을 위한 계산 시간과 비용을 줄입니다. 이름에서 알 수 있듯이 cuDF는 GPU에서 Apache Arrow 열 형식 데이터 형식을 사용합니다. 현재 Apache Arrow의 기능 중 일부가 지원됩니다.