Wydanie DuckDB 0.10.0, wersji SQLite do zapytań analitycznych

Wydany został system zarządzania bazą danych DuckDB 0.10.0, który łączy cechy SQLite, takie jak kompaktowość, możliwość połączenia w formie biblioteki wbudowanej, 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ącymi agregację całej zawartości tabel lub łączenie kilku dużych tabel. Kod projektu jest dostępny na licencji MIT. Rozwój jest wciąż na etapie tworzenia eksperymentalnych wydań, ponieważ format magazynu nie został jeszcze ustabilizowany i zmienia się z wersji na wersję.

DuckDB oferuje rozszerzoną wersję języka SQL, w tym dodatkowe możliwości obsługi bardzo skomplikowanych i długotrwałych zapytań. Obsługiwane są złożone typy (tablice, struktury, unie) oraz możliwość wykonywania dowolnych i zagnieżdżonych zapytań korelujących. Obsługiwane jest równoczesne wykonywanie wielu zapytań, wykonywanie zapytań bezpośrednio z plików w formacie CSV i Parquet. Możliwy jest import z bazy 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.

Wśród zmian w nowej wersji:

  • Znacząco zwiększono wydajność analizy danych w formacie CSV. Na przykład, odczyt pliku CSV z 11 milionami wierszy w nowej wersji skrócił się z 2,6 sekundy do 1,15 sekundy, a wykonanie operacji „SELECT COUNT(*)” na pliku CSV z 1,8 sekundy do 0,3 sekundy.
  • Dodano obsługę tablic o stałej wielkości, które przypominają listy zawierające stałą liczbę elementów („CREATE TABLE vectors(v DOUBLE[3]);”).
  • Dodano obsługę połączenia z bazami danych MySQL, PostgreSQL i SQLite, co pozwala na ładowanie danych do DuckDB z zewnętrznych baz danych i przenoszenie ich między różnymi systemami. Odwołanie do zewnętrznych baz danych odbywa się z użyciem standardowych tabel. ATTACH ‘postgres:dbname=postgresscanner’ AS postgres; SELECT title, release_year, length FROM postgres.film LIMIT 5;
  • Dodano obsługę wyrażenia „COMMENT ON” do zachowywania komentarza o obiekcie w bazie danych.
  • Dodano obsługę wyrażenia „COPY FROM DATABASE” do kopiowania całej zawartości z jednej bazy danych do drugiej.
  • Dodano obsługę modyfikatora „ALL” w wyrażeniach EXCEPT i INTERSECT.
  • Zrealizowano typ »

    Ź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