Netflix unifie son modèle data avec les technologies du web sémantique
De RDF à SKOS, Netflix a exploité des standards W3C pour unifier son modèle conceptuel autour d'un graphe de connaissances.

RDFS, OWL, SHACL... Ces technologies du web sémantique ne sont pas toutes jeunes, mais Netflix les a exploitées pour construire son "architecture de données unifiée" (UDA, Unified Data Architecture).
Ce projet répond à l'extension du catalogue de l'entreprise américaine (films, séries, jeux, événements, pub)... et aux divergences conceptuelles que cela suppose entre métiers. Dans un environnement de microservices, elles sont d'autant plus difficiles à détecter et ne favorisent pas la connectivité entre systèmes.
Des cas d'usage dans le reporting et le PDM
Pour aller vers un modèle cohérent et réutilisable, Netflix a constitué un graphe de connaissances qui :
- Enregistre des modèles de domaines
- Les catalogue et les associe à des conteneurs de données
- Les transpile en schémas
- Déplace automatiquement les données entre conteneurs
- Découvre et explore des concepts par traversée
- Peut être inspecté de manière programmatique
Netflix met en avant deux usages en production. D'une part, pour la gestion des données primaires (PDM, Primary Data Management). De l'autre, pour le reporting.
Dans le premier cas, les modèles de domaines sont transformés en taxonomies. Lesquelles sont projetées en schémas pour alimenter des produits data (à partir de la passerelle GraphQL interne et du data warehouse). L'outil repose sur le modèle SKOS (Simple Knowledge Organization System).
Dans le second cas, UDA catalogue et relie les concepts, puis parcourt le graphe de connaissances pour générer des requêtes SQL. Il est capable de détecter les îles et les frontières, éliminant ainsi les requêtes non exécutables ou incorrectes du point de vue sémantique.
Les technologies retenues présentaient des définis. Pour RDFS, par exemple, le peu de littérature concernant l'organisation des données en graphes nommés ou la définition des frontières de gouvernance. Pour SHACL, l'incapacité à gérer en natif un pattern de schémas locaux (un graphe unique est attendu). Pour les frameworks d'ontologie, une mauvaise prise en charge de la modélisation collaborative.
Un méta-modèle comme ontologie supérieure
UDA est ancré sur un méta-modèle maison (Upper). Celui-ci projette les modèles en schémas et en pipelines. Il est conçu comme une ontologie supérieure :
- Autoréférente (il se modélisé lui-même comme un modèle de domaine)
- Autodescriptive (il définit le concept de modèle de domaine)
- Autovalidant (il se conforme à son propre modèle)
Comme tous les modèles de domaines en sont des extensions conservatrices, ils s'intègrent dans le même runtime, favorisant la cohérence sémantique et l'interopérabilité.
Pour cataloguer les représentations des conteneurs de données dans le graphe de connaissances, UDA enregistre les coordonnées et les métadonnées des actifs data sous-jacents. Mais contrairement aux solutions traditionnelles, il ne suit que les assets qui présentent une connexion sémantique à des modèles de domaines.
Une fédération GraphQL dont s'inspirer
Pour le moment, chaque environnement a sa base de connaissances hébergeant modèles de domaines, représentations des conteneurs de données et mappings (en RDF natif, sur Amazon Neptune). Chaque équipe a donc son graphe local, UDA assurant une traduction centralisée.
Netflix cherche à passer son approche à l'échelle pour les données d'instances, afin de nourrir notamment des cas de profilage. Il envisage par ailleurs la prise en charge de types de projections supplémentaires, comme Protobuf.
La gestion des versions n'est pas encore formellement implémentée. L'idée est d'adopter le même modèle que la fédération GraphQL, qui a fait ses preuves chez le groupe américain (plus de 500 services).
Autre perspective : utiliser SHACL pour en tirer des contraintes SQL permettant une validation directement sur le data warehouse.
Illustration © Araki Illustrations - Adobe Stock
Sur le même thème
Voir tous les articles Data & IA