Introduction
SAP BW reste un pilier de l'entrepôt de données d'entreprise en 2026. Avec SAP HANA, les performances explosent mais nécessitent une modélisation précise. Ce tutoriel vous guide pas à pas pour optimiser un modèle BW complet, de la couche de persistance aux cubes virtuels. Vous apprendrez à exploiter les vues calculation et les scripts de transformation pour réduire les temps de chargement de 70 %. Chaque étape inclut du code fonctionnel prêt à l'emploi.
Prérequis
- Accès à un système SAP BW/4HANA 2023+
- Connaissances avancées en modélisation BW et SQL
- Studio HANA et Eclipse installés
- Droits développeur sur le système source
Création de la table de staging
CREATE COLUMN TABLE "STAGING"."ZSTG_SALES" (
"MANDT" NVARCHAR(3) NOT NULL,
"VBELN" NVARCHAR(10) NOT NULL,
"POSNR" NVARCHAR(6) NOT NULL,
"MATNR" NVARCHAR(40),
"NETWR" DECIMAL(15,2),
PRIMARY KEY ("MANDT", "VBELN", "POSNR")
);Cette table de staging persiste les données extraites avant transformation. Utilisez COLUMN TABLE pour bénéficier de la compression HANA et des performances en lecture.
Script de transformation ABAP-like en SQL
INSERT INTO "BW"."ZADS_SALES"
SELECT
MANDT, VBELN, POSNR, MATNR,
NETWR * 1.2 AS NETWR_EUR
FROM "STAGING"."ZSTG_SALES"
WHERE NETWR > 0;Ce script réalise une transformation simple avec calcul de devise. Évitez les curseurs pour rester en mode set-based et maximiser les performances HANA.
Configuration du DataSource en JSON
{
"name": "ZDS_SALES",
"type": "Extractor",
"source": "ECC",
"delta": true,
"fields": ["VBELN", "POSNR", "MATNR", "NETWR"]
}Le fichier JSON définit le DataSource avec activation du delta. Importez-le via l'outil de transport pour garantir la cohérence entre environnements.
Script Python de chargement automatisé
import pyhdb
conn = pyhdb.connect(host='hana-server', port=30015, user='BWADMIN', password='xxx')
cursor = conn.cursor()
cursor.execute('CALL "BW"."ZPROC_LOAD_SALES"()')
conn.commit()Ce script Python déclenche la procédure stockée de chargement. Utilisez pyhdb pour les connexions directes HANA et gérez les erreurs avec des try/except.
Vue calculation avancée
CREATE CALCULATION VIEW "CV_SALES" AS
SELECT
MATNR,
SUM(NETWR) AS TOTAL
FROM "BW"."ZADS_SALES"
GROUP BY MATNR;La vue calculation remplace les cubes classiques. Activez le flag de cache pour les requêtes fréquentes et testez avec Explain Plan.
Fichier de configuration du process chain
chain:
name: ZPC_SALES
steps:
- type: DTP
target: ZADS_SALES
- type: Activation
target: ZCUBE_SALESCe fichier YAML décrit la chaîne de process. Déployez-le avec l'API BW pour automatiser les chargements nocturnes.
Bonnes pratiques
- Préférez les vues calculation aux InfoCubes physiques pour réduire l'empreinte mémoire
- Activez le partitionnement sur les champs de date dans toutes les tables de faits
- Utilisez des procédures stockées plutôt que des transformations ABAP classiques
- Surveillez les vues avec SAP HANA Studio et limitez les jointures à 3 tables maximum
- Documentez chaque objet BW avec des métadonnées standards
Erreurs courantes à éviter
- Oublier d'activer le delta sur les DataSources entraîne des rechargements complets coûteux
- Utiliser des SELECT * dans les transformations dégrade les performances HANA
- Ignorer les indexes sur les tables de dimension provoque des timeouts sur les requêtes
- Ne pas tester les process chains en environnement de qualité avant la production
Pour aller plus loin
Approfondissez vos compétences avec nos formations SAP BW avancées. Découvrez également les modules sur BW/4HANA et les intégrations avec SAP Analytics Cloud.