Origine batch tabella SAP

Questa pagina descrive come configurare le estrazioni collettive dai dati di applicazioni SAP.

Il plug-in di origine batch per tabelle SAP (plug-in SAP Table) consente di leggere i dati da tabelle o visualizzazioni standard e personalizzate SAP. Consente l'importazione collettiva dei dati da applicazioni SAP in BigQuery o in qualsiasi altro sistema di destinazione supportato, utilizzando Cloud Data Fusion. Il plug-in ha le seguenti funzionalità principali:

  • Utilizza SAP ECC, SAP S4/HANA o SAP BW come sistema di origine
  • Non utilizza SAP CDC (Change Data Capture) per monitorare ed estrarre dati nuovi e delta nelle origini dati
  • Utilizza la modalità di estrazione batch
  • Supporta le tabelle SAP e le viste CDS ABAP come origini dati
  • Accede ai dati SAP tramite il livello dell'applicazione

Puoi leggere i dati da:

  • Tabelle trasparenti
  • Tabelle cluster
  • Tavoli da biliardo
  • Visualizzazioni CDS ABAP
  • Oggetti SAP BW ADSO

Versioni software supportate

Software Versioni
SAP S4/HANA SAP S4/HANA 1909 e versioni successive
SAP ECC SAP ERP6 NW 7.31 SP16 e versioni successive
JCo SAP SAP JCo versione 3.0.20 e successive
Cloud Data Fusion 6.3 e versioni successive

Per ulteriori informazioni su SAP su Google Cloud, consulta la Panoramica di SAP su Google Cloud.

Prima di iniziare

Configura i seguenti sistemi e servizi utilizzati dal plug-in SAP Table:

  1. Configura il sistema SAP ERP. La procedura include i seguenti passaggi:
    • Installare i file di trasporto SAP.
    • Configura le autorizzazioni e i ruoli SAP richiesti.
    • Configurare il connettore Java SAP.
  2. Esegui il deployment del plug-in in Cloud Data Fusion.

    • Importante: scegli una versione del plug-in compatibile con la versione di Cloud Data Fusion.
    • Se esegui l'upgrade della versione dell'istanza o del plug-in di Cloud Data Fusion, valuta l'impatto delle modifiche sull'ambito funzionale e sulle prestazioni della pipeline.
  3. Stabilisci la connettività RFC tra Cloud Data Fusion e SAP.

    • Assicurati che la comunicazione sia abilitata tra l'istanza di Cloud Data Fusion e il server SAP.
    • Per le istanze private, configura il peering di rete VPC.
    • Sia il sistema SAP che l'istanza di Cloud Data Fusion devono essere nello stesso progetto.

