Le plug-in source par lot (plug-in SAP Table) vous permet de lire des données provenant de SAP standards et personnalisées. Il permet l'ingestion groupée de données à partir de SAP dans BigQuery, ou dans tout autre système cible compatible, Cloud Data Fusion. Le plug-in offre les fonctionnalités clés suivantes:
- Utilise SAP ECC, SAP S4/HANA ou SAP BW comme système source
- N'utilise pas la capture des données modifiées (CDC, Change Data Capture) SAP pour suivre et extraire les données nouvelles et delta dans les sources de données
- Utilise le mode d'extraction par lot
- Accepte les tables SAP et les vues ABAP CDS en tant que sources de données
- Accédez aux données SAP via la couche application
Vous pouvez lire les données provenant des sources suivantes:
- Tables transparentes
- Tables de cluster
- Tables de billard
- Vues CDS ABAP
- Objets ADSO SAP BW
Versions logicielles compatibles
Logiciel | Versions |
---|---|
SAP S4/HANA | SAP S4/HANA 1909 et versions ultérieures |
SAP ECC | SAP ERP6 NW 7.31 SP16 et versions ultérieures |
SAP JCo | SAP JCo version 3.0.20 ou ultérieure |
Cloud Data Fusion | 6.3 et versions ultérieures |
Pour en savoir plus sur SAP sur Google Cloud, consultez la présentation de SAP sur Google Cloud.
Avant de commencer
Configurez les systèmes et services suivants utilisés par le plug-in SAP Table :
- Configurez le système SAP ERP.
Ce processus comprend les étapes suivantes :
- Installez les fichiers de transport SAP.
- Configurez les autorisations et les rôles SAP requis.
- Configurez le connecteur Java SAP.
Déployez le plug-in dans Cloud Data Fusion.
- Important : Choisissez une version de plug-in compatible avec la version de Cloud Data Fusion.
- Si vous mettez à niveau la version de votre instance ou de votre plug-in Cloud Data Fusion, évaluez l'impact des modifications sur la portée fonctionnelle et les performances du pipeline.
Établissez une connectivité RFC entre Cloud Data Fusion et SAP.
- Assurez-vous que la communication est activée entre les Instance Cloud Data Fusion et au serveur SAP.
- Pour les instances privées, configurez Appairage de réseaux VPC.
- Le système SAP et l'instance Cloud Data Fusion doivent tous deux dans le même projet.
Configurer le plug-in
- Accédez à l'interface Web de Cloud Data Fusion, puis cliquez sur Studio.
- Vérifiez que l'option Data Pipeline – Batch (Pipeline de données – Lot) est sélectionnée (et non Realtime).
- Dans le menu Source, cliquez sur Table SAP. Nœud de table SAP apparaît dans votre pipeline.
- Pour configurer la source, accédez au nœud de la table SAP et cliquez sur Propriétés :
Saisissez les propriétés suivantes. Pour obtenir la liste complète, consultez la section Propriétés.
- Saisissez un libellé pour le nœud de table SAP (par exemple,
SAP tables
). Saisissez les informations de connexion. Vous pouvez configurer une connexion ponctuelle ou une connexion existante réutilisable.
Nouvelle connexion
Pour ajouter une connexion unique à SAP, procédez comme suit : étapes:
- Laissez l'option Utiliser la connexion désactivée.
Dans la section Connexion, saisissez les informations suivantes du compte SAP dans les champs suivants :
- Dans le champ Nom de la référence, saisissez le nom qui identifie cette source pour la traçabilité.
- Dans le champ Client SAP, saisissez le nom du client d'une instance ou d'un environnement spécifique dans SAP. Un administrateur SAP peut fournir le nom du client.
- Dans le champ Langage SAP, saisissez un langage de connexion SAP. La valeur par défaut est EN (Anglais).
Sélectionnez l'un des types de connexion suivants.
- Direct (via le serveur d'applications SAP) Si vous choisissez ce type par défaut, saisissez les informations dans les champs suivants : Hôte de serveur d'application SAP, Numéro de système SAP et Routeur SAP.
- Équilibrage de charge (via le serveur de messagerie SAP). Si vous choisissez ce type, renseignez les champs suivants: SAP Message Server host (Hôte de serveur de messages SAP), service de serveur de messages SAP ou numéro de port, ID système SAP (SID) et ouverture de session SAP nom du groupe.
Dans le champ Nom de la table/vue SAP, saisissez le nom de la table ou de la vue de votre système SAP.
Fournissez les identifiants SAP : demandez à votre administrateur SAP le nom d'utilisateur de connexion SAP et le mot de passe.
Dans le champ Chemin d'accès Cloud Storage de la bibliothèque JCo, saisissez le chemin d'accès du connecteur Java SAP (SAP JCo) dans Cloud Storage qui contient les fichiers de bibliothèque SAP JCo que vous avez importés.
Pour générer un schéma basé sur les métadonnées de SAP qui mappe les types de données SAP sur les types de données Cloud Data Fusion correspondants, cliquez sur Obtenir le schéma. Pour en savoir plus, consultez la section Mappages des types de données.
Facultatif: pour optimiser la charge d'ingestion de SAP, saisissez dans les champs suivants:
Les options de filtrage vous permettent d'extraire des enregistrements en fonction de conditions de sélection, telles que des colonnes ayant un ensemble de valeurs défini. Définissez les conditions dans la syntaxe OpenSQL
WHERE
. Par exemple, cette requête renvoie toutes les lignes de la tableRoster
dont la colonneSchoolID
a la valeurSchoolID > 52
:SELECT * FROM Roster WHERE SchoolID > 52;
Pour en savoir plus, consultez la section Filtres acceptés.
Dans le champ Nombre de lignes à récupérer, vous pouvez limiter les données extraites en fournissant un nombre entier positif de lignes.
Dans le champ Nombre de divisions, vous pouvez créer pour extraire les enregistrements de données en parallèle, améliore les performances. Le nombre de divisions peut avoir une incidence sur SAP processus de travail et doivent être sélectionnés avec soin.
Dans le champ Taille du package, spécifiez le nombre d'enregistrements à extraire dans un seul appel réseau SAP. La la taille du package affecte les performances et les ressources disponibles et doit être sélectionné avec soin.
Connexion réutilisable
Pour réutiliser une connexion existante, procédez comme suit:
- Activez l'option Utiliser la connexion.
- Cliquez sur Parcourir les connexions.
Cliquez sur le nom de la connexion.
Si aucune connexion n'existe, suivez les instructions ci-dessous pour créer une connexion réutilisable procédez comme suit:
- Cliquez sur Add connection > SapTable (Ajouter une connexion > SapTable).
- Sur la page Create a SapTable connection (Créer une connexion SapTable) qui s'affiche, saisissez un nom et une description de connexion.
- Dans le champ Client SAP, saisissez le nom du client une instance ou un environnement spécifique dans SAP. Un administrateur SAP peut fournir le nom du client.
- Dans le champ SAP language (Langue SAP), saisissez une langue d'ouverture de session SAP. La valeur par défaut est EN (Anglais).
Sélectionnez l'un des types de connexion suivants.
- Direct (via le serveur d'applications SAP) Si vous choisissez ce type par défaut, saisissez les informations dans les champs suivants : Hôte de serveur d'application SAP, Numéro de système SAP et Routeur SAP.
- Équilibrage de charge (via le serveur de messagerie SAP). Si vous choisissez ce type, renseignez les champs suivants: SAP Message Server host (Hôte de serveur de messages SAP), service de serveur de messages SAP ou numéro de port, ID système SAP (SID) et ouverture de session SAP nom du groupe.
Indiquez les identifiants SAP: demandez à votre administrateur SAP les valeurs SAP logon username (nom d'utilisateur SAP) et Password (Mot de passe).
Dans le champ JCo Library Cloud Storage path (Chemin d'accès à la bibliothèque JCo Cloud Storage), saisissez le Chemin d'accès au connecteur Java (SAP JCo) dans Cloud Storage qui contient les fichiers de la bibliothèque SAP JCo que vous avez importés.
Facultatif : dans le champ Propriétés de connexion SAP supplémentaires, saisissez les paires clé-valeur qui doivent remplacer les valeurs par défaut de SAP JCo.
Cliquez sur Créer.
- Saisissez un libellé pour le nœud de table SAP (par exemple,
Propriétés
Propriété | Macro activée | Propriété obligatoire | Description |
---|---|---|---|
Label | Non | Oui | Nom du nœud de votre pipeline de données. |
Utiliser la connexion | Non | Non | Utilisez une connexion réutilisable. Si une connexion est utilisée, vous n'avez pas besoin de fournir les identifiants. Pour en savoir plus, consultez Gérer les connexions |
Nom de référence | Non | Oui | Si l'option Utiliser la connexion n'est pas activée, ce champ apparaît. Nom de la connexion à utiliser pour la lignée. |
Nom | Non | Oui | Si l'option Utiliser la connexion est activée, ce champ s'affiche. Nom de la connexion réutilisable. |
Client SAP | Oui | Oui | Instance ou environnement d'un système SAP. |
Prendre un instantané | Oui | Oui | Activez les instantanés de données dans SAP. Quand activer les instantanés :
Quand désactiver les instantanés: vous en exécutez plusieurs, pour extraire en parallèle de grands volumes de données. Les instantanés utilisent des tables de tampon dans SAP, ce qui peut entraîner des problèmes out of memory dans SAP. Toutefois, une fois l'extraction des données terminée, la table tampon est effacée. |
Langage SAP | Oui | Oui | Langue dans laquelle l'interface utilisateur et les données SAP sont affichées et traitées. |
Type de connexion | Non | Oui | Le type de connexion SAP: Direct ou Load équilibrés. |
Hôte du serveur d'applications SAP | Oui | Non | Pour le type de connexion Direct uniquement, ce nom d'hôte provient du serveur d'application SAP, qui sert de couche middleware entre les clients SAP (tels que l'interface Web SAP, les navigateurs Web ou les applications mobiles) et la base de données sous-jacente. |
Numéro système SAP | Oui | Non | Pour le type de connexion Direct uniquement, ce numéro correspond à l'identifiant unique attribué à chaque système SAP. Par exemple, 00 . |
Routeur SAP | Oui | Non | Pour le type de connexion Direct uniquement, il s'agit de la chaîne de routeur du serveur proxy, qui fournit un canal sécurisé pour la communication entre les systèmes SAP et les clients ou partenaires externes. |
Hôte du serveur de messages SAP | Oui | Non | Pour le type de connexion Équilibré de charge uniquement, il s'agit du nom de l'hôte, qui facilite l'équilibrage de charge entre plusieurs serveurs d'applications dans SAP. |
Service de serveur de messages ou numéro de port SAP | Oui | Non | Pour le type de connexion Équilibrage de charge uniquement, il s'agit du port réseau sur lequel le serveur de messages SAP écoute les connexions entrantes des clients SAP et des serveurs d'applications dans SAP. |
ID système SAP (SID) | Oui | Non | Pour le type de connexion Équilibrage de charge uniquement, cet ID est est attribué à chaque système SAP. |
Nom du groupe d'ouverture de session SAP | Oui | Non | Nom du regroupement ou de la configuration logique de plusieurs SAP
serveurs d'applications. La valeur par défaut est PUBLIC . |
Nom de la table/vue SAP | Oui | Oui | Nom de table ou de vue valide, non sensible à la casse, à partir duquel toutes les colonnes peuvent être extraites. |
Nom d'utilisateur de connexion SAP | Oui | Oui | Nom d'utilisateur pour SAP Recommandation: Si le nom d'utilisateur change régulièrement, utilisez une macro. |
Mot de passe de connexion SAP | Oui | Oui | Mot de passe SAP. Recommandation: utilisez des macros sécurisées. |
ID de projet GCP | Oui | Oui | ID de projet Google Cloud |
Chemin d'accès GCS de la bibliothèque SAP JCo | Oui | Oui | Chemin d'accès à Cloud Storage sur lequel vous avez importé le fichier SAP JCo les fichiers de bibliothèque. |
Obtenir un schéma | N/A | N/A | Le plug-in génère un schéma basé sur les métadonnées de SAP, qui mappe les types de données SAP sur les types de données Cloud Data Fusion correspondants. Consultez la section Mappage des types de données. |
Propriétés de connexion SAP supplémentaires | Oui | Non | Définissez des propriétés SAP JCo supplémentaires pour remplacer les valeurs par défaut de SAP JCo.
Par exemple, définir jco.destination.pool_capacity = 10
remplace la capacité par défaut du pool de connexions. |
Filtres | Oui | Non | Conditions spécifiées dans la syntaxe Open SQL qui filtrent à l'aide d'une clause SQL WHERE . Extraire des enregistrements en fonction de conditions telles que
ceux des colonnes avec un ensemble
de valeurs défini ou une plage de valeurs.
Pour en savoir plus, consultez la page Compatible de recherche. |
Nombre de lignes à récupérer | Oui | Non | Limite le nombre d'enregistrements extraits.
|
Nombre de divisions à générer | Oui | Non | Crée des partitions permettant d'extraire les enregistrements en parallèle. Le moteur d'exécution crée le nombre de partitions spécifié connexions) lors de l'extraction des enregistrements. Faites preuve de prudence lorsque vous augmentez cette valeur, car elle augmente le nombre de connexions simultanées avec SAP. Recommandation: prévoyez des connexions SAP pour chaque pipeline et le nombre total de pipelines exécutés simultanément. Si la valeur est 0 ou n'est pas renseignée, Cloud Data Fusion choisit un la valeur appropriée, en fonction du nombre d'exécuteurs disponibles, les enregistrements à extraire et la taille du package. |
Taille du package | Oui | Non | Nombre d'enregistrements à extraire en un seul appel réseau SAP. Il est
le nombre d'enregistrements mis en mémoire tampon par SAP en mémoire lors de chaque réseau
. Soyez prudent lorsque vous définissez cette propriété. Pipelines de données multiples l'extraction des données peut entraîner un pic d'utilisation de la mémoire, entraînant des défaillances Out of memory erreur.
|
Filtres compatibles
Les conditions de filtrage suivantes sont acceptées.
Filtre contenant un opérateur de comparaison
Utilisez des opérateurs de comparaison pour effectuer un filtrage plus complexe basé sur des comparaisons entre les valeurs.
Syntaxe
SELECT * FROM table_name WHERE column_name > value; \ SELECT * FROM table_name WHERE column_name BETWEEN value1 AND value2;
Exemple
AUDAT GT '20230914'
Filtre contenant un opérateur LIKE
Utilisez les opérateurs LIKE
pour la mise en correspondance de modèles. Pour correspondre à l'une de ces valeurs
utilisez le symbole %
comme caractère générique.
Syntaxe
SELECT * FROM table_name WHERE column_name LIKE 'pattern%';
Exemple
ERNAM LIKE 'KIRAN%'
Filtre contenant un opérateur IN
Utilisez des opérateurs IN
pour spécifier une liste de valeurs à mettre en correspondance.
Syntaxe
SELECT * FROM table_name WHERE column_name \ IN ('value1', 'value2', 'value3');
Exemple
ERNAM IN ( 'LEE' , 'KIRAN' )
Filtre contenant un opérateur logique
Utilisez des opérateurs logiques pour spécifier une liste de valeurs à mettre en correspondance.
Syntaxe
SELECT * FROM table_name WHERE condition1 AND condition2; \ SELECT * FROM table_name WHERE condition1 OR condition2; \ SELECT * FROM table_name WHERE NOT condition;
Examples
( AUDAT EQ '20220615' ) AND ( ERNAM LIKE 'LEE%' )
( AUDAT EQ '20220615' ) OR ( AUDAT EQ '20220617' )
Filtre contenant une plage de dates
Utilisez des plages de dates pour récupérer les lignes dont la colonne de date et d'heure correspond à une une plage de dates spécifique.
Syntaxe
SELECT * FROM table_name \ WHERE datetime_column >= 'start_date' AND datetime_column <= 'end_date';
Exemple
AUDAT GE '20230910' AND AUDAT LE '20230914'
Filtre contenant une comparaison de dates
Utilisez des comparaisons de dates pour récupérer les lignes où la date et l'heure sont utilisées.
Syntaxe
SELECT * FROM table_name WHERE datetime_column > 'target_date';
Exemple
AUDAT GE '20230910' AND AUDAT LE '20230914'
Filtre combinant la date et l'heure
Si votre colonne de date et d'heure inclut à la fois la date et l'heure, vous pouvez filtrer en conséquence.
Syntaxe
SELECT * FROM table_name \ WHERE datetime_column >= 'target_datetime' \ AND datetime_column <= 'target_datetime';
Exemple
TIMESTAMP GE '20210602144800' AND TIMESTAMP LE '20210624080836'
(format d'horodatage : AAAAMMJJHHMMSS)
Filtre combinant plusieurs conditions avec des opérateurs logiques
Vous pouvez récupérer les lignes qui remplissent plusieurs conditions à l'aide de logiques
tels que AND
et OR
.
Syntaxe
SELECT * FROM table_name \ WHERE (column1 = 'value1' AND column2 > value2) \ OR (column3 = 'value3' AND column4 < value4);
Exemple
( ERNAM EQ 'LEE' AND AUDAT GT '20220722' ) \ OR ( BSTNK EQ 'PO54321065' AND BSTDK LT '20220714' )
Filtre combinant des conditions imbriquées
Vous pouvez combiner des conditions de manière imbriquée pour créer des des filtres.
Syntaxe
SELECT * FROM table_name \ WHERE (column1 = 'value1' OR (column2 = 'value2' AND column3 > value3)) \ AND column4 = 'value4';
Exemple
( ERDAT EQ '20220722' OR ( ERNAM EQ 'LEE' AND VDATU GT '20210623' ) ) \ AND FMBDAT EQ '20220722'
Filtre utilisant des sous-requêtes
Vous pouvez utiliser des sous-requêtes pour filtrer en fonction des résultats d'une autre requête.
Syntaxe
SELECT * FROM table_name \ WHERE column1 IN (SELECT related_column FROM other_table WHERE condition);
Exemple
VBELN IN ( SELECT VBELN FROM VBAK WHERE ERNAM = 'LEE' )
Filtre combinant les conditions de date et de valeur
Vous pouvez combiner des conditions basées sur la date et sur la valeur dans un ensemble filtre.
Syntaxe
SELECT * FROM table_name \ WHERE (column1 = 'value1' OR column2 = 'value2') \ AND datetime_column > 'target_datetime';
Exemple
( ERDAT EQ '20220722' OR ERNAM EQ 'LEE' ) AND VDATU GT '20210623'
Filtre contenant des dates de mise en forme
Dans SAP, les champs de date et d'heure sont toujours enregistrés sans -
ni
:
au niveau de la base de données.
Syntaxe
SELECT * FROM table_name \ WHERE datetime_column >= 'YYYY-MM-DD HH:MM:SS' \ AND datetime_column <= 'YYYY-M
Non compatible : filtre contenant des fonctions et des opérateurs de comparaison
Dans SAP, les fonctions de la clause WHERE de la QUERY ne sont pas acceptées.
Non compatible: filtre contenant des intervalles
La fonction NOW()
n'est pas compatible avec SAP.
Syntaxe
SELECT * FROM table_name \ WHERE datetime_column >= NOW() - INTERVAL X DAY;
Non compatible : Filtre extrayant la composante date
Dans SAP, le filtrage par décalage n'est pas pris en charge.
Exemple
WHERE YEAR+0(4) = 2023
Mappages des types de données
Le tableau suivant liste les types de données SAP avec les types Cloud Data Fusion correspondants.
Type de données SAP | Type ABAP | SAP description | Type de données Cloud Data Fusion |
---|---|---|---|
INT1 (numérique) |
b | Entier à 1 octet | entier |
INT2 (numérique) |
s | Entier à 2 octets | entier |
INT4 (numérique) |
i | Entier à 4 octets | entier |
INT8 (numérique) |
8 | Entier à 8 octets | long |
DEC (numérique) |
p | Nombre compressé au format BCD (DEC) | decimal |
DF16_DEC , DF16_RAW (numérique) |
a | IEEE 754r, format décimal à virgule flottante 8 octets | double |
DF34_DEC , DF34_RAW (numérique) |
e | IEEE 754r, format décimal à virgule flottante 16 octets | double |
FLTP (numérique) |
f | Nombre à virgule flottante binaire | double |
CHAR , LCHR (caractère) |
c | Chaîne de caractères | chaîne |
SSTRING , GEOM_EWKB (caractère) |
chaîne | Chaîne de caractères | chaîne |
STRING (caractère) |
chaîne | Chaîne de caractères CLOB | bytes |
NUMC , ACCP (caractère) |
n | Texte numérique | chaîne |
RAW , LRAW (octet) |
x | Données binaires | bytes |
RAWSTRING (octet) |
xchaîne | BLOB de chaîne d'octets | bytes |
DATS (date/heure) |
d | Date | date |
TIMS (date/heure) |
t | Heure | temps |
TIMS (date/heure) |
utcl | (Utclong), TimeStamp | timestamp |
Cas d'utilisation
Deux contextes d'extraction sont acceptés :
- Tables et vues de la base de données SAP
- CDS SAP ABAP
Dans chacun des contextes, le plug-in SAP Table est compatible avec les de bases de données et vues.
Limites
Le plug-in SAP Table présente les limites suivantes :
- Il n'est pas possible de joindre des tables.
- Il n'est pas compatible avec les vues CDS avec paramètres.
- Il n'est pas compatible sans champs de clé.
- Si la fonctionnalité Snapshots est activée, utiliser une taille de package supérieure à 30 000 octets peut entraîner des échecs de pipeline. Cette taille de package peut varier, en fonction du de colonnes dans la table SAP. Vous pouvez calculer un package optimal taille d'un tableau à l'aide de la formule suivante: taille de la ligne (en nombre de caractères) x 5.
- Le gestionnaire de connexions vous permet de parcourir jusqu'à 1 000 noms de tables SAP.
- Lorsqu'une erreur de pipeline se produit, comme une erreur dans le sink, le plug-in de table SAP tente de nettoyer tous les processus secondaires SAP actifs liés à l'extraction en appelant le RFM personnalisé destiné au nettoyage :
/GOOG/RFC_READ_TABLE_CLEANUP
.
Notes de version
Étape suivante
- Apprenez-en plus sur SAP sur Google Cloud.