rasdaman

rasdaman
Oryginalni autorzy Piotra Baumanna
Deweloperzy Rasdaman GmbH
Wersja stabilna
rasdaman v9.8.1 / 26 lipca 2019 ( 2019-07-26 )
Magazyn
Napisane w C++
System operacyjny większość systemów operacyjnych typu Unix
Typ Tablicowy DBMS
Licencja GPL v3 (serwer) / LGPL v3 (klient) lub zastrzeżony
Strona internetowa rasdaman.org _ , rasdaman.com _

rasdaman („menedżer danych rastrowych”) to Array DBMS , czyli: system zarządzania bazą danych , który dodaje możliwości przechowywania i wyszukiwania ogromnych wielowymiarowych tablic , takich jak czujniki, obrazy, symulacje i dane statystyczne. Często używanym synonimem tablic są dane rastrowe , na przykład w dwuwymiarowej grafice rastrowej ; to faktycznie zmotywowało nazwę rasdaman . Jednak rasdaman nie ma ograniczeń co do liczby wymiarów - może służyć na przykład do danych pomiarowych 1-D, zdjęć satelitarnych 2-D, szeregów czasowych obrazów 3-D x/y/t i danych eksploracyjnych x/y/z , 4-D danych oceanicznych i klimatycznych, a nawet poza wymiarami czasoprzestrzennymi.

Historia

W 1989 roku Peter Baumann rozpoczął badania nad obsługą baz danych dla obrazów, następnie w Instytucie Grafiki Komputerowej Fraunhofer . Po dogłębnym zbadaniu formalizacji danych rastrowych w obrazowaniu, w szczególności w algebrze obrazu AFATL, stworzył model bazy danych dla wielowymiarowych tablic, w tym model danych i deklaratywny język zapytań. pionierem w dziedzinie tablicowych baz danych . Obecnie wielowymiarowe tablice są również znane jako kostki danych.

Na Uniwersytecie Technicznym w Monachium , w ramach finansowanego przez UE projektu badań podstawowych RasDaMan , stworzono pierwszy prototyp oparty na obiektowym systemie DBMS O2 i przetestowano go w zastosowaniach w naukach o Ziemi i naukach przyrodniczych. W ramach kolejnych projektów finansowanych przez UE system ten został ukończony i rozszerzony w celu obsługi relacyjnych DBMS. Utworzono specjalny spin-off badawczy, rasdaman GmbH, aby zapewnić wsparcie komercyjne jako uzupełnienie badań, które były następnie kontynuowane na Uniwersytecie Jacobsa . Od tego czasu oba podmioty współpracują nad dalszym rozwojem i wykorzystaniem technologii rasdaman.

koncepcje

Model danych

W oparciu o algebrę tablic opracowaną specjalnie na potrzeby baz danych, rasdaman dodaje nowy typ atrybutu, tablicę, do modelu relacyjnego. Ponieważ ta definicja tablicy jest sparametryzowana, stanowi ona konstrukcję lub szablon drugiego rzędu ; fakt ten znajduje odzwierciedlenie w funkcjonałach drugiego rzędu w algebrze i języku zapytań.

Ze względów historycznych tabele nazywane są kolekcjami , ponieważ początkowy projekt kładł nacisk na osadzenie w standardzie obiektowej bazy danych ODMG . Przewidując pełną integrację z SQL, kolekcje rasdaman reprezentują relację binarną z pierwszym atrybutem będącym identyfikatorem obiektu , a drugim tablicą. Pozwala to na ustanowienie odniesień do klucza obcego między tablicami a regularnymi krotkami relacyjnymi .

Język zapytań rastrowych

Język zapytań rasdaman, rasql, osadza się w standardowym SQL i jego przetwarzaniu zorientowanym na zbiory. W przypadku nowego typu atrybutów, tablic wielowymiarowych, dostępny jest zestaw dodatkowych operacji, z których wszystkie są oparte na minimalnym zestawie algebraicznie zdefiniowanych operatorów podstawowych, konstruktorze tablicy (który tworzy nową tablicę i wypełnia ją wartościami) oraz tablicy condenser (który, podobnie jak agregaty SQL, wyprowadza skalarne informacje sumaryczne z tablicy). Język zapytań jest deklaratywny (a więc optymalizowalny) i bezpieczny w ocenie - to znaczy: każde zapytanie ma gwarancję powrotu po skończonej liczbie kroków przetwarzania.