Configura il plug-in

  1. Vai all'interfaccia web di Cloud Data Fusion e fai clic su Studio.
  2. Verifica che l'opzione pipeline di dati - Batch sia selezionata (non In tempo reale).
  3. Nel menu Origine, fai clic su Tabella SAP. Il nodo Tabella SAP viene visualizzato nella tua pipeline.
  4. Per configurare l'origine, vai al nodo Tabella SAP e fai clic su Proprietà.
  5. Inserisci le seguenti proprietà. Per un elenco completo, consulta Proprietà.

    1. Inserisci un'etichetta per il nodo Tabella SAP, ad esempio SAP tables.
    2. Inserisci i dettagli della connessione. Puoi configurare una nuova connessione una tantum o una connessione riutilizzabile esistente.

      Nuova connessione

      Per aggiungere una connessione una tantum a SAP, segui questi passaggi:

      1. Mantieni disattivata l'opzione Utilizza connessione.
      2. Nella sezione Connessione, inserisci le seguenti informazioni dall'account SAP in questi campi:

        1. Nel campo Nome riferimento, inserisci un nome per la connessione che identifica questa origine per la derivazione.
        2. Nel campo Client SAP, inserisci il nome client di un'istanza o un ambiente specifici all'interno di SAP. Un amministratore SAP può fornire il nome del client.
        3. Nel campo Lingua SAP, inserisci una lingua di accesso SAP. Il valore predefinito è EN (inglese).
        4. Seleziona uno dei seguenti tipi di connessione.

          • Diretta (tramite il server di applicazioni SAP). Se scegli questo tipo predefinito, inserisci le informazioni nei seguenti campi: host server applicazioni SAP, numero di sistema SAP e router SAP.
          • Carico bilanciato (tramite SAP Message Server). Se scegli questo tipo, inserisci le informazioni nei seguenti campi: host del server dei messaggi SAP, numero di porta o servizio del server dei messaggi SAP, ID sistema SAP (SID) e nome gruppo di accesso SAP.
        5. Nel campo Nome tabella/visualizzazione SAP, inserisci il nome della tabella o della vista dal tuo sistema SAP.

        6. Fornisci le credenziali SAP: chiedi all'amministratore SAP di fornirti nome utente di accesso SAP e password.

        7. Nel campo Percorso Cloud Storage della libreria JCo, inserisci il percorso del connettore Java SAP (SAP JCo) in Cloud Storage che contiene i file della libreria SAP JCo che hai caricato.

        8. Per generare uno schema basato sui metadati di SAP che mappa i tipi di dati SAP ai tipi di dati corrispondenti di Cloud Data Fusion, fai clic su Ottieni schema. Per ulteriori informazioni, consulta Mappature dei tipi di dati.

        9. (Facoltativo) Per ottimizzare il carico di importazione da SAP, inserisci le informazioni nei seguenti campi:

          1. L'utilizzo di Opzioni di filtro consente di estrarre i record in base alle condizioni di selezione, ad esempio le colonne con un insieme di valori definito. Definisci le condizioni nella sintassi OpenSQL in una clausola WHERE. Ad esempio, questa query restituisce tutte le righe della tabella Roster in cui la colonna SchoolID ha il valore SchoolID > 52:

            SELECT * FROM Roster WHERE SchoolID > 52;
            

            Per ulteriori informazioni, vedi Filtri supportati.

          2. Nel campo Numero di righe da recuperare, puoi limitare i dati estratti fornendo un numero intero positivo di righe.

          3. Nel campo Numero di suddivisioni, puoi creare partizioni per estrarre i record di dati in parallelo, migliorando le prestazioni. Il numero di suddivisioni può influire sui processi di lavoro SAP e deve essere selezionato con attenzione.

          4. Nel campo Dimensioni pacchetto, specifica il numero di record da estrarre in una singola chiamata di rete SAP. La dimensione del pacchetto influisce sulle prestazioni e sulle risorse disponibili e deve essere selezionata con attenzione.

      Connessione riutilizzabile

      Per riutilizzare una connessione esistente, segui questi passaggi:

      1. Attiva Utilizza connessione.
      2. Fai clic su Browse connections (Sfoglia connessioni).
      3. Fai clic sul nome della connessione.

      Se non esiste una connessione, segui questi passaggi per crearne una riutilizzabile:

      1. Fai clic su Aggiungi connessione > SapTable.
      2. Nella pagina Crea una connessione SapTable che si apre, inserisci un nome e una descrizione per la connessione.
      3. Nel campo Client SAP, inserisci il nome client di un'istanza o un ambiente specifici in SAP. Un amministratore SAP può fornire il nome del client.
      4. Nel campo Lingua SAP, inserisci una lingua di accesso SAP. Il valore predefinito è EN (inglese).
      5. Seleziona uno dei seguenti tipi di connessione.

        • Diretta (tramite il server di applicazioni SAP). Se scegli questo tipo predefinito, inserisci le informazioni nei seguenti campi: host server applicazioni SAP, numero di sistema SAP e router SAP.
        • Carico bilanciato (tramite SAP Message Server). Se scegli questo tipo, inserisci le informazioni nei seguenti campi: host del server dei messaggi SAP, numero di porta o servizio del server dei messaggi SAP, ID sistema SAP (SID) e nome gruppo di accesso SAP.
      6. Fornisci le credenziali SAP: chiedi all'amministratore SAP i valori Nome utente di accesso SAP e Password.

      7. Nel campo Percorso Cloud Storage della libreria JCo, inserisci il percorso del connettore Java SAP (SAP JCo) in Cloud Storage contenente i file della libreria SAP JCo che hai caricato.

      8. (Facoltativo) Nel campo Ulteriori proprietà di connessione SAP, inserisci le coppie chiave-valore che devono sostituire i valori predefiniti di SAP JCo.

      9. Fai clic su Crea.

Proprietà

Proprietà Macro attivata Proprietà obbligatoria Descrizione
Etichetta No Il nome del nodo nella pipeline di dati.
Usa connessione No No Utilizza una connessione riutilizzabile. Se viene utilizzata una connessione, non è necessario fornire le credenziali. Per maggiori informazioni, consulta Gestire le connessioni.
Nome di riferimento No Se l'opzione Utilizza connessione non è attiva, viene visualizzato questo campo. Il nome della connessione da utilizzare per la derivazione.
Nome No Se l'opzione Utilizza connessione è attiva, viene visualizzato questo campo. Il nome della connessione riutilizzabile.
Client SAP L'istanza o l'ambiente in un sistema SAP.
Scatta istantanea Abilita gli snapshot di dati in SAP.
Quando attivare gli snapshot:
  • Estrazione dei dati di qualsiasi tabella transazionale attiva
  • Estrazione nelle tabelle in cui le query sui dati sono più lente e consumano più memoria per ogni chiamata di estrazione.

