Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Chroniqueur Actualités

    HSBC simplifie son modèle de données en passant de 65 BDD relationnelles à une seule base de données MongoDB
    HSBC, un groupe bancaire, simplifie son modèle de données en passant de 65 bases de données relationnelles
    à une seule base de données MongoDB pour tous les pays

    La semaine passée, Narasimha Reddy, concepteur de données chez HSBC, un groupe bancaire international britannique, a expliqué comment l'organisation cherche à simplifier son approche de la livraison d'applications en migrant de 65 bases de données relationnelles vers une instance mondiale de MongoDB. HSBC est l'une des organisations de services bancaires et financiers les plus reconnues au monde, opérant dans plus de 60 pays et servant plus de 40 millions de clients. Cependant, cette échelle s'accompagne d'une complexité opérationnelle importante, notamment en ce qui concerne la manière dont la banque fournit ses applications et ses modèles de données.

    Reddy a expliqué comment l'image ci-dessous a créé un modèle de données global complexe pour les applications, qui a créé un modèle à coût élevé à chaque étape du cycle de développement logiciel. Cela rend impossible le maintien d'une version de l'application et d'un modèle de données dans le monde des bases de données relationnelles, dit-il.


    Reddy a déclaré que HSBC cherchait à réaliser un modèle de données mondial et, par conséquent, une base de données unique pour tous les pays. Les avantages de ceci incluent des coûts réduits, une flexibilité et la possibilité d'exécuter plus facilement des analyses et des rapports mondiaux (chaque pays fonctionnant sur un modèle de données unique).

    Dans la pratique, cela signifie que chaque pays sera en mesure de maintenir ses exigences de demande individuelle, mais sans avoir à exploiter une base de données de pays unique. Un modèle de données unique est en cours de création, ce qui permet non seulement d'économiser sur les coûts et les ressources pour HSBC, mais lui donne la liberté de faire avancer sa propre conception de modèle de données.

    Comme le montre l'image ci-dessus, HSBC avait un environnement de base de programme d'application, qui avait la plupart des fonctionnalités de base d'une application. Mais il ne pouvait pas avoir un seul environnement de programme en cours d'exécution pour tous les pays, en raison des différences dans les modèles de données et les bases de données.

    Selon l'image ci-dessous, HSBC a maintenant une nouvelle architecture selon laquelle plusieurs pays à travers le monde utilisent la même application. C'est maintenant un environnement de service, une base de données et un chemin d'exécution pour tous les pays. Cela est rendu possible grâce au modèle de document de MongoDB et à la possibilité de mapper toutes les différentes exigences de tableau pour chaque pays dans une seule collection, en utilisant des sous-documents. Tout est simplifié en une seule collection en utilisant des identifiants spécifiques au pays.


    « Les exigences locales pour chaque pays seront intégrées dans l'application, mais il n'est plus nécessaire de maintenir des modèles de données ou des bases de données distincts. Nous pourrions facilement concevoir le modèle de données global et la base de données en utilisant le modèle de schéma MongoDB JSON. Cela rassemble les données de tous les pays dans une seule base de données et l'application peut fonctionner sur une seule base de données. Ce qui représente beaucoup de réduction des ressources et des coûts de maintenance.

    Un autre avantage est d'utiliser la même base de données pour l'analyse des données et les rapports globaux. Nous n'avons pas besoin de traduire dans un autre modèle de données ou une autre base de données pour exécuter l'analyse et les rapports à partir de ces données particulières. Tout cela entraîne de grandes économies de ressources et de coûts. J'ai appris en utilisant MongoDB que lorsqu'une base de données est sans schéma et fournit des requêtes et une indexation puissantes, je pilote la conception de mon modèle de données, pas la base de données », dit-il pour conclure.

    Les internautes ne partagent pas le point de vue de Narasimha Reddy. Pour eux, un ensemble de microservices partageant une instance de base de données est un peu un anti-modèle.

    Source : Diginomica

    Et vous ?

    Qu'en pensez-vous ?
    Êtes-vous pour ou contre l'utilisation de MongoDB pour un tel projet ? Pourquoi ?
    Selon vous, MongoDB est-il adapté pour un tel projet ?
    Quel SGBD recommanderiez-vous pour un tel projet et pourquoi ?

    Voir aussi

    MongoDB 4.4, Atlas Data Lake, Atlas Search et MongoDB Realm aident les entreprises à réduire la prolifération des données et donnent aux développeurs un moyen efficace de travailler avec les données

    Après Debian, Red Hat supprime MongoDB de RHEL 8 et Fedora à cause de sa licence SSPL dont le statut de licence libre ou open source est contesté

    MongoDB : comment éviter les attaques qui prennent en otage vos données ? Un billet de l'entreprise pour essayer d'endiguer ce phénomène

    MongoDB annonce l'abandon d'AGPL pour une nouvelle licence autour de laquelle la désignation open source fait débat
    Contribuez au club : Corrections, suggestions, critiques, ... : Contactez le service news et Rédigez des actualités

  2. #2
    Rédacteur

    C'est bien.... Comme ça les clients français vont se retrouver mélanger avec les clients des autres pays et le tout sur un cloud US.....

    Donc, la NSA et le FBI pourront avoir accès aux données des comptes bancaires français en toute légalité !

    A +
    Cette signature n'a pas pu être affichée car elle comporte des erreurs.

  3. #3
    Expert confirmé
    Citation Envoyé par SQLpro Voir le message
    Comme ça les clients français vont se retrouver mélanger avec les clients des autres pays
    Je doute fortement que les ingé de HSBC n'aient pas pensé à ça.

    Citation Envoyé par SQLpro Voir le message
    et le tout sur un cloud US.....
    J'ai peut-être raté un truc mais c'est indiqué où ? Et de toute façon, ça n'a rien à voir : leurs bases précédentes étaient peut-être toutes dans du cloud US ou dans un datacenter US.

    Citation Envoyé par SQLpro Voir le message
    Donc, la NSA et le FBI pourront avoir accès aux données des comptes bancaires français en toute légalité !
    Oui, alors qu'avec Sql Server, ça aurait été beaucoup plus protégé...

  4. #4
    Membre du Club
    Et l'ACID ?
    Je me demande comment une banque (qui est - pas hsbc - à l'initiative des BDD relationnel) peut allez vers une bdd comme mongodb.
    Parce que la cohérence de donnée ne peut pas être aussi bien assuré, même avec une bonne application maître, et d'après le diagramme ils sont en connexion parallèle dessus donc pas de cohérence. Ou alors ils sont développer des outils satellites pour gérer des problèmes spécifiques.
    À moins qu'il fasse de simples écritures de transaction bancaire et quelques workers pour faire des calcules.

    En tout cas ça m'intrigue.

  5. #5
    Modérateur

    [Hors Sujet]
    HSBC et la rigueur des transactions bancaires, c'est toute une histoire.
    [/Hors Sujet]
    Cette signature n'a pas pu être affichée car elle comporte des erreurs.

  6. #6
    Membre éclairé
    Citation Envoyé par SimonDecoline Voir le message
    Je doute fortement que les ingé de HSBC n'aient pas pensé à ça.



    J'ai peut-être raté un truc mais c'est indiqué où ? Et de toute façon, ça n'a rien à voir : leurs bases précédentes étaient peut-être toutes dans du cloud US ou dans un datacenter US.



    Oui, alors qu'avec Sql Server, ça aurait été beaucoup plus protégé...
    En fait il ne parle pas du moteur de base de données mais de leur localisation

  7. #7
    Modérateur

    Surtout on n'a pas le contexte sur le type d'application concernée.
    Car une banque ça va des comptes bancaires bien entendu aux outils de blogging interne pour les RH.

  8. #8
    Membre éprouvé
    Citation Envoyé par Waldar Voir le message
    Surtout on n'a pas le contexte sur le type d'application concernée.
    Car une banque ça va des comptes bancaires bien entendu aux outils de blogging interne pour les RH.
    Oui je ne suis pas sûr de vraiment comprendre l'article.

    Est-ce qu'on parle de l'ensemble de TOUTES les données HSBC ?

    Dans ce cas je ne serais pas surpris de voir un article dans 2 ans présentant la migration inverse ... (vers SQL Server ou PostGreSQL ou DB2 ou Oracle)

    Par contre si les 65 DB représentent en fait un sous-ensemble plus "documentaire" tel que des données marketing client alors oui ok MongoDB unique mais bon ...

  9. #9
    Expert éminent
    Surtout, y'a un truc que je pige pas trop...

    Le titre parle de "modèle de données".
    Chez moi un modèle de données, ça vient tout droit de la modélisation MERISE (puis UML), et ça parle du modèle logique (ou physique) des données.
    Wikipedia semble d'accord avec moi : https://fr.wikipedia.org/wiki/Mod%C3...e_donn%C3%A9es

    C'est à dire des notions abstraites sans aucun rapport avec le support (SGBD, serveur, localisation). Simplement que quelque soit l'application, la base ou le pays, la table "client" est la même (en termes de structure).

    Alors que l'article parle de la recentralisation de bases déportées... je ne vois pas la rapport.
    D'autant que les modèles de données hétérogènes semble conservés... ce qui va à l'encontre du bon sens dans un tel scénario : si je mets toutes les données au même endroit, c'est pour faciliter leur consolidation... ça commence donc par une harmonisation de leur structure !

    Et sinon, pour en revenir à la remarque de SQLPro, HSBC gère des données bancaires, et effectivement, au même titre que les données de santé, la RGPD est très restrictive en termes de stockage de ces données hors UE.
    A l'inverse, je doute que les américains acceptent de stocker leurs données bancaires dans un pays communiste tel que la France...

    Bref, on parle de leur Facebook d'entreprise, ou de la tenue des comptes bancaires ?
    On ne jouit bien que de ce qu’on partage.

  10. #10
    Membre expert
    Bonsoir,

    Juste pour info HSBC c'est HongKong Shanghai Bank Corporation ... donc Chinois ...

    HSBC simplifie son modèle de données en passant de 65 BDD relationnelles à une seule base de données MongoDB

    Qu'en pensez-vous ?
    Entre les activités bancaires, boursières, de holding, de crédit, de prévoyance santé , de prévoyance retraite, d'épargne salarial, les services divers ... ajoutez à cela la fiscalité et le fonction institutionnel/administratif de chaque pays. J'aimerai bien voir la tronche du truc !

    Quid aussi des ODI , datawarehouse et datamart ?

    Êtes-vous pour ou contre l'utilisation de MongoDB pour un tel projet ? Pourquoi ?
    Ni pour , ni contre. Chaque logiciel de BDD a ces spéc d'utilisation (SQL Server, MYSQL, ORACLE ... )

    Quel SGBD recommanderiez-vous pour un tel projet et pourquoi ?
    SQL Server ou Oracle ou AS400 , j'ai déjà vu pour du super lourd . La BDD de la sécu en France tourne bien sur du Oracle. +/- 100 millions d’users enregistrés et +/- 80 millions de profils actifs.

  11. #11
    Expert éminent
    Citation Envoyé par tanaka59 Voir le message
    Juste pour info HSBC c'est HongKong Shanghai Bank Corporation ... donc Chinois ...
    Faux, c'est anglais.

    Ca a été fondé effectivement à Hong Kong, mais par un anglais.
    Et maintenant le siège social est à Londres.

    https://fr.wikipedia.org/wiki/HSBC
    On ne jouit bien que de ce qu’on partage.

  12. #12
    Membre chevronné
    HSBC c'est une banque de filoux


    Ce qui me pose question.
    Si la base est mondiale, contenu que le groupe est implemté partout.
    Le soleil ne ce couche jamais dessus, comme c'était pour l'empire britanique.

    Ils vont les faire quand les batch et les opérations de maintenances ?
    Consultez mes articles sur l'accessibilité numérique :

    Comment rendre son application SWING accessible aux non voyants
    Créer des applications web accessibles à tous

    YES WE CAN BLANCHE !!!

    Rappelez-vous que Google est le plus grand aveugle d'Internet...
    Plus c'est accessible pour nous, plus c'est accessible pour lui,
    et meilleur sera votre score de référencement !

  13. #13
    Expert éminent sénior
    Citation Envoyé par StringBuilder Voir le message
    Chez moi un modèle de données, ça vient tout droit de la modélisation MERISE (puis UML), et ça parle du modèle logique (ou physique) des données.
    Wikipedia semble d'accord avec moi : https://fr.wikipedia.org/wiki/Mod%C3...e_donn%C3%A9es

    C'est à dire des notions abstraites sans aucun rapport avec le support (SGBD, serveur, localisation). Simplement que quelque soit l'application, la base ou le pays, la table "client" est la même (en termes de structure).
    D'accord pour le modèle logique (MLD), mais le modèle physique (MPD) est au contraire la déclinaison du modèle logique en fonction du choix du SGBD et des optimisations mises en œuvre par les équipes techniques (DBA notamment).
    Par ailleurs, le modèle de données selon la méthode Merise commence en amont, certes facultativement mais c'est très fortement recommandé, car ça évite bien des erreurs, par le modèle conceptuel (le MCD).

  14. #14
    Expert éminent
    Citation Envoyé par escartefigue Voir le message
    D'accord pour le modèle logique (MLD), mais le modèle physique (MPD) est au contraire la déclinaison du modèle logique en fonction du choix du SGBD et des optimisations mises en œuvre par les équipes techniques (DBA notamment).
    Par ailleurs, le modèle de données selon la méthode Merise commence en amont, certes facultativement mais c'est très fortement recommandé, car ça évite bien des erreurs, par le modèle conceptuel (le MCD).
    Mise à part si tu parts sur un SGBD NoSQL, ou des fichiers séquentiels indexés ne supportant pas les clés étrangères ou contraintes, le MPD est le même quelque soit le SGBD-R utilisé.
    Je ne vois pas quelles "optimisations" ou "spécificités" tu vas y trouver.

    Peut-être quelques trucs genre décision entre stockée des données BLOB en base ou sur disque... et encore, j'ai envie de dire, cela n'a pas grand chose à faire dans le MPD : le concepteur n'a pas vraiment à se soucier dans l'implémentation programmatique finale : que la photo de la personne soit stockée dans un fichier ou dans une table, elle n'en reste pas moins membre de la table "personne", et doit apparaître dans le MPD en tant que telle.
    En revanche, je suis d'accord que dans le MLD, on fera apparaître non pas la photo en tant que colonne, mais le nom du fichier, et là, on pourra avoir quelques distinctions d'un SGBD à l'autre.

    Dans tous les cas, la décision d'éclater le modèle en plusieurs bases ne peut pas résulter de la conception, mais de problématiques ultérieures telles que :
    - comme mentionné, le besoin d'avoir des données endormies quelques heures par jour afin de pouvoir faire de la maintenance à froid (youpi, vive les années 90)
    - la nécessité de découper les données trop volumineuses pour une seule base (re-youpi, re-vive les années 90 avec ses disques dur de 80 Mo !)
    - la nécessité légale de séparer certaines des données (RGPD, fichier national des cartes volées, etc.)
    - l'historique de la fusion d'autres entreprises qui se sont greffées avec leur propre SI

    Dans tous les cas, au final, avoir plusieurs bases distinctes c'est plus d'emmerde qu'autre-chose (la preuve).
    Aujourd'hui seul les deux derniers points peuvent se justifier vraiment.
    Et HSBC semble avoir trouvé un moyen (qui me semble cependant plus proche de la verrue plantaire qu'autre-chose) pour faire abstraction de cette séparation des données... d'ailleurs, à mon sens ça ne résous pas du tout le souci du troisième point : si le fichier national des cartes volées ne doit être consultable que par des agences françaises par exemple, compliqué de le restreindre (et de justifier que cette restriction est effective et inviolable) dans un modèle qui expose la donnée au monde entier...
    Idem pour les données RGPD qui ne doivent pas sortir d'UE, compliqué de s'assurer qu'un traitement lancé dans la soupe d'abstraction ne va pas les traiter ailleurs.
    On ne jouit bien que de ce qu’on partage.

  15. #15
    Modérateur

    Citation Envoyé par StringBuilder Voir le message
    Mise à part si tu parts sur un SGBD NoSQL, ou des fichiers séquentiels indexés ne supportant pas les clés étrangères ou contraintes, le MPD est le même quelque soit le SGBD-R utilisé.
    Je ne vois pas quelles "optimisations" ou "spécificités" tu vas y trouver.
    Non pas du tout, ne serait-ce que les types de données, la gestion des clefs primaires et des index, le partitionnement, le code SQL des vues, le stockage des données tout diffère au niveau du MPD.
    Prenez un MCD ou un MLD et générez-le sur Oracle DB ou MS SQL-Server vous verrez bien.

    Le MPD c'est le code DDL/DML qu'on exécute sur la base pour générer les objets.

  16. #16
    Expert éminent
    Citation Envoyé par Waldar Voir le message
    Non pas du tout, ne serait-ce que les types de données, la gestion des clefs primaires et des index, le partitionnement, le code SQL des vues, le stockage des données tout diffère au niveau du MPD.
    Prenez un MCD ou un MLD et générez-le sur Oracle DB ou MS SQL-Server vous verrez bien.

    Le MPD c'est le code DDL/DML qu'on exécute sur la base pour générer les objets.
    Euh, non, un MPD c'est ça :

    https://www.base-de-donnees.com/mpd/

    Et le MLD, c'est le DDL en pseudo-code ne décrivant QUE les colonnes des tables, clés primaires et clés étrangères :

    https://www.base-de-donnees.com/mld/

    L'un ET l'autre n'ont rien à voir avec le SGBD choisi.
    On ne jouit bien que de ce qu’on partage.

  17. #17
    Modérateur

    Dans la méthodologie Merise, le MPD (Modèle Physique des Données) fait suite au MCD. Ensuite viendra le MLD.
    Votre source laisse à désirer non ?

  18. #18
    Expert éminent
    Je regarde quelques articles, et je suis perplexe.

    Soit MERISE a clairement évolué depuis 1998 quand je l'ai appris (ce qui m'étonnerait quelque peut, puisque cette méthodologie est bien plus ancienne et déjà à l'époque critiquée pour sa désuétitude) soit y'a vraiment des gens qui n'ont rien compris (mon prof de l'époque, ou des personnes formées depuis, notamment celle qui a rédigé l'article Wikipedia... qui est au demeurant parfaitement incomplet, manque d'exemples et d'explications... notamment sur la partie MPD qui n'est même pas présent dans l'index de l'article !)

    Vu que j'ai confiance dans mon prof, que je trouve plusieurs sources, et mêmes logiciels qui ont la même définition que moi du MPD, je pense donc que Wikipedia compris, pas mal de monde confond avec une autre notion, probablement héritée de l'UML.

    Pour résumer, en ce qui concerne les données, et uniquement les données (donc pas les traitements) :

    Dictionnaire des données -> Modèle Conceptuel des données -> Modèle Physique des données -> Modèle Logique des données

    Très généralement, on s'arrête au MCD, car le MPD est pour ainsi dire identique et 100% déductible à partir du MCD sans aucune interprétation possible, et le MLD n'a aucun intérêt comparé a un script SQL, si ce n'est être plus concis, car bien plus résumé.

    Le MCD définit donc les entités, contenant les données identifiées dans le dictionnaire, ainsi que les relations (porteuses elles aussi parfois de données) :


    Le MPD transforme les entités ainsi que relations porteuses de données en tables, et y indique les références d'intégrité :


    Quant au MLD, il sera utile ensuite au moment de la programmation pour visualiser d'un coup dans quelle table se trouve telle donnée du dictionnaire des données... sans plus d'information sur son type notamment, mais tout de même les infos de clés primaires, alternatives et étrangères) :

    client (id, matricule, nom, adresse)
    chambre (id, numero, prix)
    reservation (id, client_id, chambre_id, debut, fin)

    Un DDL/DML est un DDL/DML, je ne vois pas pourquoi MERISE se serait amusé à les renommer... d'autant que MERISE a été inventé avant le SQL !
    On ne jouit bien que de ce qu’on partage.

  19. #19
    Expert éminent
    Bon, me voilà rassuré...

    Le cours de Frédéric Brouard parle bien du MPD dans les mêmes termes (avec les inexactitudes en moins) :
    https://sqlpro.developpez.com/cours/...es-donnees-mpd
    => tu verras dans les schémas (que j'ai mis du temps à comprendre ) que la partie haute (MCD, qui ressemble au mien) est transformée en bas en MPD (qui ressemble aussi au mien).

    Et on voit bien que dans le MPD du cours, on parle toujours de "I, A7, etc." et non de "number, varchar2(7), etc."

    Personnellement j'évite de surcharger mes MPD/MCD avec les types, que je préfère indiquer une fois pour toute dans le dictionnaire de données : un seul document à maintenir, c'est plus simple... et plus lisible

    Edit : à noter même que le "vrai" MPD de Frédéric ne mentionne pas la clé technique "id" qui sera probablement créée au moment de l'implémentation dans le SGBD (puisque ça dépend du SGBD, pas de l'analyse, et donc pas de MERISE). Il préfère garder une clé (fonctionnelle) NUMERO_SECU en aplha13 alors que jamais de la vie on n'aura une PK sur un tel champ dans SQL Server, sous peine de plomber les performances. Mais ça MERISE n'en a rien à carrer, donc le MPD aussi. Donc dans mon MPD d'exemple, les ID que j'ai rajouté n'ont même pas lieu d'être. C'est au développeur/DBA que va créer la base de données de les mettre en place. En revanche, qu'ils soient présents ou non ne change rien au modèle des données, ce sont des clés techniques, qui n'ont aucun intérêt et ne figurent pas au dictionnaire des données.
    On ne jouit bien que de ce qu’on partage.

  20. #20
    Rédacteur

    Puisque je suis cité je vais faire quelques remarques et précisions.
    0) je suis en vacances en plongée et sur un téléphone portable avec un débit de merde don accès très restreint.. Je cite donc de mémoire...
    1) mes articles sur merise ont plus de 20 ans
    2) merise est passé à merise 2, avec l'héritage les associations n-aire, l'association identifiante...
    3) mld et mpd différent en plusieurs points...
    3.1) au niveau du mld il n'y a pas de types de données mais des domaines. Certains sgbdr supportent cette notion (db2, postgres...) d'autres non (oracle...), d'autres encore ont une notion similaire (sql server avec les "types"...)
    au niveau du mpd ce seront donc des domaines où des type suivant la cible. Si ce sont des types, ils différent d'un sgbdr à l'autre. Par exemple oracle ne connaît pas le nchar/nvarchar ni postgresl d'ailleurs...
    3.2) dans un modèle logique, aucun aspect physique ne doit etre abordé. Dans le modèle physique les notions de storage, index, partitions... Doivent être implémentée.
    ...
    4) le mld n'a pas d'intérêt majeur si :
    4.1) un affinement strictement mathématique du modèle n'est pas effectué (dépendances fonctionnelles, règles d'armstrong... Et tout le fourbi).
    4.2) on implémente la base sur un seul serveur cible.
    Dans tous les autres cas, il faut utiliser le mld
    5) le mpd est unique par rapport à un sgbdr cible. Il peut donc y avoir plusieurs mpd si la solution doit être implémentée sur oracle et postgresl par exemple
    6) on oublie trop souvent le med (modèle externe de données) indispensable et hélas incompris... (vues, déclencheurs, udf, procédures...)
    A ➕
    Cette signature n'a pas pu être affichée car elle comporte des erreurs.

###raw>template_hook.ano_emploi###