Софтуер

Осем технологии, които променят базите данни

Computer World

Да започнем с основния въпрос - какво е база данни(БД)? Навремето беше лесно да се отговори еднозначно. Беше достатъчно някой да слага данни в таблица с много прави редове и вертикални колони. Дълги, безкрайни правоъгълници от информация, отправили поглед към бъдещето. 

Релационната БД стана основата на модерните изчисления. Повечето сайтове представляват фасада от CSS, зад която стои SQL. Голяма част от нещата, които ни карат да се чувстваме специални, са просто още един ред в голямата таблица на живота. 

Любовната афера с голямата матрица от битове бавно замира, а разработчиците разбират, че не всичко може да се сложи в таблица. И понеже те са умни и се стремят да намерят решение на всички проблеми, търсят по-добри начини за складиране на информацията. 

През последните няколко години се появиха много решения за съхранение и защита на данните. 

Те обаче поставят редица въпроси – може ли да наречем „база данни“ новите и хубави възможности? Нужно ли е още данните да бъдат напъхани в една голяма матрица, за да станат БД? Някои анализатори използват понятието „магазин за данни“, за да разграничат съвременните способи, тъй като „база данни“ е твърде тясно свързано със старата таблична структура. 

Ето 8 начина, базата данни да бъде излята в нови форми и стандарти.

GPU компютинг

Навремето, видео картите бяха конструирани, за да обслужват графичните приложения, но сега т. нар. графични процесори извършват много неграфична обработка. 

Търсенето на данни е само една от неграфичните операции, за които често се използват. И защо – не? 

Да се прехвърлят безкрайните купчини данни, в търсене на съответствие, е паралелна операция, съставена от много елементарни задачи, които се повтарят милиони пъти. Доста лесно е да включите в изпълнението на задачата хиляди процесори в GPU-то. 

Ползата не в това да се изпълни всяка отделна заявка (което не отнема много време), а в подготвителната работа, защото почти не се налага предварителна обработка. 

Много бази с данни пестят време като поддържат списък, който на практика е прогнозният резултат от всяко възможно търсене. Ако този списък се повреди или унищожи, възстановяването му може да изисква часове, дни или дори - месеци.

При положение, че данните се побират в паметта на GPU, обикновено може да минете и без индекса. В случай, че данните се променят бързо, голяма част от списъка ще остане неизползваема. Тогава, прескачането на подготовката ще се окаже много ефективно. 

Разгледайте MapD, Kinetica, Brytlyt и др., за да видите дали данните и търсенето могат да станат по-бързи. 

Енергонезависима памет (NVRAM)

Преди 50 години, задачата на програмистите е била много по-лека. Не им се е налагало да прехвърлят данни между RAM-a и диска на машината, с помощта на сложни протоколи, осигуряващи последователност. Тогава паметта беше „желязната“ сърцевина и нямаше опасност от загуба на информация, ако спре захранването. Добрите стари времена могат да се върнат в скоро време, защото производителите на чипове, говорят за замяна на RAM с NVRAM или енергонезависима памет. 

Това е голяма промяна на играта пред програмистите на хранилища за данни, защото едно от основните предизвикателства, е опасността от загуба на информация. Според очакванията, БД ще станат по-бързи, защото обработката на транзакциите ще се опрости. 

Други гравитират около идеята за вграждане на лог за възстановяване, след като данните бъдат записани в медията, но не преди това. 

Засега никой не може да каже какво ще излезе от тази пушилка. Ще използват ли хората още бази с данни, ако не се нуждаят от перманентен запис? Търсенето и индексирането ще ги накара ли да се върнат към БД? Всички алгоритми и архитектури, по всяка вероятност ще бъдат преосмислени. Кой ще е най-добрият начин за използване на NVRAM – ще стане ясно горе-долу след десетилетие. 

Разширяване на SQL

Когато мода бяха нерелационните бази данни NoSQL, едно от големите предимства беше, възможността да съхранявате информацията в различни възли. 

Cassandra и MongoDB, ни накараха да мислим, че ако получим характеристиките на големите скалируеми хранилища, трябва да загърбим удобния свят на SQL. 

Всъщност, подобен компромис е ненужен. Ако при най-ранните експерименти, големите скалируеми БД се създаваха по-лесно без целия SQL багаж, няма причина SQL да не върви добре на няколко машини, работещи с огромен масив от информация. Компании като Oracle правят това от години. 

Новите хиперскалируеми бази, позволяват да използвате знанията и опита си със SQL, плюс удобството да работите с набор от данни, разпределени в голям клъстер. При CockroachDB, например, заявките постъпват чрез стандартна SQL машина, която достъпва копираните в множество възли данни с валидирането на ACID. Разбира се, ще платите известна цена за поддръжката, която ви гарантира плътност на данните, но не чак толкова.

Ако гаранциите за плътност са важни за работата ви, огледайте продукти като CockroachDB, Google Cloud Spanner, Clustrix, Azure SQL, and NuoDB.

Геопространствени бази данни

Традиционно, базите данни са предвидени за едноизмерни масиви, а не за двумерните координати от географията. Но можете да „излъжете“ и стандартна БД и да я накарате да изпълнява не особено сложни задачи с географски координати.

Пробвайте да сложите в отделни колони параметрите за ширина и дължина: така ще можете да търсите по редове, които съдържат клетки, дефинирани от ширина и дължина. Но ако искате да отидете отвъд тези основни данни, стандартните SQL заявки не вършат работа. 

