Skrót NoSQL powstał w 1998 roku. Wiele osób uważa, że NoSQL jest obraźliwym terminem stworzonym, by nękać 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: Dane cyfrowe przechowywane na świecie są mierzone w eksabajtach. Eksabajt to jeden miliard gigabajtów (GB) danych. Według Internet.com ilość przechowywanych 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 przechowywanych jest wiele danych, które będą 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 społecznościowy 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ść w tradycyjnym RDBMS może ulec pogorszeniu, ponieważ przechowujemy ogromne ilości danych wymaganych w aplikacjach społecznościowych i sieci semantycznej.
Co to jest NoSQL?
Przypuszczam, ż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 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 się” 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 z kluczami wartości są oparte głównie na dokumencie Dynamo Paper 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. Mapowaniu tym zwykle towarzyszą mechanizmy pamięci podręcznej, aby zmaksymalizować wydajność.
- Bazy danych dokumentów zostały zainspirowane przez Lotus Notes i są podobne do magazynów 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ów są zbudowane z węzłów, relacji między notatkami i 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.
Kolumnowe magazyny rodzinne zostały stworzone do przechowywania i przetwarzania bardzo dużych ilości danych rozproszonych na wielu komputerach. 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. Kolumny są ułożone według rodziny kolumn.
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 to:
- 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 używa Dynamo jako mechanizmu przechowywania.
- Cassandra: Cassandra została otwarta przez Facebooka i jest zorientowaną kolumnowo bazą danych NoSQL.
- BigTable: BigTable to zastrzeżona baza danych Google zorientowana na kolumny. Google zezwala na korzystanie z BigTable, ale tylko z Google App Engine.
- SimpleDB: 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 grafową bazą danych o otwartym kodzie źródłowym.
Odpytywanie NoSQL
Większość programistów interesuje pytanie, jak przeszukiwać bazę danych NoSQL. W końcu dane przechowywane w ogromnej bazie danych nie przynoszą nikomu żadnego pożytku, jeśli nie można ich pobrać i pokazać użytkownikom końcowym lub usług internetowych. Bazy danych NoSQL nie zapewniają deklaratywnego języka zapytań wysokiego poziomu, takiego jak SQL. Zamiast tego zapytanie do tych baz danych is> PREFIX foaf:
SELECT ?url
FROM
WHERE {
?contributor foaf:name "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 koncepcja ta nie jest tak popularna w mniejszych organizacjach. 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. Oczywiście 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.