Quando disattivare gli snapshot: esegui in parallelo più estrazioni di dati su grandi volumi. Gli snapshot utilizzano tabelle del buffer in SAP, il che potrebbe causare problemi di out of memory in SAP. Tuttavia, una volta completata l'estrazione dei dati, la tabella del buffer viene cancellata.
Lingua SAP La lingua in cui vengono visualizzati ed elaborati i dati e l'interfaccia utente SAP.
Tipo di connessione No Il tipo di connessione SAP: Diretta o Carico bilanciato.
Host server applicazioni SAP No Solo per il tipo di connessione Diretta, questo nome host proviene dal server di applicazioni SAP, che funge da livello middleware tra i client SAP (come l'interfaccia web SAP, i browser web o le app mobile) e il database sottostante.
Numero di sistema SAP No Solo per il tipo di connessione diretta, questo numero è l'identificatore univoco assegnato a ciascun sistema SAP. Ad esempio, 00.
Router SAP No Solo per il tipo di connessione Diretta, si tratta della stringa del router per il server proxy, che fornisce un canale sicuro per la comunicazione tra sistemi SAP e clienti o partner esterni.
Host server messaggi SAP No Solo per il tipo di connessione Bilanciato del carico, questo è il nome dell'host, che facilita il bilanciamento del carico tra più server delle applicazioni in SAP.
Numero di porta o di servizio di SAP Message Server No Solo per il tipo di connessione Bilanciato del carico, questa è la porta di rete su cui il server di messaggi SAP ascolta le connessioni in entrata da client e server di applicazioni SAP all'interno di SAP.
ID sistema SAP (SID) No Solo per il tipo di connessione Bilanciata del carico, questo ID viene assegnato a ciascun sistema SAP.
Nome gruppo di accesso SAP No Il nome del raggruppamento logico o della configurazione di più server di applicazioni SAP. Il valore predefinito è PUBLIC.
Nome tabella/visualizzazione SAP Un nome valido, senza distinzione tra maiuscole e minuscole, in cui è possibile estrarre tutte le colonne.
Nome utente di accesso SAP Nome utente per SAP
Consigliato: se il nome utente cambia periodicamente, utilizza una macro.
Password di accesso SAP Password SAP.
Consigliato: utilizza macro sicure.
ID progetto Google Cloud ID progetto Google Cloud.
Percorso GCS della libreria JCo SAP Il percorso di Cloud Storage in cui hai caricato i file della libreria SAP JCo.
Ottieni schema N/D N/D Il plug-in genera uno schema basato sui metadati di SAP, che mappa i tipi di dati SAP ai tipi di dati corrispondenti di Cloud Data Fusion. Consulta la sezione Mappatura dei tipi di dati.
Altre proprietà di connessione SAP No Imposta altre proprietà SAP JCo per eseguire l'override dei valori predefiniti di SAP JCo. Ad esempio, l'impostazione di jco.destination.pool_capacity = 10 sostituisce la capacità predefinita del pool di connessioni.
Filtri No Condizioni specificate nella sintassi Open SQL che filtrano utilizzando una clausola SQL WHERE. Estrai record in base alle condizioni, ad esempio quelle nelle colonne con un insieme definito di valori o un intervallo di valori.
Per ulteriori informazioni, consulta la sezione Filtri supportati.
Numero di righe da recuperare No Limita il numero di record estratti.
  • Inserisci un numero intero positivo.
  • Se il valore è 0 o viene lasciato vuoto, Cloud Data Fusion estrae tutti i record dalla tabella.
  • Se inserisci un valore positivo superiore al numero di record selezionati (in base agli altri valori di filtro), Cloud Data Fusion estrae solo i record selezionati.
Numero di suddivisioni da generare No Crea partizioni per estrarre i record in parallelo.
Il motore di runtime crea il numero specificato di partizioni (e connessioni SAP) durante l'estrazione dei record.
Fai attenzione quando aumenti questo valore, perché aumenta le connessioni simultanee con SAP.
Consigliato: pianifica connessioni SAP per ogni pipeline e il numero totale di pipeline in esecuzione contemporaneamente.
Se il valore è 0 o viene lasciato vuoto, Cloud Data Fusion sceglie un valore appropriato in base al numero di esecutori disponibili, ai record da estrarre e alle dimensioni del pacchetto.
Dimensioni del pacco No Il numero di record da estrarre in una singola chiamata di rete SAP. Rappresenta il numero di record che SAP memorizza nel buffer in memoria durante ogni chiamata di estrazione della rete.
Presta attenzione quando imposti questa proprietà. L'estrazione dei dati da più pipeline di dati può causare un picco di utilizzo della memoria, causando errori dovuti a Out of memory errori.
  • Inserisci un numero intero positivo.
  • Se 0 o lasciato vuoto, il plug-in utilizza un valore standard di 70.000 o un valore calcolato in modo appropriato.
  • Se la pipeline di dati si arresta a causa di Out of memory errori, riduci le dimensioni del pacchetto o aumenta la memoria disponibile per i processi di lavoro SAP.

Filtri supportati

Sono supportate le seguenti condizioni di filtro.

Filtro contenente un operatore di confronto

Utilizza gli operatori di confronto per eseguire filtri più complessi in base ai confronti tra valori.

Sintassi
    SELECT * FROM table_name WHERE column_name > value; \
    SELECT * FROM table_name WHERE column_name BETWEEN value1 AND value2;
    
Esempio
AUDAT GT '20230914'

Filtro contenente un operatore LIKE

Utilizza gli operatori LIKE per la corrispondenza di pattern. Per trovare qualsiasi carattere, usa il simbolo % come carattere jolly.

Sintassi
    SELECT * FROM table_name WHERE column_name LIKE 'pattern%';
    
Esempio
ERNAM LIKE 'KIRAN%'

Filtro contenente un operatore IN

Utilizza gli operatori IN per specificare un elenco di valori con cui stabilire una corrispondenza.

Sintassi
    SELECT * FROM table_name WHERE column_name \
      IN ('value1', 'value2', 'value3');
    
Esempio
ERNAM IN ( 'LEE' , 'KIRAN' )

Filtro contenente un operatore logico

Utilizza gli operatori logici per specificare un elenco di valori con cui stabilire una corrispondenza.

Sintassi
    SELECT * FROM table_name WHERE condition1 AND condition2; \
      SELECT * FROM table_name WHERE condition1 OR condition2; \
      SELECT * FROM table_name WHERE NOT condition;
    
Esempi
  • ( AUDAT EQ '20220615' ) AND ( ERNAM LIKE 'LEE%' )
  • ( AUDAT EQ '20220615' ) OR ( AUDAT EQ '20220617' )

Filtro contenente un intervallo di date

Utilizza gli intervalli di date per recuperare le righe in cui una colonna di data/ora rientra in un intervallo di date specifico.

Sintassi
    SELECT * FROM table_name \
      WHERE datetime_column >= 'start_date' AND datetime_column <= 'end_date';
    
Esempio
AUDAT GE '20230910' AND AUDAT LE '20230914'

Filtro contenente un confronto di date

Utilizza i confronti di date per recuperare le righe in cui viene utilizzata la data/ora.

Sintassi
    SELECT * FROM table_name WHERE datetime_column > 'target_date';
    
Esempio
AUDAT GE '20230910' AND AUDAT LE '20230914'

Combinazione di data e ora del filtro

Se la colonna data e ora include sia la data che l'ora, puoi applicare un filtro di conseguenza.

Sintassi
    SELECT * FROM table_name \
      WHERE datetime_column >= 'target_datetime' \
      AND datetime_column <= 'target_datetime';
    
Esempio
TIMESTAMP GE '20210602144800' AND TIMESTAMP LE '20210624080836'

(Formato del timestamp : AAAAMMGGHHMMSS)

Filtro che combina più condizioni con operatori logici

Puoi recuperare le righe che soddisfano più condizioni utilizzando operatori logici come AND e OR.

Sintassi
    SELECT * FROM table_name \
      WHERE (column1 = 'value1' AND column2 > value2) \
      OR (column3 = 'value3' AND column4 < value4);
    
Esempio
    ( ERNAM EQ 'LEE' AND AUDAT GT '20220722' ) \
      OR ( BSTNK EQ 'PO54321065' AND BSTDK LT '20220714' )
    

Filtro che combina condizioni nidificate

Puoi combinare le condizioni in modo nidificato per creare filtri complessi.

Sintassi
    SELECT * FROM table_name \
      WHERE (column1 = 'value1' OR (column2 = 'value2' AND column3 > value3)) \
      AND column4 = 'value4';
    
Esempio
    ( ERDAT EQ '20220722' OR ( ERNAM EQ 'LEE' AND VDATU GT '20210623' ) ) \
      AND FMBDAT EQ '20220722'
    

Filtro che utilizza sottoquery

Puoi utilizzare le sottoquery per filtrare in base ai risultati di un'altra query.

Sintassi
    SELECT * FROM table_name \
      WHERE column1 IN (SELECT related_column FROM other_table WHERE condition);
    
Esempio
VBELN IN ( SELECT VBELN FROM VBAK WHERE ERNAM = 'LEE' )

Combinazione di filtri tra condizioni di data e valori

Puoi combinare condizioni basate sulla data e sul valore in un filtro complesso.

Sintassi
    SELECT * FROM table_name \
      WHERE (column1 = 'value1' OR column2 = 'value2') \
      AND datetime_column > 'target_datetime';
    
Esempio
    ( ERDAT EQ '20220722' OR ERNAM EQ 'LEE' ) AND VDATU GT '20210623'
    

Filtro contenente le date di formattazione

In SAP, i campi di data e ora vengono sempre salvati senza - o : a livello di database.

Sintassi
    SELECT * FROM table_name \
      WHERE datetime_column >= 'YYYY-MM-DD HH:MM:SS' \
      AND datetime_column <= 'YYYY-M
    

Non supportato: filtro contenente funzioni e operatori di confronto

In SAP, le funzioni nella clausola WHERE della query QUERY non sono supportate.

Non supportato: filtro contenente intervalli

In SAP, la funzione NOW() non è supportata.

Sintassi
    SELECT * FROM table_name \
      WHERE datetime_column >= NOW() - INTERVAL X DAY;
    

Non supportato: componente di estrazione del filtro per la data

In SAP, i filtri di offset non sono supportati.

Esempio
    WHERE YEAR+0(4) = 2023
    

Mappature dei tipi di dati

La seguente tabella è un elenco dei tipi di dati SAP con i tipi di Cloud Data Fusion corrispondenti.

Tipo di dati SAP Tipo ABAP SAP description Tipo di dati di Cloud Data Fusion
INT1 (valore numerico) b Numero intero a 1 byte int
INT2 (valore numerico) s Numero intero a 2 byte int
INT4 (valore numerico) i Numero intero a 4 byte int
INT8 (valore numerico) 8 Numero intero a 8 byte lunghi
DEC (valore numerico) p Numero pacchettizzato in formato BCD (DEC) decimal
DF16_DEC, DF16_RAW (valore numerico) a Virgola mobile decimale 8 byte IEEE 754r double
DF34_DEC, DF34_RAW (valore numerico) e Virgola mobile decimale 16 byte IEEE 754r double
FLTP (valore numerico) f Numero in virgola mobile binario double
CHAR, LCHR (carattere) c Stringa di caratteri string
SSTRING, GEOM_EWKB (carattere) string Stringa di caratteri string
STRING (carattere) string Stringa di caratteri CLOB byte
NUMC, ACCP (carattere) n Testo numerico string
RAW, LRAW (byte) x Dati binari byte
RAWSTRING (byte) stringa X Byte stringa BLOB byte
DATS (data/ora) d Data date
TIMS (data/ora) t Tempo ora
TIMS (data/ora) utcl (Utclong), TimeStamp timestamp

Casi d'uso

Sono supportati due contesti di estrazione:

  • Tabelle e viste del database SAP
  • CDS SAP ABAP

In ciascuno dei contesti, il plug-in SAP Table supporta tabelle e viste di database standard e personalizzate.

Limitazioni

Il plug-in SAP Table presenta le seguenti limitazioni:

  • Non supporta l'unione delle tabelle.
  • Non supporta le viste CDS con parametri.
  • Non supporta senza campi chiave.
  • Se la funzionalità Snapshot è abilitata, l'utilizzo di un pacchetto di dimensioni superiori a 30.000 potrebbe causare errori della pipeline. La dimensione del pacchetto può variare, a seconda del numero di colonne nella tabella SAP. Puoi calcolare una dimensione ottimale del pacchetto per una tabella utilizzando questa formula: dimensione riga (in numero di caratteri) * 5.
  • Connection Manager consente di sfogliare un massimo di 1000 nomi di tabella SAP.
  • Quando si verifica un errore della pipeline, ad esempio un errore nel sink, il plug-in della tabella SAP tenta di ripulire tutti i processi collaterali SAP attivi relativi all'estrazione chiamando l'RFM personalizzato destinato alla pulizia: /GOOG/RFC_READ_TABLE_CLEANUP.

Passaggi successivi