Wydanie grafowego systemu zarządzania bazami danych Nebula Graph 3.2

Opublikowano wydanie otwartej bazy danych Nebula Graph 3.2, przeznaczonej do efektywnego przechowywania dużych zbiorów powiązanych danych, tworzących grafikę, która może obejmować miliardy węzłów i tryliony powiązań. Projekt napisany jest w języku C++ i udostępniany na licencji Apache 2.0. Biblioteki klienckie do interakcji z bazą danych zostały przygotowane dla języków Go, Python i Java.

W bazie danych zastosowana jest rozproszona architektura bez podziału zasobów (shared-nothing), która zakłada uruchamianie niezależnych i samowystarczalnych procesów przetwarzania zapytań graphd oraz procesów przechowywania storaged. Orkiestracją przenoszenia danych i zapewnieniem metainformacji o grafie zajmuje się serwis meta. Aby zapewnić spójność danych, używany jest protokół oparty na algorytmie RAFT.

Główne cechy Nebula Graph:

  • Zapewnienie bezpieczeństwa poprzez udostępnienie dostępu tylko uwierzytelnionym użytkownikom, a ich uprawnienia są określane przez system zarządzania dostępem oparty na rolach (RBAC).
  • Możliwość podłączenia różnych typów silników przechowywania. Wsparcie dla rozszerzeń języka zapytań o nowe algorytmy.
  • Zapewnienie minimalnych opóźnień przy odczycie lub zapisie danych oraz utrzymywanie wysokiej przepustowości. Podczas testowania w klastrze składającym się z jednego węzła graphd i trzech węzłów storaged bazy danych o rozmiarze 632 GB, obejmującej grafikę z 1,2 miliarda węzłów i 8,4 miliarda krawędzi, opóźnienia były na poziomie kilku milisekund, a przepustowość wyniosła do 140 tysięcy zapytań na sekundę.
  • Linowa skalowalność.
  • Język zapytań podobny do SQL, wystarczająco potężny i prosty w użyciu. Obsługiwane są takie operacje jak GO (dwukierunkowe przechodzenie węzłów grafu), GROUP BY, ORDER BY, LIMIT, UNION, UNION DISTINCT, INTERSECT, MINUS, PIPE (wykorzystanie wyniku z poprzedniego zapytania). Obsługiwane są indeksy oraz definowane przez użytkownika zmienne.
  • Zapewnienie wysokiej dostępności oraz odporności na awarie.
  • Wsparcie dla tworzenia migawkowych stanów bazy danych w celu uproszczenia tworzenia kopii zapasowych.
  • Gotowość do zastosowań przemysłowych (już wykorzystywana w infrastrukturze firm JD, Meituan i Xiaohongshu).
  • Możliwość zmiany schematu przechowywania i aktualizacji danych bez zatrzymywania ani wpływu na trwające operacje.
  • Wsparcie dla TTL w celu ograniczenia czasu życia danych.
  • Komendy do zarządzania ustawieniami i hostami przechowywania.
  • Narzędzia do zarządzania zadaniami i planowania uruchamiania zadań (w tej chwili wspierane są zadania COMPACT i FLUSH).
  • Operacje wyszukiwania pełnej i najkrótszej drogi między zadanymi wierzchołkami.
  • Interfejs OLAP do integracji z zewnętrznymi platformami analitycznymi.
  • Narzędzia do importu danych z plików CSV lub z Spark.
  • Eksport metryk do monitorowania za pomocą Prometheus i Grafana.
  • Interfejs webowy Nebula Graph Studio do wizualizacji operacji na grafie, nawigacji po grafie, projektowania schematów przechowywania i ładowania danych.

W nowym wydaniu:

  • Dodano wsparcie dla funkcji extract() do wyodrębniania podciągu, odpowiadającego danemu wyrażeniu.
  • Optymalizowane ustawienia w pliku konfiguracyjnym.
  • Dodano zasady optymalizacji do usuwania zbędnego operatora AppendVertices oraz wyłączenia stosowania filtrów krawędzi i węzłów.
  • Zredukowano objętość danych kopiowanych do operacji JOIN, a także dla operatorów Traverse i AppendVertices.
  • Optymalizowana wydajność SHORTEST PATH i SUBGRAPH.
  • Poprawione zarządzanie pamięcią (zastosowano Arena Allocator).

Ź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