- En yeni GPU donanımını kullanarak SQL sorgularını hızlandırmaya odaklanan yeni nesil bir motor
- Substrait sorgu formatı üzerinden CPU motorunda (DuckDB) üretilen sorguları GPU ortamına (Sirius) aktarır
- GPU belleği içinde Raw Data Cache Region ve Processing Region alanlarını ayırarak veri yükleme ve işleme performansını en üst düzeye çıkarır
- Sorgu değişikliği veya sistem değişimi olmadan TPC-H 100 ölçeğinde aynı maliyet temelinde 10 kattan fazla hız elde etti
- Gerçek zamanlı analiz, finans, ETL gibi büyük ölçekli veri iş yükleri için optimize edildi
- Desteklenen ortamlar: Ubuntu 20.04+, NVIDIA Volta(7.0+) ve üzeri GPU, CUDA 11.2+, CMake 3.30.4 ve üzeri (16 vCPU ve üzeri önerilir)
- Kurulum yöntemleri: AWS AMI (önceden yapılandırılmış imaj), Docker imajı ve bağımlılıkların elle kurulumu olmak üzere 3 seçenek sunulur
- Docker:
sudo docker run --gpus all -it yifeiyang7/sirius_dependencies:latest bash
- Manuel: DuckDB bağımlılıkları, CUDA, libcudf (conda ile kurulum) vb. bileşenlerin ayrı ayrı kurulması gerekir
- Başlıca kısıtlamalar
- Yalnızca GPU bellek boyutu içinde çalışır (ileride partitioning/batching, disk spill ve multi-GPU desteği planlanıyor)
- Maksimum satır sayısı libcudf'nin int32_t sınırıyla (~2 milyar satır) kısıtlıdır
- Veri tipleri: INTEGER, BIGINT, FLOAT, DOUBLE, VARCHAR, DATE, DECIMAL desteklenir; ek tipler geliştirilmektedir
- Operatörler: FILTER, PROJECTION, JOIN, GROUP-BY, ORDER-BY, AGGREGATION, TOP-N, LIMIT, CTE desteklenir; WINDOW fonksiyonları vb. geliştirilmektedir
- Partially NULL Column desteklenmez (ileride yama planlanıyor)
- Sorun oluştuğunda DuckDB CPU motoruna otomatik fallback yapılır
1 yorum
Substrait - veri işleme işlemleri için platformlar arası değişim standardı