Connecteur Base de Données SAP HANA

Catégorie : Connecteurs de Bases de Données

Introduction

Ce document a été créé pour aider à configurer un connecteur mindzieDataDesigner vers une base de données SAP HANA. Le mindzieDataDesigner est l’outil ETL utilisé par mindzieStudio pour convertir les tables de bases de données en journaux d’événements pour l’analyse des processus. L'objectif de ce document est d’aider à créer la chaîne de connexion et à ouvrir les ports sur le pare-feu si nécessaire.

Aperçu

Le connecteur SAP HANA utilise ODBC pour fournir une connectivité robuste aux bases de données SAP HANA. Ce connecteur est optimisé pour les environnements SAP d’entreprise et prend en charge les instances SAP HANA sur site, ce qui le rend idéal pour l’analyse de processus sur de grandes quantités de données d’entreprise.

Configuration requise

  • Système de base de données : SAP HANA 1.0 ou ultérieur (2.0 recommandé)
  • Options de déploiement : Sur site (on-premise)
  • Pilote ODBC : Pilote SAP HANA ODBC (version minimale 2.4)

Pré-requis

Le pilote SAP HANA ODBC doit être installé sur votre système. Veuillez vous référer à la documentation SAP pour les instructions d’installation.

Format de la chaîne de connexion

Connexion ODBC basique

Driver={HDBODBC};ServerNode=hostname:port;Database=database_name;UID=username;PWD=password;

Paramètres de connexion

Paramètre Description Obligatoire Exemple
Driver Nom du pilote ODBC Oui {HDBODBC} ou {SAP HANA ODBC Driver}
ServerNode Serveur HANA et port Oui hana-server.company.com:30015
Database Base de données/tenant cible Non PRD ou SystemDB
UID Nom d’utilisateur Oui MINDZIE_USER
PWD Mot de passe Oui SecurePassword123
CHAR_AS_UTF8 Gestion des caractères UTF-8 Non 1
CONNECTTIMEOUT Timeout de connexion Non 30
COMMUNICATIONTIMEOUT Timeout de communication Non 0 (illimité)
RECONNECT Paramètre de reconnexion automatique Non 1 (activé)
ENCRYPT Activation du chiffrement Non true

Exemples de connexion

Connexion standard sur site

Driver={HDBODBC};ServerNode=hana-prod.company.com:30015;Database=PRD;UID=PROCESS_MINING_USER;PWD=SecurePassword123;CHAR_AS_UTF8=1;

Base de données multi-tenant (MDC)

Driver={HDBODBC};ServerNode=hana-server:30013;Database=TENANT_DB;UID=MINDZIE_USER;PWD=password;

Connexion haute disponibilité

Driver={HDBODBC};ServerNode=hana-node1:30015,hana-node2:30015,hana-node3:30015;Database=PRD;UID=MINDZIE_USER;PWD=password;RECONNECT=1;

Permissions SAP HANA requises

Les exemples SQL suivants montrent les permissions typiques nécessaires pour l’analyse des processus. Remplacez les noms de schémas, tables et utilisateurs par vos valeurs réelles :

-- Accorder l’accès au schéma (remplacer "PROCESS_MINING" par votre nom de schéma)
GRANT SELECT ON SCHEMA "YOUR_SCHEMA_NAME" TO YOUR_USERNAME;

-- Accorder les permissions au niveau des tables (remplacer par vos tables réelles)
GRANT SELECT ON "YOUR_SCHEMA_NAME"."YOUR_TABLE_NAME" TO YOUR_USERNAME;

-- Pour les vues système (si besoin d’accès aux métadonnées)
GRANT SELECT ON SYS.M_DATABASES TO YOUR_USERNAME;

Exemple avec des noms d’exemple :

-- Permissions exemples avec noms types
GRANT SELECT ON SCHEMA "PROCESS_MINING" TO MINDZIE_USER;
GRANT SELECT ON "PROCESS_MINING"."EVENT_LOG" TO MINDZIE_USER;
GRANT SELECT ON SYS.M_DATABASES TO MINDZIE_USER;

Tester les connexions ODBC

Après avoir configuré votre connexion ODBC, vous pouvez la tester avec différents outils :

Administrateur de sources de données ODBC Windows

  • Utilitaire intégré à Windows (odbcad32.exe)
  • Configurez et testez les connexions ODBC
  • Accessible via Panneau de configuration → Outils d’administration → Sources de données ODBC

Outils clients de base de données

  • DBeaver : Outil gratuit multiplateforme avec support ODBC
  • HeidiSQL : Client SQL sous Windows supportant ODBC
  • SQL Server Management Studio : Peut se connecter à SAP HANA via ODBC
  • Toad for SAP : Outil commercial avec support natif SAP HANA

Applications Microsoft Office

  • Excel : Connexion via Données → Obtenir des données → À partir d’autres sources → À partir d’ODBC
  • Power BI : Connecteur natif SAP HANA et prise en charge ODBC
  • Access : Lier des tables via des connexions ODBC

Outils en ligne de commande

  • isql : Outil en ligne de commande Unix/Linux pour tester les connexions ODBC
  • osql/sqlcmd : Utilitaires en ligne de commande Windows (support SAP HANA limité)

