power ----------- week · - 22 et 23 ma i
TRANSCRIPT
Power Week
..._
•,/ itheis
Université IBM i 2019
22 et 23 ma�i
IBM Client Center Paris
----
----
- - ---
- - -
- - ---
- - - ---
--- · -
---·-
S29 - Préparez vos données DB2 fot i pour 1:1A et Watson • • , .
Pascal POLVERINI et Pascal BLANDIN
ITHEIS et FRESCHE Solutions
Préparez votre DB2 pour Watson
11:00 Pascal BLANDIN, ITHEIS
▪ Introduction et agenda
11:05 Pascal BLANDIN, ITHEIS
▪ Préparez vos données DB2 for i
11:20 Pascal POLVERINI, FRESCHE Solutions
▪ IA Watson
11:50 Questions réponses
12:00 Conclusions
FRESCHE Solutions : • 450 personnes dédiées IBM i• Technologies et Services• Montreal, Melbourne, USA …
ITHEIS : Intégrateur de solutions
3 niveauxde
transformation
Approche « Best of breed »est un positionnement marché qui consiste, pour une solution logicielle, à viser l'excellence sur un segmentspécifique. A l'opposé, les "généralistes" cherchent à offrir la couverture fonctionnelle la plus large possible,c'est-à-dire à intégrer de nombreuses fonctionnalités.
Retrouver le modèle graphique et gérer DB2
Contact_ldr_du_client_pk
Code_site [table catégorie client]N_interne_client [fichier des clients]Categorie_client [table catégorie client .code_parametre]
Contact ldr du client
Fichier_des_adresses_pk
N_adresse
Fichier des adresses
Fichier_des_clients_pk
Code_site [table act iv ité client]N_interne_clientSecteur_act ivite [table act ivité client.code_parametre]Secteur_commercial [table secteur commercial.code_parametre]N_adresse_client [ fichier des adresses.n_adresse]Type_tiers_groupe [ table type tiers.code_parametre]N_tiers_groupe [ fichier des tiers.numero_t iers]Type_tiers_don_ordre [table type tiers.code_parametre]N_tiers_don_ordre [fichier des t iers.numero_tiers]
Fichier des clients
Fichier_des_t iers_pk
Code_site [table type t iers]Type_de_tiers [table type t iers.code_parametre]Numero_tiersN_adresse [ fichier des adresses]
Fichier des tiers
Fichier_domiciliations_bancaires_clients_pk
N_interne_client [fichier des clients]
Fichier domiciliations bancaires clients
Fichier_facturat ion_clients_pk
N_interne_client [fichier des clients]N_adr_facturation [fichier des adresses.n_adresse]Mode_envoi_facture [table mode d'env oi de factures.code_parametre]Monnaie [table monnaie/devise.code_parametre]Terme_facture [ table emission facture.code_parametre]Periodicite_facture [table périodicité facturation.code_parametre]Moyen_de_paiement [ table moyen paiement .code_parametre]Delai_de_paiement [table délai paiement .code_parametre]Code_tv a [ table tv a.code_parametre]N_adresse_facturat ion [f ichier des adresses.n_adresse]N_adr_envoi_facture [ fichier des adresses.n_adresse]Code_site [table tva]
Fichier facturation clients
Fichier_r_sultats_clients_pk
N_interne_client [fichier des clients]Type_adresse [ table type d'adresse.code_parametre]N_adresse_resultat [f ichier des adresses.n_adresse]Type_de_tiers [table type t iers.code_parametre]N_de_tiers [f ichier des tiers.numero_tiers]Moyen_livraison_resultats [table moyen liv raison.code_parametre]N_base_adresse_res [f ichier des adresses.n_adresse]Code_site [table moyen liv raison]
Fichier resultats clients
Fichier_sous_comptes_clients_pk
N_interne_client [fichier des clients]N_adresse_s [f ichier des adresses.n_adresse]Moyen_livraison_produit [ table moyen livraison.code_parametre]N_adresse_livraison [f ichier des adresses.n_adresse]Code_site [table moyen liv raison]
Fichier sous-comptes clients
Is_tabpap_sql_table_pk
Table pays
Is_tabtv p_sql_table_pk
Code_siteCode_parametre
Table tva
Table_activite_client_pk
Code_siteCode_parametre
Table activité client
Table_categorie_client_pk
Code_siteCode_parametre
Table catégorie client
Table_delai_paiement_pk
Code_siteCode_parametre
Table délai paiement
Table_emission_facture_pk
Code_siteCode_parametre
Table emission facture
Table_langue_pk
Table langue
Table_mode_d_envoi_de_factures_pk
Code_siteCode_parametre
Table mode d'envoi de factures
Table_monnaie_devise_pk
Code_siteCode_parametre
Table monnaie/devise
Table_moyen_livraison_pk
Code_siteCode_parametre
Table moyen livraison
Table_moyen_paiement_pk
Code_siteCode_parametre
Table moyen paiement
Table_periodicite_facturation_pk
Code_siteCode_parametre
Table périodicité facturation
Table_secteur_commercial_pk
Code_siteCode_parametre
Table secteur commercial
Table_tit re_pk
Table titre
Table_type_d_adresse_pk
Code_siteCode_parametre
Table type d'adresse
Table_type_tiers_pk
Code_siteCode_parametre
Table type tiers
Model: Landauer SQL
Diagram: --Main-- Display: --Main--
Designer: Company:
Version: 51 1/28/2015 7:56:50
Interface utilisateur
DDS
Data
Base données
RPG / Cobol
Programmes
Affichages
Système existant
Extraction
automatiséeRéférentiel
Conception de l’interface utilisateurOptions • Webisation• Nouvelles fonctions Web
(carrousel, image, XLS…)• Re Design de l’interface• Charte graphique
Modèle de données
RPG
Interface utilisateur
Regrouper plusieurs écrans
Grâce aux onglets Simple navigationEcran existant stockEcran existant fabricationInformations complémentaires
Modernisation des traitements
DDS
Data
Base données
RPG / Cobol
Programmes
Affichages
Système existant
Extraction
automatiséeRéférentiel
Logique métier• Validation, contrôles• Passage en RPG FreeForm• Retrouve les règles de gestion• Gère les domaines applicatifs• Montre les flux inter domaines• Diagramme processus
Modèle de données
RPG - Cobol
Interface utilisateur
Modèle de données
RPG
DDS
Data
Base données
RPG / Cobol
Programmes
Affichages
Système existant
Interface utilisateur
BDD moderne• Modèle graphique• Intégrité référentielle• Migration SQL sans recompil.• Cleaning des données• Nom longs• Intègre Table des tables• Génération des SQL Views
Extraction
automatiséeRéférentiel
La base de données DB2 for i
Moderniser DB2 for i avec Xcase
Migre structures et données à SQL sans recompilation
des PGMsRetrouve les relations,
implémente progressivement
l’intégrité référentielle
Nettoie les données,
transforme les dates, identifie les orphelins et les PGM
qui les créentEst gérée depuis le modèle graphique
Une image vaut mieux qu’un long discours
None - RRR
None - RRRNone - RRR
Disabled - RRR
None - RRRDisabled - RRR
Disabled - RRR
None - RRRNone - RRRDisabled - RRR
Disabled - RRR
Disabled - RRR
None - RRR
None - RRR
Disabled - RRR
Disabled - RRR
None - RRR
None - RRR
Code_adresse
Adresse
Contra [v_4_90_a_contrat.n_contrat]Avenan [v_4_90_a_contrat.n_version]Presta [v_4_90_a_cnpresta]Numcon
Cncont
Contra [v_4_90_a_contrat.n_contrat]Avenan [v_4_90_a_contrat.n_version]Presta [v_4_90_a_cnpresta]Numcon [cncont]Conlig
Cncontdet
Contra [v_4_90_a_contrat.n_contrat]Avenan [v_4_90_a_contrat.n_version]Presta [v_4_90_a_cnpresta]Numcon [cncont]Sitlig
Cncontsit
Contra [v_4_90_a_contrat.n_contrat]Avenan [v_4_90_a_contrat.n_version]Presta [v_4_90_a_cnpresta]Eletar [entete_alament_tarifaire.n_alament_tarifaire]Numver [entete_alament_tarifaire.n_version_elt_tarifaire]Eleimp
Cneletarim
N_contrat [v_4_90_a_contrat]N_version [v_4_90_a_contrat]N_prestation [v_4_90_a_cnpresta.presta]Activita
Parametrage_immobilisationsN_de_contrat [v_4_90_a_contrat.n_contrat]N_d_avenant [v_4_90_a_contrat.n_version]N_de_prestation [v_4_90_a_cnpresta.presta]Rubrique_paramatrae_1Rubrique_paramatrae_2Valeur_rubrique_paramatrae_1Valeur_rubrique_paramatrae_2
Table_des_contrats_parametre
Contra [v_4_90_a_contrat.n_contrat]Avenan [v_4_90_a_contrat.n_version]Presta
V_4_90_a_cnpresta
Contra [v_4_90_a_contrat.n_contrat]Avenan [v_4_90_a_contrat.n_version]Presta [v_4_90_a_cnpresta]TyprscClerscDatdebDatfin
Cnrsc
Contrat [v_4_90_a_contrat.n_contrat]Avenant [v_4_90_a_contrat.n_version]Presta [v_4_90_a_cnpresta]
Activites_donspeContra [v_4_90_a_contrat.n_contrat]Avenan [v_4_90_a_contrat.n_version]Presta [v_4_90_a_cnpresta]CdrubrPo_number
Cnspecif
Contrat [v_4_90_a_contrat.n_contrat]Avenant [v_4_90_a_contrat.n_version]Prestation [v_4_90_a_cnpresta.presta]Code_rubrique [cnspecif.cdrubr]Po_number [cnspecif]
Donndes_spdcifiques
N_contrat [v_4_90_a_contrat]N_version [v_4_90_a_contrat]N_prestation [v_4_90_a_cnpresta.presta]N_alament_tarifaireN_version_elt_tarifaire
N_profil_de_configuration [entete_profil_configuration]
Entete_alament_tarifaire
Numero_de_contra [v_4_90_a_contrat.n_contrat]Avenant [v_4_90_a_contrat.n_version]N_de_presta [v_4_90_a_cnpresta.presta]Element_tarifaire [entete_alament_tarifaire.n_alament_tarifaire]Numero_de_version [entete_alament_tarifaire.n_version_elt_tarifaire]
CntaridxContra [v_4_90_a_contrat.n_contrat]Avenan [v_4_90_a_contrat.n_version]Presta [v_4_90_a_cnpresta]Eletar [entete_alament_tarifaire.n_alament_tarifaire]Numver [entete_alament_tarifaire.n_version_elt_tarifaire]Ligtxt
Cntartxt
N_contratN_version
V_4_90_a_contrat
Contra [v_4_90_a_contrat.n_contrat]Avenan [v_4_90_a_contrat.n_version]CdroleCdtier
Contratier
Num_contrat [v_4_90_a_contrat.n_contrat]Avenant [v_4_90_a_contrat.n_version]Presta_de_contrat [v_4_90_a_cnpresta.presta]Code_evenementCode_flux
Table_des_evenements_edi
N_profil_de_configuration [entete_profil_configuration]Code_rubriqueCode_pays
Datail_profil_configuration
N_profil_de_configuration
Entete_profil_configuration
Plan d’action DB2 en 10 jours
• Retrouver le modèle relationnel• Identifier les DATA invalides et les corriger
Pour ensuite…• Passer à SQL ?• Implémenter vos règles dans DB2 ?
Pourquoi retrouver le modèle ?
• Pour documenter (expliciter)• Pour répondre au règlementaire• Pour intégrer plus vite les nouveaux• Pour identifier les orphelins• Pour + d’intelligibilté
Comment retrouver le MDL ?
• On selectionne un sous ensemble dePF et de Tables puis on paramètrel’outil Xcase
Comment retrouver le MDL
• On valide les propositions
Evaluation sur la base de :Nombre d’orphelinLa qualité du vocabulaireLa présence d’indexAbsence de clé parente (PK)Absence de clé enfant (FK).
Expliciter le MDL en 10 jours
Articles_de_base_pk
Activite [dict ionnaire.argument - incod = 'activ']Code_articleC_marque [dictionnaire.argument - incod = 'codm']C_article_statistique [articles de base.code_article]Date_de_creation [calendrier.ccyymmdd]Date_de_m_a_j [calendrier.ccyymmdd]
Articles de base
Clients_agence_liaisons_tarifaires_pk
C_client [clients de base]AgenceCode_parametre_frais_de_port [dictionnaire.argument - incod = 'frais']Statut_ann_susp_crt [dictionnaire.argument - incod = 'susp']C_client_commande [clients de base.c_client ]C_client_livre [clients de base.c_client]C_client_facture [clients de base.c_client ]C_client_payeur [clients de base.c_client]C_client_statist iq [clients de base.c_client]Date_de_creation [calendrier.ccyymmdd]Date_de_m_a_j [calendrier.ccyymmdd]
Clients agence
Clients_de_base_pk
C_clientDpt_livraison [dictionnaire.argument - incod = 'dpt']Date_du_rc [calendrier.ccyymmdd]Code_langue_cllang [dictionnaire.argument - incod = 'lang']Date_de_creation [calendrier.ccyymmdd]Date_de_m_a_j [calendrier.ccyymmdd]
Clients de base
Commentaires_pk
Type_c_f_a [dictionnaire.argument - incod = 'cfa']C_client [clients de base]Date_expirat ion [calendrier.ccyymmdd]Date_de_cr_ation [calendrier.ccyymmdd]Date_de_m_a_j [calendrier.ccyymmdd]
Commentai res
Detail_bon_preparation_pk
N_bon_preparation [entete bon de préparation]Agence [clients agence]Code_client [clients de base.c_client]N_de_commande [en- tete commandes]N_de_f iliere [detail commandes]N_de_ligne_bdlig [detail commandes.n_de_ligne]N_de_sequence_bpDate_livraison_mini [calendrier.ccyymmdd]Date_nouvelle_liv [calendrier.ccyymmdd]Marche_tarif_groupe [dictionnaire.argument - incod = 'mout ']Date_tournee [calendrier.ccyymmdd]Travee [dictionnaire.argument - incod = 'travee']Date_de_creation [calendrier.ccyymmdd]Date_de_m_a_j [calendrier.ccyymmdd]
Detail bon préparation
Detail_historique_des_ventes_age_pk
Annee_d_archive [ factures]N_de_facture [factures]N_commande [en-tete commandes.n_de_commande]Origine_commande [dictionnaire.argument - incod = 'ori']N_bon_de_preparation [entete bon de préparat ion.n_bon_preparat ion]Agence [clients agence]C_client_livre [clients de base.c_client]Activite [dict ionnaire.argument - incod = 'activ']Marche_tarif_groupe [dictionnaire.argument - incod = 'mout ']Rem_majo_en_ou_francs [dictionnaire.argument - incod = 'pouf']
Detail factures
Detail_livraisons_age_pk
Date_de_livraison [calendrier.ccyymmdd]N_de_commande [en- tete commandes]N_de_f iliere [detail commandes]N_de_ligne [detail commandes]N_de_sequence_bp [detail bon préparation]N_bon_preparation [entete bon de préparation]Date_de_facture [calendrier.ccyymmdd]Agence [articles agence]Code_article [articles de base]Activite [dict ionnaire.argument - incod = 'activ']Marche_tarif_groupe [dictionnaire.argument - incod = 'mout ']Date_de_tarification [calendrier.ccyymmdd]Rem_majo_en_ou_francs [dictionnaire.argument - incod = 'pouf']Date_de_creation [calendrier.ccyymmdd]Date_de_m_a_j [calendrier.ccyymmdd]
Détail livraisons
En_tete_commandes_pk
N_de_commandeAgence [clients agence]C_client_facture [clients de base.c_client ]Origine_commande [dictionnaire.argument - incod = 'ori']Type_commande [dict ionnaire.argument - incod = 'typ']Date_de_commande [calendrier.ccyymmdd]Date_de_tarification [calendrier.ccyymmdd]Date_tournee [calendrier.ccyymmdd]Date_livraison_mini [calendrier.ccyymmdd]Date_livraison_maxi [calendrier.ccyymmdd]Date_de_validation [calendrier.ccyymmdd]Annule_o_n [dictionnaire.argument - incod = 'annu']Date_d_echeance [calendrier.ccyymmdd]Depart_livraison [dict ionnaire.argument - incod = 'dpt']Contre_remboursement [dictionnaire.argument - incod = 'ct rb']Service_valida_cde [dict ionnaire.argument - incod = 'serv']Date_de_creation [calendrier.ccyymmdd]Date_de_m_a_j [calendrier.ccyymmdd]
En-tete commandes
Entete_bon_de_preparation_pk
N_bon_preparationAgence [clients agence]C_client [clients de base]Date_debut_prepara [calendrier.ccyymmdd]Date_fin_prepara [calendrier.ccyymmdd]Date_livraison [calendrier.ccyymmdd]Date_tournee [calendrier.ccyymmdd]Annule_o_n [dictionnaire.argument - incod = 'annu']Date_de_creation [calendrier.ccyymmdd]Date_de_m_a_j [calendrier.ccyymmdd]
Entete bon de préparation Entete_livraisons_pk
Date_de_livraison [calendrier.ccyymmdd]Departemnt_livraison [dictionnaire.argument - incod = 'dpt']Date_de_commande [calendrier.ccyymmdd]Origine_commande [dictionnaire.argument - incod = 'ori']Agence [clients agence]Date_tournee [calendrier.ccyymmdd]Marche_tarif_groupe [dictionnaire.argument - incod = 'mout ']C_client_facture [clients de base.c_client ]Date_de_facture [calendrier.ccyymmdd]Type_de_facture [dictionnaire.argument - incod = 'tyfa']Contre_remboursement [dictionnaire.argument - incod = 'ct rb']Date_d_echeance [calendrier.ccyymmdd]Date_de_creation [calendrier.ccyymmdd]Date_de_m_a_j [calendrier.ccyymmdd]
Entete li vraisons
Fiches_articles_agence_spf_pk
AgenceCode_article [articles de base]Activite [dict ionnaire.argument - incod = 'activ']C_frais_approche [dictionnaire.argument - incod = 'frais']C_article_stock [articles de base.code_article]C_art_remplacement [articles de base.code_article]Date_de_creation [calendrier.ccyymmdd]Date_de_m_a_j [calendrier.ccyymmdd]
Articles agence
Fichier_des_litiges_age_pk
Date_du_litige [calendrier.ccyymmdd]Agence [articles agence]Date_demande_avoir [calendrier.ccyymmdd]Activite [dict ionnaire.argument - incod = 'activ']Code_article [articles de base]Marche_tarif_groupe [dictionnaire.argument - incod = 'mout ']Rem_majo_en_ou_francs [dictionnaire.argument - incod = 'pouf']Origine_commande [dictionnaire.argument - incod = 'ori']N_commande_origine [en-tete commandes.n_de_commande]N_de_f iliere [detail commandes]N_ligne_commande_origine [detail commandes.n_de_ligne]Date_commande_origine [calendrier.ccyymmdd]Date_bl_origine [calendrier.ccyymmdd]Date_facture_origine [calendrier.ccyymmdd]N_sequence_bp_reprise [detail bon préparat ion.n_de_sequence_bp]Date_lettre_au_transporteur [calendrier.ccyymmdd]Date_retour [calendrier.ccyymmdd]Date_enlevement [calendrier.ccyymmdd]Date_de_mouvement [calendrier.ccyymmdd]Date_de_resolution [calendrier.ccyymmdd]Date_de_creation [calendrier.ccyymmdd]Date_de_m_a_j [calendrier.ccyymmdd]
L itiges
Piece_detail_commandes_pk
N_de_commande [en- tete commandes]N_de_f iliereN_de_ligneCode_article [articles de base]C_article_generique [art icles de base.code_art icle]Activite [dict ionnaire.argument - incod = 'activ']Marche_tarif_groupe [dictionnaire.argument - incod = 'mout ']Date_de_tarification [calendrier.ccyymmdd]Date_livraison_mini [calendrier.ccyymmdd]Rem_majo_en_ou_francs [dictionnaire.argument - incod = 'pouf']Date_de_reappro [calendrier.ccyymmdd]Etat_des_besoins_edite_o_n [dictionnaire.argument - incod = 'edite']Date_de_creation [calendrier.ccyymmdd]Date_de_m_a_j [calendrier.ccyymmdd]
Detail commandes
Pieds_de_factures_compta_clients_pk
Annee_d_archiveN_de_factureAgence [clients agence]C_client_livre [clients de base.c_client]Flag_abat tement_rep [dictionnaire.argument - incod = 'far']
Factures
Pieds_factures_historique_des_ventes_pk
Annee_d_archive [ factures]N_de_facture [factures]C_client_facture [clients de base.c_client ]Agence [clients agence]Marche_tarif_groupe [dictionnaire.argument - incod = 'mout ']Type_de_facturation [dictionnaire.argument - incod = 'tyfa']Contre_remboursement [dictionnaire.argument - incod = 'ct rb']
Entete facture
Pourquoi est ce infaillible ?
On croise 4 niveaux d’information :
• Les META données• Les Données• Les relations PGM/Fichiers (DSPDBR)• Et la validation d’un “sachant”
Les avantages
• Obtention du référentiel des Données• Optimisation des accès• Identification des doublons et des
datas invalides
• SQL Ready !!! Et… WATSON Ready
Pascal POLVERINI
Intelligence Artificielle WATSON
Pascal POLVERINI [email protected]
FRESCHE SolutionsIBM i ISV Advisory Council - Redbook co-author
Pascal Polverini
What you need to know about AI and Cognitive systems V2
Solution architect
Redbooks author
"If it’s Digital, it will become Cognitive"
IBM CEO Ginni Rometty
2017
”We never overpromised on Watson AI"
2019
Cognitive Era, AI
2018"It is an Exponential moment, it happens when Business and Technology Architecture change at the same time"
IBM/BigBlue wins at CHESSvs Kasparov
History and determinant factors
Google/DeepMind wins at GO vs Sedol
A new version of AlphaGo needed no human examples to figure out how to clobber the best Go player in the world.
AI learns to learn on its own.2017
1997
2011IBM/Watson wins at JEOPARDY vs 2 greatest champs
2016
Exploration/Exploitation
Big flat table
Other data sources
API (Translation,
Social/tweeter, Other Watson outcome etc..)
DB2
Watson Analytics (or Watson Cognos Analytics)
Exploration/Exploitation
Big flat table
Other data sources
API (Translation,
Social/tweeter, Other Watson outcome etc..)
DB2
Watson Analytics (or Watson Cognos Analytics)
Other data
sources
API (...)
DB2
Exploration/Exploitation
Big flat table
DB2
Watson Analytics (or Watson Cognos Analytics)
Other data
sources
API (...)
DB2
Exploration/Exploitation
Big flat table
DB2
Watson Analytics (or Watson Cognos Analytics)
Other data
sources
API (...)
DB2
Create a flat table with all relevant information
• Create View, merge tables…• “Reverse back” Relational DB relationships
towards a flat table• If necessary, set meaningful column heading
Enrich the table with metadata
• Use RESTful services from DB2 to call API • systools.urlEncode + systools.httpGetClob• → Call Watson API, Tweeter, etc...
Exploration/Exploitation
Watson Analytics (or Watson Cognos Analytics)
Tolling can help
https://console.bluemix.nethttps://cloud.ibm.com https://developer.twitter.com
Create a flat table with all relevant information
• Create View, merge tables…• “Reverse back” Relational DB relationships
towards a flat table• If necessary, set meaningful column heading
Enrich the table with metadata
• Use RESTful services from DB2 to call API • systools.urlEncode + systools.httpGetClob• → Call Watson API, Tweeter, etc...
https://www.ibm.com/watson-analyticshttps://www.ibm.com/analytics/cognos-analytics
Exploration/Exploitation
https://www.ibm.com/watson-analytics
https://www.ibm.com/analytics/cognos-analytics
Exploration/Exploitation
Let’s use a common file available on the website itself for our pedagogical presentation
Exploration/Exploitation
Then drag&drop group of field (use Ctrl to select all fields 1st on the left then
drag&drop)
Exploration/Exploitation
Unrecognized info and not meaningful outcome….
Lack of “measurable” “factors”, measurable
fields
Exploration/Exploitation
Measure
You need to add at least 1 “measure”
type of field to give sense to your data
exploration