Przewodnik po zapytaniach rasql zawiera szczegółowe informacje, tutaj kilka przykładów może zilustrować jego użycie:

  • „Ze wszystkich kostek danych symulacji klimatu 4-D x/y/z/t wycinek, który zawiera wszystko w x, wyciąg ay między 100 a 200, wszystkie dostępne wzdłuż z, oraz wycinek na pozycji 42 (skutecznie skutkujący 3 -D x/y/z sześcian)":
       
      wybierz  c  [  *  :  *  ,  100  :  200  ,  *  :  *  ,  42  ]  z  ClimateSimulations  jako  c 
  • „Na wszystkich zdjęciach satelitarnych Landsat pomijaj wszystkie obszary inne niż zielone”:
     
      wybierz  img  *  (  img  .  green  >  130  )  z  LandsatArchive  jako  img 

Uwaga: jest to bardzo naiwne sformułowanie wyszukiwania wegetacji; w praktyce można by użyć NDVI , użyć wartości pustych do maskowania chmur i kilku innych technik.

  • „Wszystkie obrazy MRI, w których w pewnym obszarze zdefiniowanym przez maski bitowe intensywność przekracza próg 250”:
 
        
         wybierz  img  z  MRI  jako  img  ,  maski  jako  m  , gdzie  some_cells  (  img  >  250  i  m  ) 
  • „Wycinek 2-D x/y ze wszystkich 4-D kostek danych symulacji klimatu, każdy zakodowany w formacie PNG”:
        
      wybierz  png  (  c  [  *  :  *  ,  *  :  *  ,  100  ,  42  ]  )  z  ClimateSimulations  jako  c 

Architektura

Zarządzanie pamięcią masową

Sample rasdaman tiling
Przykładowe układanie tablic w rasdaman

Obiekty rastrowe są utrzymywane w standardowej relacyjnej bazie danych, opartej na podziale obiektu rastrowego na kafelki . Oprócz zwykłego podziału, możliwe jest dowolne partycjonowanie generowane przez użytkownika lub system. Ponieważ kafelki tworzą jednostkę dostępu do dysku, niezwykle ważne jest, aby wzorzec kafelkowania był dostosowany do wzorców dostępu do zapytań; kilka strategii układania płytek pomaga w stworzeniu dobrze działającego układania płytek. Indeks geograficzny służy do szybkiego określenia kafelków, których dotyczy zapytanie. Opcjonalnie kafelki są kompresowane przy użyciu jednej z różnych opcji, w tym algorytmów bezstratnych i stratnych (falkowych); niezależnie od tego wyniki zapytania można skompresować w celu przesłania do klienta. Zarówno strategia kafelkowania, jak i kompresja obejmują parametry dostrajania bazy danych.

Kafelki i indeks kafelków są przechowywane jako obiekty BLOB w relacyjnej bazie danych, która zawiera również słownik danych potrzebny systemowi typów dynamicznych rasdamana. Adaptery są dostępne dla kilku systemów relacyjnych, między innymi PostgreSQL typu open source . W przypadku macierzy większych niż miejsce na dysku opracowano obsługę hierarchicznego zarządzania pamięcią masową (HSM).

Przetwarzanie zapytań

Zapytania są analizowane, optymalizowane i wykonywane na serwerze rasdaman. Parser otrzymuje ciąg zapytania i generuje drzewo operacji. Ponadto, tam gdzie ma to zastosowanie, stosuje reguły optymalizacji algebraicznej do drzewa zapytań; ze 150 reguł przepisywania algebraicznego 110 optymalizuje, podczas gdy pozostałe 40 służy do przekształcania zapytania w postać kanoniczną. Analiza i optymalizacja razem zajmują mniej niż milisekundę na laptopie.

Wykonanie jest zgodne z paradygmatem strumieniowego przesyłania kafelków : jeśli to możliwe, kafelki tablicy, do których odnosi się zapytanie, są pobierane sekwencyjnie, a każdy kafelek jest odrzucany po przetworzeniu. Prowadzi to do architektury skalowalnej do wolumenów danych przekraczających pamięć główną serwera o rzędy wielkości.

