Защо разработчиците трябва да използват графични бази данни

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

Разработихме модел на метаданни, който обхвана всички термини за търсене, но механизмът за обработка на естествен език изисква моделът да разкрие значителни връзки с метаданни. Знаехме, че проектирането на модел на метаданни с произволни връзки между точките от данни в релационна база данни е сложно, затова изследвахме с помощта на обектни бази данни за управление на модела.

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

Използването на графични бази данни със сигурност се е увеличило през последното десетилетие, тъй като компаниите са разглеждали други NoSQL и технологии за големи данни. Глобалният пазар на бази данни за графики се оценява на 651 милиона долара през 2018 г. и се прогнозира да нарасне до 3,73 милиарда долара до 2026 г. Но много други технологии за управление на големи данни, включително Hadoop, Spark и други, са забелязали много по-значителен ръст в популярността, усвояването на умения, и случаи на производствена употреба в сравнение с графични бази данни. За сравнение, размерът на пазара за технологии за големи данни се оценява на 36,8 млрд. Долара през 2018 г. и се очаква да нарасне до 104,3 млрд. Долара до 2026 г.

Исках да разбера защо повече организации не обмислят бази данни с графики. Разработчиците мислят в обекти и редовно използват йерархични представяния на данни в XML и JSON. Технолозите и заинтересованите страни в бизнеса вътрешно разбират графиките, тъй като Интернет е взаимосвързана графика чрез хипервръзки и понятия като приятели и приятели на приятели от социалните мрежи. Тогава защо повече разработчици не са използвали графични бази данни в своите приложения?

Изучаване на езици за заявки на графични бази данни

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

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

Говорих с Джим Уебър, главен учен в Neo4j, една от създадените бази данни за графики, за това как да създадем заявка за приятели от приятели. Разработчиците могат да правят заявки към бази данни на Neo4j, като използват RDF (Resource Description Framework) и Gremlin, но Уебър ми каза, че повече от 90% от клиентите използват Cypher. Ето как изглежда заявката в Cypher за извличане на приятели и приятели на приятели:

MATCH (me:Person {name:'Rosa'})-[:FRIEND*1..2]->(f:Person)

WHERE me f

RETURN f

Ето как да разберете тази заявка:

  • Намерете ми шаблона, където има възел с етикет Person и име на свойството: 'Rosa', и го свържете с променливата "me". Заявката уточнява, че „аз“ има изходяща връзка ПРИЯТЕЛ на дълбочина 1 или 2 към всеки друг възел с етикет Person и свързва тези съвпадения с променлива „f“.
  • Уверете се, че „аз“ не е равно на „f“, защото съм приятел на моите приятели!
  • Върнете всички приятели и приятели на приятели

Заявката е елегантна и ефективна, но има крива на обучение за тези, използвани за писане на SQL заявки. В това е първото предизвикателство за организациите, които се придвижват към бази данни с графики: SQL е широко разпространен набор от умения, а Cypher и други езици за заявки на графики са ново умение за учене.

Проектиране на гъвкави йерархии с графични бази данни

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

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

Говорих с Марк Клуша, съосновател на Construxiv, компания, продаваща технологии на строителната индустрия, включително Grit, платформа за планиране на строителството. Ако погледнете графика на търговски строителен проект, ще видите препратки към множество занаяти, оборудване, части и модели. Един работен пакет може лесно да има стотици задачи със зависимости в плана на проекта. Тези планове трябва да интегрират данни от ERP, информационно моделиране на сгради и други планове на проекти и да представят изгледи на планиращите, ръководителите на проекти и подизпълнителите. Клюша обясни, „Използвайки база данни с графики в Grit, ние създаваме много по-богати взаимоотношения за това кой какво прави, кога, къде, с какво оборудване и с какви материали. Това ни позволява да персонализираме изгледите и да прогнозираме по-добре конфликтите при планирането на работни места. "

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

Опциите за внедряване в облак намаляват оперативните сложности

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

Организациите, които експериментират с графични бази данни, вече имат няколко опции за облак. Инженерите могат да внедрят Neo4j в GCP, AWS, Azure или да използват Aura на Neo4j, база данни като услуга. TigerGraph разполага с облачно предлагане и стартови комплекти за случаи на употреба като клиент 360, откриване на измами, механизми за препоръки, анализ на социални мрежи и анализ на веригата за доставки. Освен това доставчиците на публични облаци имат възможности за бази данни на графики, включително AWS Neptune, API на Gremlin в CosmoDB на Azure, JanusGraph с отворен код на GCP или графични функции в Cloud Database Services на Oracle.

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