IBM Planning Analytics
Insertions en bases de données

Considérant nos applications Planning Analytics- (au sein desquelles, nous créons de la donnée, nous créons de la valeur) - comme des applications de gestion, nous pourrions être intéressés à communiquer ces données à des systèmes décisionnels (Datawarehouse, Datamart, Reporting) à des fins de partager à l’ensemble des interlocuteurs concernés, les reporting et tableaux de bords incluant des données spécifiquement EPM.

Extraction des données de l'instance Planning Analytics

Extraire des données de notre instance Planning Analytics à des fins de les mettre à disposition d’un éventuel système décisionnel peut se faire (principalement) sous deux formes :

  • Extraction et dépôts de fichiers
    • Les processus ETL en vigueur capteront les fichiers mis à disposition et …. feront leur travail.
  • Extraction et insertion dans une base de données SQL
    • Les données seront directement intégrées dans une base SQL (un ODS serait philosophiquement parfait)

Dans un environnement "local" un automate d’exploitation pourra facilement déclencher et synchroniser les processus d’export avec les process ETL locaux, l’ensemble de la chaine de traitement pourra donc être à l’initiative de notre planification ETL (Extraction, Transformation, Loading).

Dans un environnement "Cloud", il peut être bien plus difficile d’effectuer des synchronisations entre des processus "Locaux" et des processus "Cloud", même si la fourniture d’API Rest (standard Odata), voir l’utilisation de Cognos Command Center pourrait permettre dialogue et synchronisation.

Nous pourrions mettre en œuvre un système de "sémaphore fichier" sur les ressources partagées (FTPS), les process locaux attendant la présence d’un fichier Flag pour lancer le rapatriement et l’exploitation.

L’autre aspect, celui de "insertion dans une base de données SQL", a le mérite de fonctionner de manière identique, quel que soit l’environnement (Cloud ou Local) et n’obère en rien vos futures velléités de migration vers du Cloud, CP4D ou Local.

Notre processus d’export / insertion va alors être écrit de manière à utiliser les trois instructions fondamentales :

  • OdbcOpen (SourceOdbc, User, Password) : Connexion à la base de données
  • OdbcOutput (SourceOdbc, PhraseSql) : Exécution de la requête contenue dans PhraseSql
  • OdbcClose (SourceOdbc) : Déconnexion de la base de données

Prolog

  • Construire ou utiliser une vue de cube
  • Se connecter à la base de données cible - OdbcOpen(SourceOdbc, User, Password)
  • Vérifier l’existence de la table cible (Create table au besoin)
  • Tronquer éventuellement la table cible

Data

  • Constituer la phrase SQL a exécuter
  • Exécuter la phase Sql (OdbcOutput(SourceODBC, PhraseSql)

Notre phase SQL sera du genre :

'Insert into Table values (''' | var1 | ''', ''' | var2 | ''', ''' | var3 ……….. | ''')'

Quelques petits pièges à éviter

  • Présence de ' dans la chaine de caractère à exporter

=> Protéger avec une ' complémentaire (utiliser Scan et Insrt )

Ou (Oracle) utiliser la syntaxe q'delimiter )

  • Phrase de plus de 250 caractères

=> Découper en chaines de 250c que nécessaire et utiliser OdbcOutput(Odbc, Phrase1, Phrase2, …PhraseN)

Aspects performance

Ces insertions ligne à ligne peuvent (notamment en environnement cloud) s’exécuter avec la rapidité d’un gastéropode ; divers documentations IBM nous suggèrent d’utiliser les capacités de la base de données afin de procéder à une insertion « en masse ».

  • Avec SQL Server, nous avons la possibilité d’opérer simplement cette insertion en masse, en spécifiant plusieurs occurrences de values :
    • Insert into table Values (x , y , z) , (a,b,c) , (d,e,f) , …….
  • Avec toute autre base de données (y compris SqlServer) , nous pourrions spécifier :
    • Insert into table
      • Select x, y, z, /* from dual, from rien, from dummy */
      • Union All
      • Select a , b , c /* from dual, from rien, from dummy */
        ……

Cet ensemble de solutions a été mis en œuvre avec succès lors d’une migration vers le Cloud saas d’IBM, des reporting Power BI, anciennement alimenté par des exports de fichiers TM1 qui sont maintenant connectés à une base Azure SQL Server, directement alimentée par Planning Analytics Cloud.

Vous avez besoin de plus d'informations sur Planning Analytics ? Nos experts certifiés Planning Analytics sont à votre disposition, contactez-nous !

Vous souhaitez bénéficier d'experts, de développeurs, ou d'une formation sur TM1 / Planning Analytics ? Rendez vous sur la page Contact