Golden Gate: comment répliquer des téraoctets par heure, ou expérience en utilisant CDC sur GoldenGate à VTB

Il existe de nombreuses façons d'analyser les données en temps réel. Chez VTB, nous utilisons la technologie Change Data Capture (CDC) implémentée dans l'outil Golden Gate Oracle: la vitesse est très importante pour nous, mais nous aimerions réduire la quantité de données transmises et réduire la charge sur la source. Et bien que la portée principale de cet outil soit la réplication à partir d'Oracle et de MS SQL, au fil des années de travail avec CDC, nous avons accumulé plusieurs cas intéressants, comme la migration de données entre plates-formes ou différents types de SGBD. Sous la coupe, nous partagerons notre expérience avec Golden Gate.



Pourquoi avons-nous eu besoin de CDC (Change Data Capture)


L'utilisation quotidienne des cartes bancaires est connue depuis longtemps et les gens ne pensent généralement pas que chaque utilisation d'un terminal de paiement est le transfert rapide de certaines informations à la banque. Les volumes de données augmentent, et je voudrais les traiter le plus rapidement possible, notamment pour envoyer des offres spéciales en temps réel, car, comme on dit, une bonne cuillère pour le dîner. Et les outils ETL traditionnels (extraire, transformer, charger - extraire, transformer, charger) ne sont pas si bons pour traiter les données à la volée. Voici l'un des maillons faibles: lorsque des données sont extraites des tables système source, vous devez sélectionner uniquement de nouvelles lignes ou des lignes avec des modifications. Cette approche charge en outre le système source et augmente la quantité de données transmises.

CDC capture les modifications des journaux de base de données en temps réel. La source est donc beaucoup moins chargée et la quantité de données transmises est réduite. Avec cette technologie, nous avons réduit le besoin de ressources informatiques pour les systèmes avec un grand volume de changements transactionnels: après tout, pour la capture de données même pour les systèmes bancaires les plus chargés, 1-2 cœurs de processeur à la source suffisent. Et si nous introduisions l'ETL, nous devions acheter des capacités de processeur afin de lire les données en parallèle.

Nous utilisons la technologie Oracle GoldenGate, l’outil CDC d’Oracle, depuis plusieurs années chez VTB. Avec son aide, nous remplissons l'entrepôt de données opérationnelles et distribuons les fonctions des systèmes d'information dans des zones «chaudes» et «chaudes». 90% des applications OGG dans le paysage informatique de la banque chargent des données depuis Oracle et MS SQL, mais, à l'exception de la réplication, elles s'adaptent parfaitement aux autres tâches. Regardons quelques exemples de notre pratique.



Cas 1. Rapports en ligne


Nous avons rencontré GoldenGate en 2013. Ensuite, dans notre complexe de traitement des cartes, les transactions ont été traitées simultanément et les rapports préparés. La charge OLTP a été mélangée à la charge DWH / DSS et de gros échantillons lourds ont nettoyé le cache de la mémoire de la base de données. En conséquence, les transactions rapides devaient aller sur le disque dur, la vitesse des services essentiels aux entreprises diminuait. Afin de décharger le cœur de traitement, nous avons pris toutes les procédures et tous les rapports que nous avons développés pour une réplique «chaude» sur Oracle Exadata.
Comment reproduire des données à l'aide de GoldenGate, nous avons décrit en détail ici . En bref: pour les systèmes très chargés où il y a mélange de différents types de charges, nous les distribuons à différents serveurs OLTP et DWH / DSS, et pour la synchronisation entre eux, nous utilisons GoldenGate. Ce modèle de mise en évidence d'une réplique «chaude» s'est avéré utile dans de nombreux autres cas. Par exemple, nous avons utilisé la même approche dans notre système anti-fraude - nous transférons tous les rapports aux systèmes Oracle Exadata intégrés, nous leur reproduisons les données à l'aide de GoldenGate.

Il n'y a pas de systèmes sans défaillances. Par exemple, si un développeur modifie les données sur le récepteur, une erreur d'utilisation des données peut se produire et les processus GoldenGate s'arrêteront. Pour exclure les données de la synchronisation, nous utilisons Oracle GoldenGate Veridata comme arbitre indépendant. Cet outil ne se contente pas de vérifier les données entre les sources et les récepteurs - l'essentiel est que Veridata élimine les différences. Il est important que lorsque nous traitons la réplication, Veridata garantit une comparaison précise des données et la détection des enregistrements perdus. Nous obtenons un rapport complet avec les résultats de la comparaison, qui peut être présenté à des collègues incrédules.



Cas 2. Reporting et staging consolidés dans le stockage en ligne


Un cas distinct est associé à la construction d'un stockage opérationnel. La difficulté réside dans le fait qu'en plus du reporting opérationnel, nous préparons des données pour le stockage d'entreprise (staging). Il arrive que vous ayez besoin de générer des rapports opérationnels basés sur des données collectées à partir d'un certain nombre de systèmes différents. Et il est plus pratique de le faire au niveau du stockage en ligne. Pour obtenir des données à grande vitesse et avec une charge minimale sur les ressources, nous avons à nouveau appliqué GoldenGate.

