o otwarciu kodów źródłowych silnika SQL , wykorzystującego GPU do przyspieszania przetwarzania danych. BlazingSQL nie jest pełnoprawną bazą danych, lecz jest pozycjonowany jako silnik do analizy i przetwarzania dużych zbiorów danych, porównywalny w swoich zadaniach z . Kod jest napisany w języku Python i na licencji Apache 2.0.
BlazingSQL nadaje się do wykonywania pojedynczych zapytań analitycznych na dużych zbiorach danych (dziesiątki gigabajtów), przechowywanych w formatach tabelarycznych (np. logi, statystyki NetFlow itd.). BlazingSQL może wykonywać zapytania z plików raw w formatach CSV i Apache Parquet, umieszczonych w sieciowych i chmurowych systemach plików, takich jak HDSF i AWS S3, bezpośrednio przesyłając wyniki do pamięci GPU. Dzięki równoległemu wykonywaniu operacji na GPU oraz używaniu szybszej pamięci wideo, zapytania w BlazingSQL są realizowane nawet do szybciej niż w Apache Spark.
Do pracy z GPU wykorzystywany jest rozwijany przy współpracy z firmą NVIDIA zbiór bibliotek , który umożliwia tworzenie aplikacji do przetwarzania danych i analityki, wykonywanych całkowicie po stronie GPU (zapewniany jest do korzystania z niskopoziomowych prymitywów CUDA oraz równoległego przetwarzania obliczeń).
BlazingSQL udostępnia możliwość korzystania z SQL zamiast API przetwarzania danych (opartego na ), stosowanego w RAPIDS. BlazingSQL jest dodatkową warstwą, działającą na powierzchni cuDF i wykorzystującą bibliotekę cuIO do odczytu danych z dysku. Zapytania SQL są transliterowane do wywołań funkcji cuUDF, co pozwala na załadowanie danych do GPU oraz wykonywanie operacji łączenia, agregacji i filtrowania. Wspierane jest tworzenie rozproszonych konfiguracji, obejmujących tysiące GPU.
BlazingSQL znacznie upraszcza pracę z danymi — zamiast setek wywołań funkcji cuDF można się ograniczyć do jednego zapytania SQL. Zastosowanie SQL pozwala na integrację RAPIDS z istniejącymi systemami analitycznymi, bez pisania specyficznych handlerów i bez uciekania się do pośredniego ładowania danych do dodatkowej bazy danych, ale
przy zachowaniu pełnej kompatybilności ze wszystkimi elementami RAPIDS, transliterując istniejącą funkcjonalność do SQL i zapewniając wydajność na poziomie cuDF. W tym zapewniona jest integracja z bibliotekami i do rozwiązywania problemów analitycznych i uczenia maszynowego.
Źródło: opennet.ru
