Exporter les données des systèmes SAP vers Google BigQuery à l'aide de SAP Data Services

Ces instructions vous expliquent comment exporter les données d'une application SAP ou de sa base de données sous-jacente vers BigQuery à l'aide de SAP Data Services (DS).

Il peut s'agir d'une base de données SAP HANA ou de toute autre base de données compatible avec SAP.

L'exemple de ce guide exporte les tables d'une base de données SQL Anywhere. Vous pouvez néanmoins l'utiliser pour configurer l'exportation d'autres types d'objets de l'application SAP et de la couche de base de données vers BigQuery.

Vous pouvez exporter les données des systèmes SAP pour les sauvegarder ou les regrouper avec des données client provenant d'autres systèmes dans BigQuery, afin d'obtenir des insights grâce au machine learning et pour l'analyse de données à l'échelle du pétaoctet.

Ces instructions sont destinées aux administrateurs de systèmes SAP qui savent comment configurer SAP Basis, SAP DS et Google Cloud.

Architecture

Le flux de réplication commence au niveau de la base de données ou de l'application SAP, et transite par SAP Data Services pour atteindre BigQuery.

SAP Data Services récupère les données de l'application SAP ou de sa base de données sous-jacente, les transforme pour qu'elles soient compatibles avec le format BigQuery et lance la tâche de chargement qui déplace les données vers BigQuery. Une fois la tâche de chargement terminée, les données sont disponibles dans BigQuery pour analyse.

L'exportation correspond à un instantané des données du système source au moment de l'exportation. Vous contrôlez le moment où SAP Data Services lance une exportation. Toutes les données existantes dans la table BigQuery cible sont écrasées par les données exportées. Les données exportées dans BigQuery ne sont pas synchronisées avec les données du système source.

Dans ce scénario, le système source SAP et SAP Data Services peuvent être exécutés sur ou en dehors de Google Cloud.

Composants principaux de la solution

Les composants suivants sont nécessaires pour exporter les données d'une application SAP ou d'une base de données vers BigQuery à l'aide de SAP Data Services :

Composant Versions requises Remarques
Pile du serveur de l'application SAP Tout système SAP basé sur ABAP à partir de la version R/3 4.6C Dans ce guide, le serveur d'application et le serveur de base de données sont collectivement désignés par l'appellation système source, même s'ils s'exécutent sur des machines différentes.

Définissez l'utilisateur RFC avec l'autorisation appropriée.

Facultatif : Définissez un espace de table distinct pour les tables de journalisation.
Système de base de données Toute version de base de données répertoriée comme étant acceptée dans la matrice de disponibilité des produits SAP (PAM), sous réserve des restrictions de la pile SAP NetWeaver identifiées dans la matrice.
SAP Data Services SAP Data Services version 4.2 SP1 ou ultérieure
BigQuery ND

Coûts

BigQuery est un composant Google Cloud facturable.

Obtenez une estimation des coûts en fonction de votre utilisation prévue à l'aide du simulateur de coût.

Prérequis

Dans ces instructions, nous partons du principe que le système d'application SAP, le serveur de base de données et SAP Data Services sont déjà installés et configurés pour une utilisation standard.

Vérifiez auprès de SAP que votre configuration planifiée est conforme aux conditions de licence SAP. Les conditions peuvent varier selon que vous exportez des données depuis un système d'application SAP ou une base de données sous-jacente.

Configurer un projet cloud dans Google Cloud

Avant de pouvoir utiliser BigQuery, vous devez disposer d'un projet Google Cloud.

Créer un projet Google Cloud

  1. Accédez à Google Cloud Console et inscrivez-vous en suivant la procédure de l'assistant de configuration.

    ACCÉDER À CLOUD CONSOLE

  2. À côté du logo Google Cloud dans l'angle supérieur gauche, cliquez sur la liste déroulante et sélectionnez NOUVEAU PROJET.

  3. Attribuez un nom à votre projet, puis cliquez sur Créer.

  4. Une fois le projet créé (une notification s'affiche en haut à droite), actualisez la page.

Activer des API

Activez l'API BigQuery :

ACCÉDER À L'API BIGQUERY

Créer un compte de service

Le compte de service (plus précisément son fichier de clé) permet d'authentifier SAP DS dans BigQuery. Vous utiliserez le fichier de clé ultérieurement lors de la création du datastore cible.

  1. Dans Google Cloud Console, accédez à la page Comptes de service.

    ACCÉDER À LA PAGE "COMPTES DE SERVICE"

  2. Sélectionnez votre projet Google Cloud.

  3. Cliquez sur Créer un compte de service.

  4. Saisissez un nom de compte de service.

  5. Cliquez sur Create and continue (Créer et continuer).

  6. Dans la liste Sélectionner un rôle, sélectionnez BigQuery > Éditeur de données BigQuery.

  7. Cliquez sur Ajouter un autre rôle.

  8. Dans la liste Sélectionner un rôle, choisissez BigQuery > Utilisateur de tâche BigQuery.

  9. Cliquez sur Continuer.

  10. Le cas échéant, accordez aux autres utilisateurs l'accès au compte de service.

  11. Cliquez sur OK.

  12. Sur la page Comptes de service de la console Google Cloud, cliquez sur l'adresse e-mail du compte de service que vous venez de créer.

  13. Sous le nom du compte de service, cliquez sur l'onglet Clés.

  14. Cliquez sur le menu déroulant Ajouter une clé, puis sélectionnez Créer une clé.

  15. Assurez-vous que le type de clé JSON est spécifié.

  16. Cliquez sur Create (Créer).

  17. Enregistrez le fichier de clé téléchargé automatiquement dans un emplacement sécurisé.

Configurer l'exportation des systèmes SAP vers BigQuery

Pour configurer cette solution, voici les étapes majeures à suivre :

  • Configurer SAP Data Services
  • Créer un flux de données entre SAP Data Services et BigQuery

Configuration de SAP Data Services

Créer un projet Data Services

  1. Ouvrez l'application SAP Data Services Designer.
  2. Sélectionnez Project > New > Project (Projet > Nouveau > Projet).
  3. Saisissez un nom dans le champ Project name (Nom du projet).
  4. Cliquez sur Créer. Votre projet s'affiche dans l'explorateur de projets à gauche.

Créer un datastore source

Vous pouvez utiliser un système d'application SAP ou sa base de données sous-jacente comme datastore source pour SAP Data Services. Les types d'objets de données que vous exportez varient selon que vous utilisiez un système d'application SAP ou une base de données en tant que datastore.

Si vous utilisez un système d'application SAP en tant que datastore, vous pouvez exporter les objets suivants :

  • Tables
  • Vues
  • Hiérarchies
  • ODP
  • BAPI (fonctions)
  • IDoc (documents intermédiaires)

Le flux de réplication commence au niveau de la base de données ou de l'application SAP, et transite par SAP Data Services pour atteindre BigQuery.

Si vous utilisez une base de données sous-jacente pour vous connecter au datastore, vous pouvez exporter des objets tels que les suivants :

  • Tables
  • Vues
  • Procédures stockées
  • Autres objets de données

Le flux de réplication commence au niveau de la base de données ou de l'application SAP, et transite par SAP Data Services pour atteindre BigQuery.

Les configurations du datastore pour les bases de données et les systèmes d'applications SAP sont décrites dans les sections suivantes. Quel que soit le type de connexion au datastore ou le type de l'objet de données, la procédure d'importation et d'utilisation des objets dans un flux de données SAP Data Services est presque identique.

Configuration de la connexion à la couche d'application SAP

Ces étapes permettent d'établir une connexion à l'application SAP et d'ajouter les objets de données au nœud du datastore applicable dans la bibliothèque d'objets Designer.

  1. Ouvrez l'application SAP Data Services Designer.
  2. Ouvrez votre projet SAP Data Services dans l'explorateur de projets.
  3. Sélectionnez Project > New > Datastore (Projet > Nouveau > Datastore).
  4. Renseignez le champ Datastore Name (Nom du datastore). Par exemple, "ECC_DS".
  5. Dans le champ Datastore type (Type de datastore), sélectionnez SAP Applications (Applications SAP).
  6. Dans le champ Application server name (Nom du serveur d'application), saisissez le nom de l'instance du serveur d'application SAP.
  7. Indiquez les identifiants d'accès au serveur d'application SAP.
  8. Cliquez sur OK.

Configuration de la connexion à la couche de base de données SAP

SAP HANA

Ces étapes permettent d'établir une connexion à la base de données SAP HANA et d'ajouter les tables de données au nœud du datastore applicable dans la bibliothèque d'objets Designer.

  1. Ouvrez l'application SAP Data Services Designer.
  2. Ouvrez votre projet SAP Data Services dans l'explorateur de projets.
  3. Sélectionnez Project > New > Datastore (Projet > Nouveau > Datastore).
  4. Renseignez le champ Datastore Name (Nom du datastore). Par exemple, "HANA_DS".
  5. Dans le champ Datastore type (Type de datastore), sélectionnez l'option Database (Base de données).
  6. Dans le champ Database type (Type de base de données), sélectionnez l'option SAP HANA.
  7. Dans le champ Database version (Version de la base de données), sélectionnez la version de votre base de données.
  8. Renseignez les champs Database server name (Nom du serveur de base de données) et Port Number (Numéro de port), et spécifiez les identifiants d'accès.
  9. Cliquez sur OK.
Autres bases de données compatibles

Ces étapes permettent d'établir une connexion à SQL Anywhere et d'ajouter les tables de données au nœud du datastore applicable dans la bibliothèque d'objets Designer.

La procédure de création d'une connexion à d'autres bases de données compatibles est quasiment identique.

  1. Ouvrez l'application SAP Data Services Designer.
  2. Ouvrez votre projet SAP Data Services dans l'explorateur de projets.
  3. Sélectionnez Project > New > Datastore (Projet > Nouveau > Datastore).
  4. Renseignez le champ Name (Nom). Par exemple, "SQL_ANYWHERE_DS".
  5. Dans le champ Datastore type (Type de datastore), sélectionnez l'option Database (Base de données).
  6. Dans le champ Database type (Type de base de données), sélectionnez l'option SQL Anywhere.
  7. Dans le champ Database version (Version de la base de données), sélectionnez la version de votre base de données.
  8. Renseignez les champs Database server name (Nom du serveur de base de données) et Database name (Nom de la base de données), et spécifiez les identifiants d'accès.
  9. Cliquez sur OK.

Le nouveau datastore s'affiche dans l'onglet Datastore de la bibliothèque d'objets locaux Designer.

Créer un datastore cible

Ces étapes permettent de créer un datastore BigQuery qui utilise le compte de service créé précédemment dans la section Créer un compte de service. Le compte de service permet à SAP Data Services d'accéder à BigQuery de manière sécurisée.

Pour en savoir plus, consultez les pages Obtain your Google service account email (Obtenir l'adresse e-mail d'un compte de service Google) et Obtain a Google service account private key file (Obtenir le fichier de clé privée d'un compte de service Google) de la documentation SAP Data Services.

  1. Ouvrez l'application SAP Data Services Designer.
  2. Ouvrez votre projet SAP Data Services dans l'explorateur de projets.
  3. Sélectionnez Project > New > Datastore (Projet > Nouveau > Datastore).
  4. Renseignez le champ Name (Nom). Par exemple, "BQ_DS".
  5. Dans le champ Datastore type (Type de datastore), sélectionnez Google BigQuery.
  6. L'option Web Service URL (URL du service Web) s'affiche. Le logiciel saisit automatiquement l'URL du service Web BigQuery par défaut dans cette option.
  7. Choisissez Advanced (Avancée).
  8. Renseignez les options avancées en fonction des descriptions d'options du datastore pour BigQuery décrites dans la documentation SAP Data Services.
  9. Cliquez sur OK.

Le nouveau datastore s'affiche dans l'onglet Datastore de la bibliothèque d'objets locaux Designer.

Configurer le flux de données entre SAP Data Services et BigQuery

Pour configurer le flux de données, vous devez créer une tâche par lot, configurer le flux de données du chargeur BigQuery, et importer les tables sources et BigQuery dans SAP Data Services en tant que métadonnées externes.

Créer la tâche par lot

  1. Ouvrez l'application SAP Data Services Designer.
  2. Ouvrez votre projet SAP Data Services dans l'explorateur de projets.
  3. Sélectionnez Project > New > Batch Job (Projet > Nouveau > Tâche par lot).
  4. Renseignez le champ Name (Nom). Par exemple, "JOB_SQL_ANYWHERE_BQ".
  5. Cliquez sur OK.

Créer une logique de flux de données

Importer la table source

Ces étapes permettent d'importer la table de la base de données à partir du datastore source et de la rendre disponible dans SAP Data Services.

  1. Ouvrez l'application SAP Data Services Designer.
  2. Développez le datastore source dans l'explorateur de projets.
  3. Sélectionnez l'option External Metadata (Métadonnées externes) dans la partie supérieure du panneau de droite. La liste des nœuds et des tables et/ou des autres objets disponibles s'affiche.
  4. Sélectionnez la table à importer dans la liste.
  5. Effectuez un clic droit, puis sélectionnez l'option Import (Importer).
  6. La table importée est désormais disponible dans la bibliothèque d'objets sous le nœud du datastore source.
Créer un flux de données
  1. Sélectionnez la tâche par lot dans l'explorateur de projets.
  2. Effectuez un clic droit dans un espace de travail vide dans le panneau de droite, puis sélectionnez l'option Add New > Dataflow (Ajouter > Flux de données).
  3. Effectuez un clic droit sur l'icône de flux de données, puis sélectionnez Rename (Renommer).
  4. Remplacez le nom par "DF_SQL_ANYWHERE_BQ".
  5. Ouvrez l'espace de travail du flux de données en double-cliquant sur l'icône correspondante.

    Capture d'écran de l'icône de flux de données.

Importer le flux de données et l'associer aux objets du datastore source
  1. Développez le datastore source dans l'explorateur de projets.
  2. Dans le datastore, glissez-déposez la table source sur l'espace de travail du flux de données. Sélectionnez l'option Make Source (Créer une source) lorsque vous faites glisser la table sur l'espace de travail. Dans les instructions ci-dessous, le datastore se nomme "SQL_ANYWHERE_DS". Le nom de votre datastore peut être différent.
  3. Faites glisser Query transform (Transformation de requête) depuis le nœud Platform (Plate-forme) situé dans l'onglet Transforms (Transformations) de la bibliothèque d'objets sur le flux de données.
  4. Associez la table source de l'espace de travail à Query transform (Transformation de requête).
  5. Double-cliquez sur Query transform (Transformation de requête).
  6. Sélectionnez tous les champs de la table sous Schema In (Schéma d'entrée) à gauche, puis faites-les glisser vers Schema Out (Schéma de sortie) à droite.

    • Sélectionnez le champ date/heure dans la liste Schema Out (Schéma désactivé) à droite.
    • Sélectionnez l'onglet Mapping (Mappage) sous les listes de schémas.
    • Remplacez le nom du champ par la fonction suivante :

      to_date(to_char(FIELDNAME,'yyyy-mm-dd hh24:mi:ss'), 'yyyy-mm-dd
      hh24:mi:ss')

      Où FIELDNAME est le nom du champ sélectionné.

    Capture d'écran de SAP Data Services Designer illustrant la conversion du type de données date/heure d'un champ.

  7. Dans la barre d'outils de l'application, cliquez sur l'icône de retour pour revenir à l'éditeur de flux de données.

  8. Dans le nœud Platform (Plate-forme) de l'onglet Transforms (Transformations) de la bibliothèque d'objets, faites glisser une transformation XML_Map sur le flux de données.

  9. Dans la boîte de dialogue, sélectionnez le mode Batch (Par lot).

  10. Associez la transformation Query (Requête) à la transformation XML_Map.

    Capture d'écran d'icônes représentant le flux issu de la table source vers XML_Map et passant via la transformation Query (Requête).

Créer un fichier de schéma

Ces étapes permettent de créer un fichier de schéma représentatif de la structure des tables sources. Vous allez ensuite créer une table BigQuery à l'aide de ce fichier.

Le schéma garantit que le flux de données du chargeur BigQuery remplit correctement la nouvelle table BigQuery.

  1. Ouvrez la transformation XML_Map, puis complétez les sections des schémas d'entrée et de sortie en fonction des données incluses dans la table BigQuery.
  2. Effectuez un clic droit sur le nœud XML_Map dans la colonne Schema Out (Schéma de sortie), puis sélectionnez Generate Google BigQuery Schema (Générer le schéma Google BigQuery) dans le menu déroulant.
  3. Indiquez un nom et un emplacement pour le schéma.
  4. Cliquez sur Save (Enregistrer).

SAP Data Services génère un fichier de schéma portant l'extension .json.

Capture d'écran du menu déroulant de SAP Data Services Designer permettant de générer un schéma Google BigQuery.

Créer la table BigQuery

Vous devez créer une table dans votre ensemble de données BigQuery sur Google Cloud pour le chargement des données. Vous vous servez du schéma créé dans SAP Data Services pour créer cette table.

La table est basée sur le schéma généré à l'étape précédente.

  1. Accédez à votre projet Google Cloud dans Google Cloud Console.
  2. Sélectionnez BigQuery.
  3. Cliquez sur l'ensemble de données concerné.
  4. Cliquez sur Créer une table.
  5. Saisissez un nom de table. Par exemple, BQ_DATA_LOAD.
  6. Sous Schéma, activez le mode Modifier sous forme de texte.
  7. Définissez le schéma de la nouvelle table dans BigQuery en copiant et en collant le contenu du fichier de schéma créé dans la section Créer un fichier de schéma.
  8. Cliquez sur Créer une table.
Importer la table BigQuery

Ces étapes permettent d'importer la table BigQuery créée à l'étape précédente et de la rendre disponible dans SAP Data Services.

  1. Dans la bibliothèque d'objets SAP Data Services Designer, effectuez un clic droit sur le datastore BigQuery, puis sélectionnez l'option Refresh Object Library (Actualiser la bibliothèque d'objets). Cette opération met à jour la liste des tables de sources de données. Vous pouvez ensuite les utiliser dans votre flux de données.
  2. Ouvrez le datastore BigQuery.
  3. Dans la partie supérieure du panneau de droite, sélectionnez External Metadata (Métadonnées externes). La table BigQuery que vous avez créée s'affiche.
  4. Effectuez un clic droit sur le nom de la table BigQuery de votre choix, puis sélectionnez Import (Importer).
  5. L'importation de la table sélectionnée dans SAP Data Services commence. La table est désormais disponible dans la bibliothèque d'objets sous le nœud du datastore cible.
Importer le flux de données et l'associer aux objets du datastore cible
  1. Dans le datastore de la bibliothèque d'objets, faites glisser la table BigQuery importée sur le flux de données. Dans ces instructions, le datastore se nomme BQ_DS. Le nom de votre datastore peut être différent.
  2. Associez la transformation XML_Map à la table BigQuery importée.

    Capture d'écran des icônes représentant le flux de la table source vers la table BigQuery via les transformations Query (Requête) et XML_Map.

  3. Ouvrez la transformation XML_Map, puis complétez les sections des schémas d'entrée et de sortie en fonction des données incluses dans la table BigQuery.

  4. Dans l'espace de travail, double-cliquez sur la table BigQuery pour l'ouvrir, puis remplissez les options de l'onglet Target (Cible) comme indiqué dans le tableau suivant :

    Option Description
    Port de création Spécifiez No (Non), qui est la valeur par défaut.

    Spécifier Yes (Oui) permet de transformer un fichier source ou cible en port du flux de données intégré.
    Mode Définissez le paramètre Troncate (Tronquer) pour le chargement initial. Il remplace tous les enregistrements existants de la table BigQuery par les données chargées par SAP Data Services. Truncate (Tronquer) est la valeur par défaut.
    Nombre de chargeurs Spécifiez un entier positif pour définir le nombre de chargeurs (threads) à utiliser pour le traitement. La valeur par défaut est 4.

    Chaque chargeur lance une tâche de chargement avec reprise dans BigQuery. Vous pouvez spécifier autant de chargeurs que vous le souhaitez.
    Pour déterminer le nombre approprié de chargeurs, consultez la documentation SAP, y compris les pages suivantes :
    Nombre maximal d'échecs d'enregistrements par chargeur Indiquez zéro ou un entier positif pour définir le nombre maximal d'enregistrements pouvant échouer par tâche de chargement avant que BigQuery arrête le chargement des enregistrements. La valeur par défaut est zéro (0).
  5. Cliquez sur l'icône de validation dans la barre d'outils supérieure.

  6. Cliquez sur l'icône de retour dans la barre d'outils de l'application pour revenir à l'éditeur de flux de données.

Charger les données dans BigQuery

Ces étapes lancent la tâche de réplication et exécutent le flux de données dans SAP Data Services afin de charger les données du système source dans BigQuery.

Lorsque vous exécutez le chargement, toutes les données de l'ensemble de données source sont répliquées dans la table BigQuery cible associée au flux de données de chargement. Toutes les données de la table cible sont écrasées.

  1. Dans SAP Data Services Designer, ouvrez l'explorateur de projets.
  2. Effectuez un clic droit sur le nom de la tâche de réplication, puis cliquez sur Execute (Exécuter).
  3. Cliquez sur OK.
  4. Le processus de chargement démarre, et les messages de débogage s'affichent dans le journal SAP Data Services. Les données sont chargées dans la table que vous avez créée dans BigQuery pour les chargements initiaux. Dans les présentes instructions, la table de chargement se nomme BQ_DATA_LOAD. Le nom de votre table peut être différent.
  5. Pour savoir si le chargement est terminé, accédez à Google Cloud Console et ouvrez l'ensemble de données BigQuery qui contient la table. Si le chargement des données est toujours en cours, la mention Loading (Chargement) s'affiche à côté du nom de la table.

Une fois le chargement terminé, les données sont prêtes à être traitées dans BigQuery.

Programmer les chargements

Vous pouvez programmer l'exécution d'une tâche de chargement à intervalles réguliers à l'aide de SAP Data Services Management Console.

  1. Ouvrez l'application SAP Data Services Management Console.
  2. Cliquez sur Administrator (Administrateur).
  3. Dans l'arborescence de menu située à gauche, développez le nœud Batch (Par lot).
  4. Cliquez sur le nom de votre dépôt SAP Data Services.
  5. Cliquez sur l'onglet Batch Job Configuration (Configuration de la tâche par lot).
  6. Cliquez sur Add Schedule (Ajouter un programme).
  7. Saisissez le nom du programme.
  8. Cochez la case Active.
  9. Dans la section Select scheduled time for executing the jobs (Sélectionner l'heure programmée pour l'exécution des tâches), spécifiez la fréquence d'exécution du chargement différé.
    1. Important : Google Cloud limite le nombre de tâches de chargement BigQuery que vous pouvez exécuter par jour. Assurez-vous que votre programme ne dépasse pas la limite, car celle-ci ne peut pas être augmentée. Pour en savoir plus sur la limite applicable aux tâches de chargement BigQuery, consultez la page Quotas et limites de la documentation BigQuery.
  10. Cliquez sur Apply (Appliquer).

    Capture d'écran de l'onglet "Schedule Batch Job" (Programmer une tâche par lot) dans SAP Data Services Management Console.

Étapes suivantes

Interrogez et analysez les données répliquées dans BigQuery. Pour en savoir plus sur les requêtes, consultez la page suivante :

Pour savoir comment configurer une solution de réplication des données quasiment en temps réel des applications SAP vers BigQuery à l'aide de SAP Landscape Transformation Replication Server et de SAP Data Services, consultez la page suivante :

Pour découvrir d'autres architectures de référence, schémas et bonnes pratiques, consultez le Centre d'architecture cloud.