Геопространствените бази данни притежават няколко допълнителни функции, които правят търсенето, сортирането и разширеното търсене в двумерното пространство много по-лесно. Пространствените индекси, например, обикновено работят чрез добавяне на решетка над координатната област, за да се търси много по-бързо по редове, съседни на двуизмерни и триизмерни данни. 

Тези индекси правят възможно да подавате запитвания с операции като "съдържа", "припокрива" и дори "докосва" с множества, дефинирани от полигони. Всичко това прави описанието на реалния свят много по-ефективно.Neo4j Spatial, GeoMesa, MapD, и PostGIS са много добри за начало.

 Графи

Таблиците са добър начин за съхранение на данни, но не вършат работа, ако целта е да се създаде нова голяма база, като тези, които се използват в интернет. 

Тъй като така нареченият "социален граф" избухва, товарим компютъра си още възли и връзки между тях. И връзките често са по-важни от данните в тях. Съхраняването и извличането на връзка между двойка възли, се прави лесно при класическа релационна база данни, но по-сложните заявки са невъзможни. По отношение на връзките с приятелите, Боб е на две или три „крачки“ от Крис в социалната мрежата. Дали Мери се среща с бившия на някоя от приятелките си? 

Графите правят подобни заявки лесни за изпълнение. Няма нужда от безкрайно извличане на данните от таблици, защото връзките определят къде да попадне заявката. Инструменти като Neo4J, OrientDB и DataStax са само някои от опциите, които сега се броят на пръстите на две ръце. Те имат свои собствени езици за заявки също.

Облачни БД

Една от най-големите промени е в начина, по който купуваме софтуер за бази данни. В миналото купувахме собствени машини и подписахме лицензионни споразумения за използвания софтуер. Сега компаниите за облачни услуги предлагат съхранение на информация, която не можем да видим и докоснем. Просто ни казват, че данните ще бъдат там, когато ги потърсим. 

Предимствата са очевидни. Няма нужда да се поддържа сървър или необходимото за целта помещение. Дори може да забравите грижите за лицензирането, конфигурирането и инсталирането на ъпдейти. Някой друг се занимава с всичко това. Решението често е и по-евтино - особено ако нямате голямо количество данни. Услугите обикновено се таксуват според заетото пространство. 

Но опасностите, ако има такива, лежат в сенките. Има ли някой друг достъп до данните? Защитен ли е сървърът от токов удар, гръмотевични бури или наводнения? Архивират ли се надеждно данните? За всичко това, трябва да се доверите на доставчика на облаци. 

Основните доставчици на такъв тип услуги Google, Microsoft и Amazon предлагат и дълъг списък от услуги за бази данни. Наскоро Oracle, MongoDB и DataStax също пуснаха бази данни в облак. 

Изкуствен интелект (AI)

Казват, изкуственият интелект е само термин за последното поколение изследвания, които лабораториите бълват към производителите. Има редица нови продукти и решения, украсени с думи като "машинно обучение" или "невронни мрежи" или "дълбоко учене". Те може да не изглеждат като база данни, но само ги запълнете с данни и им задайте въпроси. Защо не? 

Добрата новина при решенията с изкуствен интелект е, че не е нужно да знаете какво точно търсите. Просто да размахвате ръката и си пожелавате нещо нездравословно или "най-интересното", или "най-близкото". Няма нужда да притежавате точния ключ, т.нар. референтен номер, който хората за обслужване на клиенти винаги ви молят да запишете. 

Лошата новина е, че няма да знаете дали сте получили правилния отговор, защото не сте задали въпроса точен въпрос. Това съобщение ли е наистина най-интересно? От друга страна, най-голямата тайна за успеха на Google е, че няма един правилен отговор. Списъкът с инструментариума за машинно обучение е твърде дълъг, за да го бъде изложен. Винаги можете да попитате любимата си търсачка за "най-интересното" AI.

Блокчейн

Понятието блокчейн често се асоциира със сложната икономика и политика на Bitcoin, но ако оставим настрана темата за криптовалутите, това е един изключително стабилен, практичен и добре подреден магазин за данни. Всеки на "дългата маса" има шанс да актуализира данните и да споделя отговора. Вълнуващо е, че всички споделят едни и същи отговори. Това е идеално за бизнеса, защото конкурентите се държат приятелски.

Редица разработчици отиват по-нататък и говорят за "интелигентни договори", т.е. битовете в базата данни са достатъчно надеждно защитени, за да се използват в юридическата сфера. Това е непостижимо с обикновена база данни, която може да бъде променена от всеки с администраторски права. 

Има обаче слаби места. Всеки потребител трябва да поддържа ключ за шифроване, тъй като всички транзакции трябва да бъдат подписани цифрово. Ако този ключ се изгуби или забрави, данните в тези редове се замразяват завинаги. Ако този ключ бъде откраднат, всички залози биват изключени. Блокчейн не е перфектен, с други думи, но е много по-надежден от стандартния модел. 

R3, Ripple и IBM са само трима от многото конкуренти, които проучват пространството. Много от водещите банки имат свои собствени вътрешни проекти. А компании като Bitcoin и Altcoin, също са голяма част от екосистемата. 





© Ай Си Ти Медиа ЕООД 1997-2019 съгласно Общи условия за ползване

X