À titre de comparaison, expliquons comment nous avons trouvé le delta de changements dans certains de nos systèmes auparavant. Si le système lui-même ne permettait pas au delta d'être mis en surbrillance ou de modifier les données rétroactivement, le tableau de la source de 10 To a été comparé avec le tableau de 10 To sur le récepteur de la veille. Ces 10 To ont dû être capturés d'abord à la source, et la charge est tombée non seulement sur le système source, le processeur, la mémoire, mais aussi sur le réseau de données, ainsi que sur le système impliqué dans la comparaison. Et tout cela pour retrouver le delta des nouvelles données à 0,01%!

GoldenGate ne crée pratiquement aucune charge sur la source: CDC lit simplement les magazines et produit un delta fini. Cela vous permet d'économiser sérieusement sur l'infrastructure. Peu importe qui est le destinataire - un référentiel traditionnel basé sur Oracle, MSSQL, Teradata ou simplement des produits Hadoop.

Notez que dans ce cas, les bases de données Oracle ont été utilisées comme source et récepteur. La solution a prouvé son efficacité, alors maintenant nous connectons tous les nouveaux systèmes à un entrepôt de données en ligne commun, et maintenant ce n'est plus seulement Oracle. Un autre avantage de GoldenGate est qu’il convient au téléchargement de données à partir de la plupart des bases de données utilisées dans le paysage informatique de la banque.



Cas 3. Offres personnelles aux clients en temps réel.


Nous avons déjà mentionné l'analyse en streaming, c'est-à-dire l'offre en temps réel (RTO) aux clients en temps réel. Des camarades seniors disent que le succès dans le secteur bancaire dépend directement de la façon dont vous connaissez votre client et de la pertinence de lui faire une offre. En d'autres termes, la probabilité que le client profite de l'offre de la banque est inversement proportionnelle à la rapidité de la réponse de la banque aux besoins du client.

Comment ça marche? Par exemple, un historique des transactions montre qu'un client achète dans un magasin d'alcools tous les vendredis. Le géo-positionnement le détecte dans un centre commercial, où il y a un magasin de ce réseau, et grâce à une application mobile, nous lui envoyons une offre personnelle de réduction à un magasin gastronomique dans le même centre commercial. Un tel cas est le plus intéressant pour la banque; il vous permet de créer des co-marques et des offres conjointes. Les clients peuvent être des individus et des organisations.

Il y a des parties hors ligne et en ligne. Dans le premier, les clients sont pré-segmentés à l'aide des données de tous les systèmes. Analystes et données Les scientifiques étudient le comportement, les données historiques et créent des soi-disant pièges. L'essentiel est d'attraper un événement significatif qui peut être suivi par une transaction acquéreur, une application mobile ou d'autres sources disponibles. Et déjà cet événement est traité au moyen d'analyses en streaming, et la décision est prise dans l'instant en fonction des pièges préparés.

L'objectif de CDC GoldenGate est de fournir un flux de données d'événements en temps réel des systèmes source vers la plate-forme analytique. La licence GoldenGate pour Big Data inclut également Oracle Stream Analytics. Avec son aide, les scientifiques des données peuvent traiter indépendamment le flux de données sur Spark Streaming, développant l'application dans un environnement visuel.

Cas 4. Lutte opérationnelle contre de nouveaux types de fraude


Les systèmes anti-fraude sont assez fermés, et à juste titre: moins il y a de personnes dédiées aux détails, plus la sécurité est élevée. Ils font un excellent travail de gestion des cas standard, mais parfois des situations surviennent qui ne correspondent pas aux scripts standard. Par conséquent, il est important de compléter ces modèles avec des scénarios non standard. Nous développons constamment de nouveaux modèles basés sur la corrélation des événements de différents systèmes: transactions par carte et devise, localisation, opérations des systèmes de paiement, actions dans les applications mobiles, surveillance des réseaux sociaux. Pour changer de modèle, vous devez suivre les processus acceptés: demande métier, définition des tâches, passage de l'application à toutes les étapes internes de mise en œuvre.
L'année dernière, nous avons testé le téléchargement de données à l'aide d'Oracle GoldenGate for Big Data à partir des systèmes traditionnels les plus occupés, où il y avait beaucoup de petites transactions, et de notre système antifraude au cluster principal sur Oracle Big Data Appliance. Hadoop et GoldenGate ont fait face à la quantité de données transférées - nous avons été quelque peu surpris.

Téraoctets par heure et autres résultats


Au cours des deux dernières années, avec GoldenGate, nous avons doublé le volume de journaux transférés - jusqu'à près de 1 To par heure. Cela ferme presque nos besoins pour le moment. Malheureusement, il y a de la physique que nous rencontrons. Mais pour augmenter le débit, un travail actif est en cours avec l'équipe de développement GoldenGate, donc c'est loin d'être la limite. Dans le même temps, nous surveillons et testons des solutions CDC d'autres fournisseurs, mais nous n'avons trouvé aucune raison de migrer d'Oracle GoldenGate. À l'heure actuelle, cette technologie s'est révélée être la plus mature de celles du marché.

Source: https://habr.com/ru/post/fr479080/


All Articles