ecom2018.png

BCV5

bcv4.gifbcv6.gif

 


lbcv5.gifprod.jpg

Le besoin

Les testeurs doivent être en mesure de rafraîchir à la fois périodiquement et à la demande les données de test. Les DBAs ont besoin de processus fiables qui nécessitent un minimum d’interventions manuelles, même si les structures de tables évoluent au fil du temps.

La solution

BCV5 répond à ces deux exigences en fournissant un système entièrement automatisé, bien que très flexible, pour copier des données DB2 dans un sous-système, entre différents sous-systèmes, et même entre différentes LPAR. Son moteur de copie rapide utilise le traitement parallèle pour atteindre une vitesse record, et consomme seulement une fraction des ressources CPU que les processus de copie traditionnels à base d’Unload/Load nécessitent. Pour les clients DB2 qui doivent fournir un service 24/7, BCV5 permet des copies cohérentes sans affecter la disponibilité des tables sources. Combiné avec des fonctionnalités telles que la réduction des données, le masquage de données, et la capacité de créer des sauvegardes de structures et de données pour restauration ultérieure, BCV5 est l'outil parfait pour test de provisionnement de données DB2 pour z/OS.

Les bénéfices

BCV5 copie 10 fois plus vite que les méthodes traditionnelles et permet l’économie de 90% de ressources CPU (SSU/SRU).

BCV5 permet la fourniture des données de test sans altérer la fenêtre batch.

BCV5 ne requiert pas d’espace disque supplémentaire pour les fichiers intermédiaires temporaires.

BCV5, au travers de son interface conviviale (ISPF ou graphique), permet la création d’une tâche de copie en 5 mins.

temps-traitement-small.jpg

ibm-partner.gif
BCV5 est un produit partenaire IBM
BCV5 IceBox est un produit partenaire IBM

L’utilisateur spécifie les colonnes de tables (pour une base donnée, dans un sous-système DB2 donné) exigeant un traitement particulier d’anonymisation.

Pour chaque colonne éligible au processus d’anonymisation, une méthode de masquage du contenu est déterminée.

 Les différentes méthodes sont enregistrées dans BCV5 : insertion aléatoire de caractères, conversion de certains caractères, table de translation, manipulation de données par calcul...

 Le processus d’anonymisation de BCV5 est basé sur des requêtes SQL usuelles.

A partir d’une colonne et d’une méthode, BCV5 génère automatiquement l’ordre SQL correspondant.

Aux méthodes standards, il est tout à fait possible de rajouter ses propres règles qui consistent en une expression SQL quelle qu’elle soit, utilisant tout ce qu’il est possible d’écrire en SQL DB2 : built-in function, subselect, jointure, etc.

Ainsi, vous pouvez par exemple créer et utiliser une méthode d’anonymisation "rajeunir", retirant aléatoirement de 1 à 20 ans au contenu d’une date via le code SQL suivant :

SELECT
"X1"."ID"
, "X1"."NAME"
, "X1"."SELECTION_RULE_LIST_ID"
(…)
, "X1"."FILLING_RULE_LIST_ID"
, "X1"."CREATED_BY"
, "X1"."
CREATED_ON" - (RAND() * 20) YEARS
FROM "BCV524"."COPY_TASK" X1

Il est également envisageable de développer ses propres exits personnalisés, en créant des "user defined functions".

Du code spécifique Assembler, Cobol, Java, C/C++ peut être implémenté.

Si vous êtes abonné à un organisme spécialisé vous fournissant des tables d’anonymisation, rien ne vous empêche d’écrire une fonction accédant à ces tables et de l’inclure dans un exit lié au processus de masquage sélectif de données BCV5.

Mais à ce stade, il manquerait une dimension extrêmement importante du point de vue de la sécurisation des données sensibles, si le concept interne de BCV5 ne s’étendait au-delà de la simple possibilité de choisir certaines colonnes et de leur affecter une méthode de transformation de contenu.

BCV5 est en mesure de contraindre systématiquement l’anonymisation de certaines colonnes, avec pour chacune la méthode appropriée : c’est la fonction "Masking Enforcement Rules", ces règles étant affectées à un sous-système DB2 donné.

Extrait du guide de l'utilisateur BCV5 :

« Data Masking Enforcement Repository
The masking capabilities of BCV5 have been enhanced to enforce data masking (anonymization) for specific tables. The user interface of BCV5 allows defining data masking methods to modify SQL data. These rules control how the SQL data is modified.
Beside the definition of masking rules, a data protection official can also define masking rules that will be enforced by BCV5 whenever data is copied from a given DB2 subsystem. These rules are generic specifications that define how a column of a table should be masked.
These masking enforcement rules guarantee that a table that contains sensitive data is never copied by BCV5 without masking. It avoids that unmasked data will be used for test or development purposes. »


Voilà le rôle typique d’une cellule sécurité que de déterminer, à partir des données d’entreprise réputées sensibles, l’ensemble exhaustif des colonnes concernées. Il s’agit en général de l’environnement DB2 de production ; pour le moins…

A charge ensuite de paramétrer BCV5 afin que toute tâche de copie impliquant ces colonnes soit systématiquement et automatiquement forcées d’appliquer la méthode de masquage attribuée :

  • nul besoin pour chaque nouvelle tâche de duplication de répertorier laborieusement toutes les informations qu’il conviendrait de masquer ;
  • nul besoin de paramétrer le processus d’anonymisation pour celle-ci ;
  • la donnée confidentielle est systématiquement et automatiquement anonymisée, dès lors qu’elle appartient à un objet devant être répliqué ;
  • impossibilité de copier des données sans les anonymiser, si celles-ci sont référencées comme sensibles sur le DB2 source d’un traitement BCV5 de réplication ;
  • processus totalement transparent pour l’utilisateur, qu’il soit responsable de la sécurité, DBA ou technicien de production.

BCV5 permet de copier uniquement les bases et les tables que vous avez sélectionnées ; vous pouvez choisir également un certain nombre d'éléments à prendre en charge comme les GRANTS, les VUES, les BINDS...

Mais l'un des intérêts fondamentaux de BCV5 est sa rapidité, basée sur la performance de son moteur de copie interne, et une capacité inégalée à paralléliser les traitements à un niveau élevé de multi-threading (jusqu'à 99).

Les gains extrêmement importants relevés par l'ensemble des utilisateurs du produit en témoignent :

exemples.gif

Fast DB2 Universal TableSpace Conversion Tool

En DB2 z/OS et jusqu'à la V8 incluse, on disposait principalement de deux types d'objets TableSpace : "segmentés" et "partitionnés".

Mettons volontairement de côté les objets simples qui deviennent obsolètes et les objets de type LOB qui sont spécialisés.

Avec la version 9 de DB2 est apparu un nouveau type d'objet : Universal TableSpace, combinant les avantages des précédents.

Un tel objet peut être :

  • "Partition-by-Growth", c'est-à-dire que DB2 va créer une nouvelle partition si nécessaire, en fonction de la croissance des données, et ceci sans définir de clé de partition ;
  • "Partition-by-Range", c'est-à-dire partitionné en fonction d'une clé de partition à l'identique des objets TableSpace partitionnés "classiques".

BCV5 possède son propre programme de copie ("coocopy"), qui permet de démarrer dans le même programme plusieurs process. Ceci permet au système d'attribuer par exemple un process pour chaque tablespace à copier. Ce programme est 10 fois plus rapide que DSN1COPY ou DSNLOAD, et consomme 10 fois moins de ressources.

Vous pouvez utiliser comme source de BCV5 les données issues d'un Flashcopy ou d'un Snapshot.


bandeau_download.gif