Requête simple de test

Une fois connecté, testez avec une requête basique :

SELECT CURRENT_TIMESTAMP FROM SYS.DUMMY;

Configuration du pare-feu

Ports de pare-feu requis

Les ports suivants doivent être ouverts sur votre pare-feu pour les connexions SAP HANA ODBC :

Port Usage Instance par défaut (00)
30013 Connexion SQL SystemDB Accès base système
30015 Connexion SQL base tenant Première base tenant
443 SAP HANA Cloud (HTTPS/SSL) Connexions cloud seulement

Schéma de numérotation des ports

  • Base système : Port 30013 (pour instance par défaut 00)
  • Base tenant : Port 30015 (pour instance par défaut 00)
  • Modèle : 3NN13 (SystemDB) ou 3NN15 (Tenant DB), où NN = numéro d’instance

Remarque : Les numéros de ports peuvent être personnalisés lors de l’installation de SAP HANA. Vérifiez auprès de votre administrateur SAP HANA quels ports sont utilisés dans votre environnement.

Considérations supplémentaires

  • Haute disponibilité : Plusieurs ports peuvent être nécessaires pour les configurations en cluster
  • Équilibreurs de charge : Des ports supplémentaires peuvent être requis pour les configurations avec load balancer

Référence : Note SAP 2477204 - FAQ : Services et Ports SAP HANA (accès support SAP requis)

Accès serveur mindzie

Pour plus de sécurité, vous pouvez configurer votre pare-feu pour autoriser uniquement les connexions provenant des serveurs mindzie en mettant les adresses IP en liste blanche. Contactez le support mindzie pour obtenir les adresses IP actuelles des serveurs mindzie utilisés.

Extraction du document de changement CDPOS

CDPOS est une table SAP cruciale qui stocke les modifications au niveau des champs des objets métiers, couramment utilisée en analyse des processus pour suivre les modifications détaillées. Comme CDPOS ne contient pas directement de champs date, elle doit être jointe avec CDHDR (en-tête du document de changement) pour effectuer des filtrages temporels.

Requête base Oracle

-- VERSION ORACLE SQL : EXTRAIRE TOUS LES ENREGISTREMENTS CDPOS DES 2 DERNIÈRES ANNÉES
-- CDPOS ne contient PAS de champs date/heure – il faut joindre avec CDHDR pour filtrer

-- RÉFÉRENCES DOCUMENTAIRES :
-- 1. CDHDR.UDATE = "Date de création du document de changement" (Fiche SAP)
-- 2. CDPOS.CHANGENR = CDHDR.CHANGENR est la jointure standard (communauté SAP)
-- 3. "Ces deux tables sont reliées par le numéro de changement" (Techlorean)
-- 4. CDHDR contient les infos d’en-tête, CDPOS les détails par champ

SELECT CDPOS.*
FROM CDPOS
INNER JOIN CDHDR ON CDPOS.CHANGENR = CDHDR.CHANGENR
WHERE CDHDR.UDATE >= ADD_MONTHS(SYSDATE, -24)  -- Oracle : 24 derniers mois (2 ans)

-- NOTES SPECIFIQUES ORACLE :
-- 1. Utilise ADD_MONTHS(SYSDATE, -24) pour calcul date 2 ans
-- 2. SYSDATE renvoie la date/heure courante
-- 3. Alternative : CDHDR.UDATE >= SYSDATE - INTERVAL '2' YEAR
-- 4. Format date dans CDHDR.UDATE doit être compatible type DATE Oracle

Requête SAP via ODBC

-- SQL SAP VIA CONNECTEUR ODBC : EXTRAIRE TOUS LES ENREGISTREMENTS CDPOS DES 2 DERNIÈRES ANNÉES
-- CDPOS ne contient PAS de champs date/heure – il faut joindre avec CDHDR pour filtrer

-- RÉFÉRENCES DOCUMENTAIRES :
-- 1. CDHDR.UDATE = "Date de création du document de changement" (Fiche SAP)
-- 2. CDPOS.CHANGENR = CDHDR.CHANGENR est la jointure standard (communauté SAP)
-- 3. "Ces deux tables sont reliées par le numéro de changement" (Techlorean)
-- 4. CDHDR contient les infos d’en-tête, CDPOS les détails par champ

-- IMPORTANT : CDPOS est une table cluster – les jointures directes peuvent ne pas fonctionner via ODBC
-- Cette requête peut nécessiter d’être découpée en plusieurs selon la version SAP

SELECT CDPOS.*
FROM CDPOS
INNER JOIN CDHDR ON CDPOS.CHANGENR = CDHDR.CHANGENR
WHERE CDHDR.UDATE >= ADD_DAYS(CURRENT_DATE, -730)  -- SAP HANA : 730 derniers jours (2 ans)