Wykonywanie zapytań jest równoległe. Po pierwsze, rasdaman oferuje równoległość między zapytaniami: dyspozytor planuje żądania w puli procesów serwera na podstawie transakcji. Równoległość wewnątrz zapytań w przejrzysty sposób dystrybuuje poddrzewa zapytań między dostępne rdzenie, procesory graficzne lub węzły w chmurze.

Interfejsy API klienta

Podstawowym interfejsem rasdaman jest język zapytań. Osadzenia w interfejsach API C++ i Java umożliwiają wywoływanie zapytań, a także wygodne funkcje po stronie klienta do obsługi tablic. Tablice same w sobie są dostarczane w głównym formacie pamięci języka klienta i architektury procesora, gotowe do dalszego przetwarzania. Kodeki formatu danych umożliwiają pobieranie tablic w popularnych formatach rastrowych, takich jak CSV , PNG i NetCDF .

Dostępny jest zestaw narzędzi do projektowania stron internetowych, raswct, który ułatwia tworzenie nakładek zapytań sieciowych, w tym graficznych widżetów do sparametryzowanej obsługi zapytań, takich jak suwaki progów w zapytaniach.

Geo usługi sieciowe

Serwlet Java , petascope , działający jako klient rasdaman, oferuje interfejsy usług sieciowych przeznaczone specjalnie do uzyskiwania dostępu, przetwarzania i filtrowania danych geograficznych. Obsługiwane są następujące standardy OGC : WMS , WCS , WCPS i WPS .

W przypadku WCS i WCPS rasdaman jest implementacją referencyjną .

Status i model licencji

Dziś rasdaman jest pełnoprawną implementacją oferującą funkcjonalność wyboru/wstawiania/aktualizacji/usuwania zapytań tablicowych. Jest używany zarówno w instalacjach badawczych, jak i komercyjnych.

We współpracy pierwotnego właściciela kodu, firmy rasdaman GmbH i Uniwersytetu Jacobsa , w latach 2008-2009 dokonano podziału kodu, w wyniku czego powstała społeczność rasdaman , oddział typu open source , oraz firma rasdaman , oddział komercyjny. Od tego czasu społeczność rasdaman jest utrzymywana przez Jacobs University, podczas gdy przedsiębiorstwo rasdaman pozostaje własnością rasdaman GmbH. Różnica między obydwoma wariantami polega głównie na zwiększaniu wydajności (takich jak określone techniki optymalizacji) przeznaczone do obsługi szczególnie dużych baz danych, liczby użytkowników i złożonych zapytań; Szczegóły są dostępne na społeczności rasdaman .

Licencja społecznościowa rasdaman uwalnia serwer na licencji GPL , a wszystkie części klienckie na licencji LGPL , umożliwiając tym samym korzystanie z systemu w dowolnym środowisku licencyjnym.

Wpływ i użytkowanie

Jako pierwszy wysłany system Array DBMS (pierwszy prototyp dostępny w 1996 r.), rasdaman ukształtował tę niedawną dziedzinę badań nad bazami danych. Koncepcje modelu danych i zapytań (deklaratywność, czasem wybór operatorów) pojawiają się w nowszych podejściach.

W 2008 roku Open Geospatial Consortium wydało standard Web Coverage Processing Service , który definiuje rastrowy język zapytań oparty na koncepcji pokrycia . Na semantykę operatorów ma wpływ algebra tablic rasdaman.

EarthLook to prezentacja standardów pokrycia OGC w działaniu, oferując przypadki użycia od 1-D do 4-D dostępu do danych rastrowych i przetwarzania ad-hoc. EarthLook jest zbudowany na rasdaman.

Przykładowym dużym projektem, w którym rasdaman jest używany do usług na dużą skalę we wszystkich naukach o Ziemi , jest EarthServer, sześć usług o wielkości co najmniej 100 terabajtów każda zostało skonfigurowanych do zintegrowanego wyszukiwania danych / metadanych i rozproszonego przetwarzania zapytań.