Przegląd NoSQL
Akronim NoSQL powstał w 1998 roku. Wiele osób uważa, że NoSQL jest obraźliwym terminem stworzonym, by grzebać w SQL. W rzeczywistości termin ten oznacza Nie tylko SQL. Chodzi o to, że obie technologie mogą współistnieć i każda ma swoje miejsce. Ruch NoSQL był w wiadomościach w ciągu ostatnich kilku lat, ponieważ wielu liderów Web 2.0 przyjęło technologię NoSQL. Firmy takie jak Facebook, Twitter, Digg, Amazon, LinkedIn i Google używają NoSQL w taki czy inny sposób. Podzielmy NoSQL, abyś mógł wyjaśnić to swojemu dyrektorowi ds. IT, a nawet współpracownikom.
NoSQL powstał z potrzeby
Przechowywanie danych: Przechowywane na świecie dane cyfrowe są mierzone w eksabajtach. Eksabajt to jeden miliard gigabajtów (GB) danych. Według Internet.com, ilość zapisanych danych dodanych w 2006 roku wyniosła 161 eksabajtów. Zaledwie 4 lata później, w 2010 roku, ilość przechowywanych danych wyniesie prawie 1000 eksabajtów, co oznacza wzrost o ponad 500%. Innymi słowy, na świecie jest przechowywanych wiele danych i będzie nadal rosnąć.
Połączone dane: Dane stają się coraz bardziej połączone. Tworzenie sieci opartej na hiperłączach, blogi mają pingbacki, a każdy większy system sieci społecznościowych ma tagi, które łączą różne rzeczy. Główne systemy są budowane tak, aby były ze sobą połączone.
Złożona struktura danych: NoSQL może z łatwością obsługiwać hierarchiczne zagnieżdżone struktury danych. Aby osiągnąć to samo w SQL, potrzebujesz wielu tabel relacyjnych z różnymi rodzajami kluczy. Ponadto istnieje związek między wydajnością a złożonością danych. Wydajność może ulec pogorszeniu w tradycyjnym RDBMS, ponieważ przechowujemy ogromne ilości danych wymaganych w aplikacjach społecznościowych i sieć semantyczna.
Co to jest NoSQL?
Myślę, że jednym ze sposobów zdefiniowania NoSQL jest rozważenie, czym nie jest. To nie jest SQL i nie jest relacyjne. Jak sama nazwa wskazuje, nie zastępuje RDBMS, ale go uzupełnia. NoSQL jest przeznaczony do rozproszonych magazynów danych dla potrzeb w zakresie danych na bardzo dużą skalę. Pomyśl o Facebooku z 500 000 000 użytkowników lub Twitterze, który każdego dnia gromadzi terabity danych.
W bazie danych NoSQL nie ma ustalonego schematu ani złączeń. RDBMS „skaluje” poprzez coraz szybszy sprzęt i dodawanie pamięci. Z drugiej strony NoSQL może skorzystać z „skalowania”. Skalowanie odnosi się do rozłożenia obciążenia na wiele systemów towarowych. Jest to składnik NoSQL, który czyni go niedrogim rozwiązaniem dla dużych zbiorów danych.
Kategorie NoSQL
Obecny świat NoSQL mieści się w 4 podstawowych kategoriach.
-
Sklepy oparte na parach klucz-wartość opierają się przede wszystkim na Papier Dynamo firmy Amazon który został napisany w 2007 roku. Główną ideą jest istnienie tablicy mieszającej, w której znajduje się unikalny klucz i wskaźnik do konkretnego elementu danych. Mapowaniom tym zwykle towarzyszą mechanizmy pamięci podręcznej, aby zmaksymalizować wydajność.
- Kolumnowe sklepy rodzinne zostały stworzone do przechowywania i przetwarzania bardzo dużych ilości danych rozproszonych na wielu maszynach. Nadal są klucze, ale wskazują na wiele kolumn. W przypadku BigTable (model NoSQL rodziny kolumn Google) wiersze są identyfikowane za pomocą klucza wiersza, a dane są posortowane i przechowywane przez ten klucz. Słupy są ułożone według rodziny słupów.
- Bazy dokumentów zostały zainspirowane przez Notatki Lotosu i są podobne do sklepów typu klucz-wartość. Model to zasadniczo wersjonowane dokumenty, które są zbiorami innych kolekcji klucz-wartość. Dokumenty częściowo ustrukturyzowane są przechowywane w formatach takich jak JSON.
- Baza danych wykresóws zbudowane są z węzłów, relacji między nutami oraz właściwości węzłów. Zamiast tabel wierszy i kolumn oraz sztywnej struktury SQL używany jest elastyczny model wykresu, który można skalować na wielu maszynach.
Główni gracze NoSQL
Główni gracze w NoSQL wyłonili się głównie dzięki organizacjom, które ich przyjęły. Niektóre z największych technologii NoSQL obejmują:
- Dynamo: Dynamo zostało stworzone przez Amazon.com i jest najważniejszą bazą danych Key-Value NoSQL. Amazon potrzebował wysoce skalowalnej, rozproszonej platformy dla swoich firm e-commerce, więc opracowali Dynamo. Amazon S3 wykorzystuje Dynamo jako mechanizm przechowywania.
- Kasandra:Kasandra został otwarty przez Facebooka i jest zorientowaną kolumnowo bazą danych NoSQL.
- Duży stół: BigTable to zastrzeżona baza danych Google zorientowana na kolumny. Google zezwala na korzystanie z BigTable, ale tylko z Google App Engine.
- Prosta baza danych: SimpleDB to kolejna baza danych Amazon. Używany dla Amazon EC2 i S3, jest częścią Amazon Web Services, która pobiera opłaty w zależności od użytkowania.
- CouchDB:CouchDB wraz z MongoDB są bazami danych NoSQL zorientowanymi na dokumenty typu open source.
- Neo4J:Neo4j jest graficzną bazą danych o otwartym kodzie źródłowym.
Odpytywanie NoSQL
Pytanie, jak przeszukiwać bazę danych NoSQL, jest tym, co interesuje większość programistów. W końcu dane przechowywane w ogromnej bazie danych nie przyniosą nikomu nic dobrego, jeśli nie można ich pobrać i pokazać użytkownikom końcowym lub usługom internetowym. Bazy danych NoSQL nie zapewniają deklaratywnego języka zapytań wysokiego poziomu, takiego jak SQL. Zamiast tego wysyłanie zapytań do tych baz danych jest zależne od modelu danych.
Wiele platform NoSQL pozwala na interfejsy RESTful do danych. Inne interfejsy API zapytań ofertowych. Istnieje kilka narzędzi do zapytań, które zostały opracowane, które próbują wysyłać zapytania do wielu baz danych NoSQL. Te narzędzia zazwyczaj działają w jednej kategorii NoSQL. Jednym z przykładów jest SPARQL. SPARQL to deklaratywna specyfikacja zapytań przeznaczona dla grafowych baz danych. Oto przykład zapytania SPARQL, które pobiera adres URL konkretnego blogera (dzięki uprzejmości IBM):
PREFIX pianka:
WYBIERZ ?url?
Z
GDZIE {
?contributor foaf: imię i nazwisko "Jon Foobar" .
?Contributor foaf: weblog ?url .
}
Przyszłość NoSQL
Organizacje, które mają ogromne potrzeby w zakresie przechowywania danych, poważnie patrzą na NoSQL. Najwyraźniej w mniejszych organizacjach koncepcja ta nie jest tak popularna. W ankiecie przeprowadzonej przez Information Week 44% specjalistów IT dla biznesu nie słyszało o NoSQL. Co więcej, tylko 1% respondentów stwierdziło, że NoSQL jest częścią ich strategicznego kierunku. Jasne jest, że NoSQL ma swoje miejsce w naszym połączonym świecie, ale będzie musiał nadal ewoluować, aby uzyskać masową atrakcyjność, o której wielu myśli.