-- NOTES SPECIFIQUES SAP SQL :
-- 1. Utilise ADD_DAYS(CURRENT_DATE, -730) pour calcul 2 ans (SAP HANA)
-- 2. Pour anciens systèmes SAP : CDHDR.UDATE >= '20220101' (date codée en dur)
-- 3. CDPOS est une table cluster – peut demander un traitement spécial via ODBC
-- 4. Alternative pour non-HANA : utiliser soustraction de date si supporté
-- 5. Format date : CDHDR.UDATE est généralement au format YYYYMMDD dans SAP
-- 6. Pour compatibilité max, utiliser paramètre date côté client :
--    WHERE CDHDR.UDATE >= '?' -- paramètre date 2 ans en arrière

-- AVERTISSEMENT TABLE CLUSTER :
-- CDPOS est une table cluster dans SAP, ce qui peut causer des problèmes avec les connexions ODBC
-- Préférez utiliser SAP RFC ou modules fonctionnels pour meilleure performance
-- Alternative : interroger d’abord CDHDR, puis CDPOS séparément avec les valeurs CHANGENR

Requête SQL Server (T-SQL)

-- VERSION T-SQL (SQL SERVER) : EXTRAIRE TOUS LES ENREGISTREMENTS CDPOS DES 2 DERNIÈRES ANNÉES
-- CDPOS ne contient PAS de champs date/heure – il faut joindre avec CDHDR pour filtrer

-- RÉFÉRENCES DOCUMENTAIRES :
-- 1. CDHDR.UDATE = "Date de création du document de changement" (Fiche SAP)
-- 2. CDPOS.CHANGENR = CDHDR.CHANGENR est la jointure standard (communauté SAP)
-- 3. "Ces deux tables sont reliées par le numéro de changement" (Techlorean)
-- 4. CDHDR contient les infos d’en-tête, CDPOS les détails par champ

SELECT CDPOS.*
FROM CDPOS
INNER JOIN CDHDR ON CDPOS.CHANGENR = CDHDR.CHANGENR
WHERE CDHDR.UDATE >= DATEADD(YEAR, -2, GETDATE())  -- T-SQL : 2 dernières années depuis la date courante

-- NOTES SPECIFIQUES T-SQL :
-- 1. Utilise DATEADD(YEAR, -2, GETDATE()) pour calcul date 2 ans
-- 2. GETDATE() renvoie la date/heure courante
-- 3. Alternative : CDHDR.UDATE >= DATEADD(MONTH, -24, GETDATE())
-- 4. Format date dans CDHDR.UDATE doit être compatible datetime SQL Server
-- 5. Peut nécessiter CONVERT() si UDATE est stocké en chaîne YYYYMMDD :
--    WHERE CONVERT(datetime, CDHDR.UDATE, 112) >= DATEADD(YEAR, -2, GETDATE())

Installation du pilote ODBC (serveur mindzieStudio uniquement)

Note : Cette section est uniquement nécessaire pour le serveur exécutant mindzieStudio.

Téléchargement

Allez sur : https://tools.hana.ondemand.com/#hanatools

  1. Créez un compte SAP gratuit si besoin (inscription rapide)
  2. Cherchez : SAP HANA Client
  3. Téléchargez la version : Windows on x64 64bit
  4. Nom du fichier : hanaclient-x.x.x.x-windows-x64.zip

Installation

  1. Extrayez le fichier ZIP
  2. Lancez hdbsetup.exe en tant qu’administrateur
  3. Sélectionnez "Installer un nouveau client SAP HANA"
  4. Suivez l’assistant (acceptez les valeurs par défaut)
  5. Terminé !

Vérification de l’installation

Exécutez dans PowerShell :

Get-OdbcDriver | Where-Object {$_.Name -like "*HDB*"}

Le résultat doit afficher : HDBODBC [64-bit]

Pilote non listé après installation

cd "C:\Program Files\SAP\hdbclient"
hdbodbc_cons.exe -i

Dépannage

Problèmes fréquents de connexion

Erreur "Impossible de se connecter au serveur"

  • Vérifiez le nom d'hôte et le numéro de port du serveur
  • Contrôlez la connectivité réseau et les règles du pare-feu
  • Assurez-vous que l’instance SAP HANA est en cours d’exécution et accepte les connexions
  • Vérifiez l’état du service HANA avec HDB info

Erreur "Échec de l’authentification"

  • Vérifiez que le nom d’utilisateur et le mot de passe sont corrects
  • Contrôlez si le compte utilisateur est verrouillé ou expiré
  • Assurez-vous que l’utilisateur dispose du privilège CONNECT
  • Vérifiez la conformité à la politique de mot de passe

Erreur "Pilote introuvable"

  • Installez le pilote SAP HANA ODBC depuis SAP HANA Client
  • Vérifiez l’enregistrement du pilote dans l’administrateur de sources de données ODBC
  • Contrôlez la compatibilité 32-bit vs 64-bit du pilote
  • Assurez-vous que le chemin du pilote est dans la variable système PATH

Erreur "Table ou vue inexistante"

  • Vérifiez les noms des tables/vues et les références des schémas
  • Contrôlez les permissions utilisateur sur les objets spécifiques
  • Utilisez les noms qualifiés : SCHEMA.TABLE
  • Validez la casse des noms d’objets

Informations liées


Sources et références

Cette documentation est basée sur les sources suivantes :

Documentation officielle SAP

Ressources communautaires et techniques