NoSQL деректер базасына шолу

NoSQL аббревиатурасы 1998 жылы құрастырылған. Көптеген адамдар NoSQL-ны SQL-ге толтыру үшін жасалған кемсітушілік термин деп санайды. Іс жүзінде бұл термин тек SQL емес. Бұл идея екі технологияның бірге өмір сүруі мүмкін және олардың әрқайсысы өз орны бар. NoSQL қозғалысы соңғы бірнеше жылда жаңалықтарда болды, себебі көптеген Web 2.0 көшбасшылары NoSQL технологиясын қабылдады. Facebook, Twitter, Digg, Amazon, LinkedIn және Google сияқты компаниялар NoSQL-ті кез-келген жолмен пайдаланады.

NoSQL-ты бұзып, CIO-ға немесе сіздің әріптестеріңізге түсіндіре аласыз.

NoSQL қажеттілік туындады

Деректерді сақтау: Әлемдегі сақталған сандық деректер экзабайтымен өлшенеді. Экзабайт бір миллиард гигабайт (ГБ) деректерге тең. Internet.com сайтына сәйкес, 2006 жылы сақталған деректердің саны 161 экзабайт болды. Тек 4 жыл өткен соң, 2010 жылы шамамен 1000 ExaBytes сақталатын деректер көлемі 500% -дан асып түседі. Басқаша айтқанда, дүниеде көптеген деректер сақталады және оның өсімі жалғасады.

Интерактивті деректер: Деректер қосылымды жалғастыра береді. Гиперсілтемелерде, веб-сайттарда құрылған веб-сайттарда блогтар бар, сондай-ақ әлеуметтік желілердің кез-келген жүйесінде бір-бірімен байланыстыратын тегтер бар. Негізгі жүйелер бір-бірімен байланысты болу үшін салынған.

Кешенді деректер құрылымы: NoSQL иерархиялық кірістірілген деректер құрылымдарын оңай басқара алады. SQL-де бірдей нәрсені орындау үшін барлық кілттер түрлерімен бірнеше реляциялық кесте қажет.

Сонымен қатар, өнімділік пен деректердің күрделілігі арасындағы байланыс бар. Өнімділік дәстүрлі RDBMS-те төмендеуі мүмкін, өйткені біз әлеуметтік желілік қосымшаларда және семантикалық вебте талап етілетін деректердің үлкен көлемін сақтаймыз.

NoSQL деген не?

Менің ойымша, NoSQL-ті анықтаудың бір жолы - бұл не екенін білу.

Бұл SQL емес және ол реляциялық емес. Атауы сияқты, бұл RDBMS-ді алмастырмайды, бірақ оны құттықтайды. NoSQL деректердің үлкен көлемді қажеттіліктері үшін таратылған деректер дүкендеріне арналған. Терабитаны күн сайын деректер жинайтын 500 000 000 пайдаланушысы немесе Twitter арқылы Facebook туралы ойланыңыз.

NoSQL дерекқорында тіркелген схема жоқ және біріктірулер жоқ. RDBMS жылдамдығын жоғарылату және жадты қосып, жылдамырақ және тезірек алу арқылы «таразыға түседі». Басқа жағынан, NoSQL «масштабтау» мүмкіндігін пайдалана алады. Масштабтау көптеген тауар жүйелері бойынша жүктемені таратуды білдіреді. Бұл үлкен деректер жиынтығы үшін арзан шешімді жасайтын NoSQL құрамдас бөлігі.

NoSQL санаттары

Қазіргі NoSQL әлемі 4 негізгі санатқа сәйкес келеді.

  1. Кілт-құндылықтар Дүкендер , негізінен, 2007 жылы жазылған Amazon's Dynamo Paper-ке негізделеді. Негізгі идея - нақты бір деректер кілтіне және көрсеткішке ие болатын хэш кестесінің болуы. Бұл салыстырулар әдетте өнімділікті барынша арттыру үшін кэш механизмдерімен бірге жүреді.
    Көптеген машиналарға бөлінген деректердің үлкен көлемін сақтау және өңдеу үшін бағандар отбасылық дүкендер құрылды. Тағы да кілттер бар, бірақ олар бірнеше бағандарды көрсетеді. BigTable (Google Column Family NoSQL үлгісі) жағдайында, жолдар деректерді сұрыпталған және осы кілтпен сақталатын жол кілті арқылы анықталады. Бағандар бағаналы отбасымен реттеледі.
  1. Құжаттардың дерекқоры Lotus Notes бағдарламасынан шабыттандырылды және кілт-құнды дүкендерге ұқсас. Модель негізінен басқа кілт-құнды жинақтардың жиынтығы болып табылатын нұсқаланған құжаттар болып табылады. Жартылай құрылымдалған құжаттар JSON сияқты пішімдерде сақталады.
  2. Диаграмма дерекқорлары түйіндермен, жазбалар мен түйіндердің қасиеттерімен байланысқан. Жолдар мен бағандар кестелері мен SQL қатаң құрылымы орнына, көптеген машиналарда кеңейтілетін икемді графикалық үлгі қолданылады.

NoSQL негізгі ойыншылар

NoSQL-тың негізгі ойыншылары, негізінен, оларды қабылдаған ұйымдарға байланысты пайда болды. Кейбір ірі NoSQL технологиялары:

NoSQL сұрау

NoSQL дерекқорына сұраныс жасау туралы мәселе - көптеген әзірлеушілер қызықтырады, өйткені үлкен дерекқорда сақталған деректер соңғы пайдаланушыларды немесе веб-қызметтерді шығарып, көрсете алмасаңыз, жақсы болмайды. NoSQL дерекқорлары SQL сияқты жоғары деңгейлі декларативті сұрау тілін қамтамасыз етпейді. Оның орнына бұл деректер қорын сұрау деректер моделі болып табылады.

NoSQL платформаларының көпшілігі деректерге RESTful интерфейстерді береді. Басқа ұсыныстар APIs. Көптеген NoSQL дерекқорларына сұрау жасауға тырысатын бірнеше сұрау құралдары бар. Бұл құралдар әдетте бір NoSQL санаты бойынша жұмыс істейді. Бір мысал - SPARQL. SPARQL - графикалық дерекқорларға арналған декларативті сұрау сипаттамасы. Міне, белгілі бір блогердің URL мекен-жайын (IBM талабын) алатын SPARQL сұранысының мысалы:

PREFIX көбік:
SELECT url
FROM
WHERE {
Автор: foaf: name «Jon Foobar».
қатысушы foaf: weblog? url.
}

NoSQL болашағы

Деректерді сақтаудың үлкен қажеттіліктері бар ұйымдар NoSQL-ке байыпты қарауда. Шағын ұйымдарда тұжырымдама көп тартылмаған шығар. Ақпараттық Апта өткізген сауалнамада ІТ-мамандардың 44% -ы NoSQL туралы естімеген. Сонымен қатар, респонденттердің тек 1% -ы NoSQL-тің стратегиялық бағытының бір бөлігі екендігін хабарлады. Нақтырақ айтқанда, NoSQL-ті біздің байланыстырылған әлемімізде орны бар, бірақ көпшіліктің пікірінше, жаппай тартымдылықты алу үшін дамуға жалғастыру қажет.