Pierwsza stabilna wersja bazy danych DuckDB

Po sześciu latach rozwoju zaprezentowano wydanie bazy danych DuckDB 1.0, która jest pozycjonowana jako alternatywa dla SQLite w zakresie zapytań analitycznych. DuckDB łączy cechy SQLite, takie jak kompaktowość, możliwość użycia jako wbudowanej biblioteki, przechowywanie bazy danych w jednym pliku oraz wygodny interfejs CLI, z narzędziami i optymalizacjami do wykonywania zapytań analitycznych, obejmujących znaczną część przechowywanych danych, na przykład wykonujących agregację całej zawartości tabel lub łączenie kilku dużych tabel. Kod projektu napisany jest w języku C++ i jest udostępniany na licencji MIT.

Wersja 1.0 została oznaczona jako pierwsza stabilna wersja projektu, w przygotowaniu której główną uwagę poświęcono zwiększeniu stabilności, a nie rozbudowie funkcjonalności. W nowej wersji również utrwalono format przechowywania danych, dla którego, począwszy od poprzedniego wydania, zapewniona jest wsteczna zgodność. W kolejnych wydaniach programiści zamierzają bardziej ostrożnie podchodzić do dodawania nowych możliwości i dbać o utrzymanie kompatybilności między wersjami, a także stabilizację dialektu SQL i C API. Jeśli w przyszłości zajdzie potrzeba zmiany semantyki SQL, programiści uprzednio opublikują ostrzeżenie o nadchodzących zmianach i zapewnią obejścia dla utrzymania funkcjonalności istniejącego kodu.

DuckDB obsługuje rozszerzony dialekt języka SQL, który zawiera dodatkowe możliwości przetwarzania bardzo złożonych i długotrwałych zapytań. Na przykład możliwe jest użycie złożonych typów (tablice, struktury, zbiory) oraz wykonywanie dowolnych i zagnieżdżonych zapytań korelujących. Obsługiwane jest jednoczesne wykonywanie kilku zapytań, a także wykonywanie zapytań bezpośrednio z plików w formacie CSV i Parquet. Dostępne jest wsparcie importu z baz danych PostgreSQL.

Oprócz kodu powłoki z SQLite, projekt korzysta z parsera PostgreSQL przeniesionego do oddzielnej biblioteki, komponentu Date Math z MonetDB, własnej implementacji funkcji okiennych (opartej na algorytmie Segment Tree Aggregation), obsługi wyrażeń regularnych opartej na bibliotece RE2, własnego optymalizatora zapytań, mechanizmu MVCC do zarządzania równoległym wykonywaniem zadań (Multi-Version Concurrency Control), a także wektorowego silnika wykonywania zapytań opartego na algorytmie Hyper-Pipelining Query Execution, umożliwiającego w jednej operacji przetwarzanie dużych zbiorów wartości.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster