Comprendre la stratégie de base de données graphique de Microsoft

Cela a pris du temps, mais l'achat de 26 milliards de dollars de LinkedIn par Microsoft commence enfin à donner des résultats intéressants, les données de LinkedIn commençant à apparaître dans des outils comme Outlook. C'est le premier signe que Microsoft utilise le graphique des relations du réseau social, l'ensemble de données complexe qui a été à l'origine de l'une des plus grandes acquisitions de Microsoft dans la Silicon Valley.

Sous le capot, un réseau social comme LinkedIn n'est rien de plus qu'une énorme base de données de graphes NoSQL, utilisant une approche sans schéma pour gérer les données semi-structurées. Chaque nœud du graphique est un individu, avec toutes ses données de profil. Chaque nœud est lié à d'autres, des dizaines ou des centaines pour les personnes ayant quelques connexions, des milliers pour les individus hautement connectés. Les requêtes traversent ces connexions, vous permettant de trouver toutes les personnes que vous connaissez qui travaillent sur l'IA, qui sont basées en Ontario ou qui travaillaient auparavant chez LinkedIn.

Bases de données Graph partout: Microsoft Graph, Common Data Service, Cosmos DB et Security Graph

L'intérêt de Microsoft pour les données graphiques est clair. Le PDG Satya Nadella a décrit les API Office 365, le fondement de ce que l'on appelle maintenant Microsoft Graph, comme le pari «le plus important» de l'entreprise. C'est certainement un outil très puissant, et son ouverture à tout le monde permet aux organisations d'explorer comment leurs équipes internes évoluent et comment les connaissances d'entreprise sont stockées dans les documents et les conversations - ainsi que les outils pour exposer ces informations et les rendre utilisables.

Il y a beaucoup de données dans Microsoft Graph, avec des outils à la fois pour les informations des consommateurs et des informations commerciales. Les éléments associés aux comptes Microsoft, tels que le nouveau flux d'activité et le graphique de l'appareil, sont à la base des fonctionnalités d'itinérance des appareils telles que les outils Continuer sur mon PC récemment publiés pour iOS et Android (similaire à la capacité de transfert basée sur le compte iCloud d'Apple dans iOS) , et que Microsoft encourage les développeurs de Universal Window Platform (UWP) à intégrer dans leur code dans le cadre de Project Rome et de la prochaine fonctionnalité Windows Timeline.

Mais Microsoft Graph et LinkedIn ne sont pas les seuls graphiques de Microsoft avec des API:

  • Dynamics 365 dispose du service de données communes, un moyen de décrire les éléments standard d'une entreprise. Avec Common Data Service, vous pouvez étendre un schéma standard avec votre modèle de client ou vos produits.
  • Ensuite, il y a le Cloud Cosmos DB, qui s'appuie sur une base de données de documents JSON avec différents ensembles d'API, dont un pour développer et gérer vos propres bases de données graphiques à grande échelle.
  • Bien que n'étant pas complètement public, le Security Graph de Microsoft est utilisé pour évaluer et gérer les menaces, exposées à vos applications via des outils tels que la fonctionnalité d'accès conditionnel d'Azure Active Directory.

L'approche différente de Microsoft: interroger plusieurs graphiques

Là où les choses deviennent intéressantes, c'est d'utiliser des requêtes graphiques sur plusieurs graphiques et de les utiliser pour extraire des informations qui peuvent aider à prendre des décisions commerciales. J'ai souvent parlé de l'idée d '«information au bon moment»: la bonne information au bon moment, livrée aux bonnes personnes afin qu'elles puissent prendre la bonne décision pour le bon résultat commercial. Être capable d'interroger les bords d'un graphique, plutôt que sur le nœud, vous permet de comprendre les relations entre les éléments, un facteur clé dans la fourniture du type d'informations prises en charge par une entreprise moderne.

En prenant en charge plusieurs graphiques, Microsoft propose une alternative aux outils d'aide à la décision traditionnels basés sur une base de données. En mélangeant le personnel interne et les données documentaires sur Microsoft Graph, les relations externes via LinkedIn, les informations commerciales essentielles dans Dynamics 365 Common Data Service et le schéma personnalisé dans Cosmos DB hébergé dans le cloud, vous pouvez effectuer des requêtes croisées complexes en juste que des nœuds individuels dans ces graphiques, mais aussi sur les liens entre les nœuds. Cela vous permet de travailler avec des relations beaucoup plus complexes que celles exposées dans les bases de données relationnelles.

Une façon dont cela est exposé est dans le nouvel outil Bing for Business qui ajoute des informations d'un Active Directory d'entreprise et d'autres sources aux recherches Bing lorsqu'un utilisateur est connecté à un compte Azure Active Directory. Les résultats sont générés dynamiquement à partir de requêtes Microsoft Graph qui renvoient des détails, par exemple, sur l'emplacement d'une personne dans l'organigramme, ainsi que du contenu associé provenant du Web plus large et des documents partagés en interne.

C'est une manière différente d'exposer les informations disponibles dans l'outil Delve de Microsoft, en les prenant à partir d'une application qui devait être lancée avant de pouvoir effectuer une requête vers le navigateur toujours ouvert. En tant qu'industrie, nous avons intégré la recherche dans le navigateur, il est donc logique d'en faire l'un des outils que nous utilisons pour explorer les graphiques qui sous-tendent nos activités.

La version initiale de Bing for Business se concentre sur Microsoft Graph, ainsi que sur des outils permettant aux administrateurs d'ajouter des liens intranet spécifiques pour des requêtes spécifiques. Ainsi, lorsque vous recherchez la politique de dépenses actuelle, vous êtes dirigé vers les outils en libre-service appropriés. Les versions futures intégreront davantage de graphiques de Microsoft, verrouillant la fonctionnalité d'accès conditionnel basée sur les recherches et exposant les relations externes via LinkedIn.

Le défaut des graphes de Microsoft: ils utilisent des grammaires de requête différentes

Bien que la vision globale des différentes propriétés basées sur les graphiques de Microsoft commence à être claire, des problèmes persistent avec l'interrogation de plusieurs sources. Bien qu'ils proposent tous des API REST, les langages de requête sous-jacents peuvent différer. Par exemple, Microsoft Graph utilise sa propre grammaire de requête dans ses API, tandis que CosmosDB s'appuie sur le langage de requête graphique Apache Gremlin largement utilisé.

Les requêtes basées sur l'API ont tendance à être relativement simples, axées sur des recherches spécifiques. Les requêtes plus complexes ont tendance à être traitées à l'aide de langages spécifiques à un domaine comme Gremlin, conçus pour être utilisés avec des bases de données de graphes. L'une des fonctionnalités les plus intéressantes de Gremlin est sa capacité à générer de nouvelles cartes à partir des données sous-jacentes que vous pouvez analyser et utiliser dans vos applications. Gremlin peut également gérer la correspondance de modèles, ainsi que travailler avec des outils d'analyse de données à grande échelle tels que Hadoop; afin que vous puissiez l'utiliser pour fournir des requêtes à partir de l'outil Big Data HDInsight d'Azure aux côtés de vos graphiques hébergés par Cosmos DB.

Si nous voulons tirer parti de toutes les différentes propriétés des graphes Microsoft, nous aurons besoin d'une plate-forme de requête commune capable de traiter les requêtes et de les répartir entre diverses sources, en gérant les réponses de manière asynchrone et en garantissant que les requêtes sont correctement construites pour ciblez des API spécifiques.

Vous pouvez créer votre propre moteur de requête multigraphe, mais c'est vraiment quelque chose que Microsoft doit fournir, peut-être en tant que service Azure. De cette façon, il peut être intégré aux abonnements existants et aux méthodes d'authentification familières, que ce soit pour les utilisateurs ou pour les applications.