Sumber batch tabel SAP

Halaman ini menjelaskan cara mengonfigurasi ekstraksi massal dari data aplikasi SAP.

Plugin sumber batch tabel SAP (plugin Tabel SAP) memungkinkan Anda membaca data dari tabel atau tampilan standar dan kustom SAP. Solusi ini memungkinkan penyerapan data massal dari aplikasi SAP ke BigQuery, atau sistem target lain yang didukung, menggunakan Cloud Data Fusion. Plugin ini memiliki fitur utama berikut:

  • Menggunakan SAP ECC, SAP S4/HANA, atau SAP BW sebagai sistem sumber
  • Tidak menggunakan SAP CDC (Change Data Capture) untuk melacak dan mengekstrak data baru dan delta di sumber data
  • Menggunakan mode ekstraksi batch
  • Mendukung tabel SAP dan tampilan ABAP CDS sebagai sumber data
  • Mengakses data SAP melalui lapisan aplikasi

Anda dapat membaca data dari:

  • Tabel transparan
  • Tabel cluster
  • Meja billiard
  • Penayangan ABAP CDS
  • Objek SAP BW ADSO

Versi software yang didukung

Software Versi
SAP S4/HANA SAP S4/HANA 1909 dan yang lebih baru
SAP ECC SAP ERP6 NW 7.31 SP16 dan yang lebih baru
SAP JCo SAP JCo versi 3.0.20 dan yang lebih baru
Cloud Data Fusion 6.3 dan yang lebih baru

Untuk mengetahui informasi selengkapnya tentang SAP di Google Cloud, lihat Ringkasan SAP di Google Cloud.

Sebelum memulai

Siapkan sistem dan layanan berikut yang digunakan oleh plugin Tabel SAP:

  1. Mengonfigurasi sistem SAP ERP. Proses ini mencakup langkah-langkah berikut:
    • Instal file SAP Transport.
    • Siapkan otorisasi dan peran SAP yang diperlukan.
    • Siapkan SAP Java Connector.
  2. Deploy plugin di Cloud Data Fusion.

    • Penting: pilih versi plugin yang kompatibel dengan versi Cloud Data Fusion.
    • Jika Anda mengupgrade versi instance atau plugin Cloud Data Fusion, evaluasi dampak perubahan pada performa dan cakupan fungsional pipeline.
  3. Buat konektivitas RFC antara Cloud Data Fusion dan SAP.

    • Pastikan komunikasi diaktifkan antara instance Cloud Data Fusion dan server SAP.
    • Untuk instance pribadi, siapkan peering jaringan VPC.
    • Sistem SAP dan instance Cloud Data Fusion harus berada dalam project yang sama.

Mengonfigurasi plugin

  1. Buka antarmuka web Cloud Data Fusion, lalu klik Studio.
  2. Pastikan Data Pipeline - Batch dipilih (bukan Realtime).
  3. Di menu Sumber, klik Tabel Sap. Node Tabel SAP akan muncul di pipeline Anda.
  4. Untuk mengonfigurasi sumber, buka node Tabel SAP, lalu klik Properties.
  5. Masukkan properti berikut. Untuk mengetahui daftar lengkapnya, lihat Properti.

    1. Masukkan Label untuk node Tabel SAP—misalnya, SAP tables.
    2. Masukkan detail koneksi. Anda dapat menyiapkan koneksi baru satu kali, atau koneksi yang sudah ada dan dapat digunakan kembali.

      Koneksi baru

      Untuk menambahkan koneksi satu kali ke SAP, ikuti langkah-langkah berikut:

      1. Tetap nonaktifkan Gunakan koneksi.
      2. Di bagian Connection, masukkan informasi berikut dari akun SAP di kolom ini:

        1. Di kolom Reference name, masukkan nama untuk koneksi yang mengidentifikasi sumber ini untuk silsilah.
        2. Di kolom SAP client, masukkan nama klien dari instance atau lingkungan tertentu dalam SAP. Administrator SAP dapat memberikan nama klien.
        3. Di kolom SAP language, masukkan bahasa login SAP. Defaultnya adalah EN (Inggris).
        4. Pilih salah satu Jenis koneksi berikut.

          • Langsung (melalui Server Aplikasi SAP). Jika Anda memilih jenis default ini, masukkan informasi di kolom berikut: SAP application server host, SAP system number, dan SAP router.
          • Load balanced (melalui SAP Message Server). Jika Anda memilih jenis ini, masukkan informasi di kolom berikut: SAP Message Server host, layanan atau nomor port SAP Message Server, SAP System ID (SID), dan SAP logon group name.
        5. Di kolom nama tabel/tampilan SAP, masukkan nama tabel atau tampilan dari sistem SAP Anda.

        6. Berikan kredensial SAP: minta nama pengguna login SAP dan Sandi kepada administrator SAP.

        7. Di kolom JCo Library Cloud Storage path, masukkan jalur SAP Java Connector (SAP JCo) di Cloud Storage yang berisi file library SAP JCo yang Anda upload.

        8. Untuk membuat skema berdasarkan metadata dari SAP yang memetakan jenis data SAP ke jenis data Cloud Data Fusion yang sesuai, klik Dapatkan skema. Untuk mengetahui informasi selengkapnya, lihat Pemetaan jenis data.

        9. Opsional: untuk mengoptimalkan beban penyerapan dari SAP, masukkan informasi di kolom berikut:

          1. Penggunaan Opsi filter memungkinkan Anda mengekstrak data berdasarkan kondisi pemilihan, seperti kolom yang memiliki kumpulan nilai yang ditentukan. Tentukan kondisi dalam sintaksis OpenSQL di klausa WHERE. Misalnya, kueri ini menampilkan semua baris dari tabel Roster tempat kolom SchoolID memiliki nilai SchoolID > 52:

            SELECT * FROM Roster WHERE SchoolID > 52;
            

            Untuk mengetahui informasi selengkapnya, lihat Filter yang didukung.

          2. Di kolom Jumlah baris yang akan diambil, Anda dapat membatasi data yang diekstrak dengan memberikan bilangan bulat positif.

          3. Di kolom Jumlah bagian, Anda dapat membuat partisi untuk mengekstrak kumpulan data secara paralel, sehingga meningkatkan performa. Jumlah pemisahan dapat memengaruhi proses kerja SAP dan harus dipilih dengan cermat.

          4. Di kolom Package size, tentukan jumlah data yang akan diekstrak dalam panggilan jaringan SAP tunggal. Ukuran paket memengaruhi performa dan resource yang tersedia dan harus dipilih dengan cermat.

      Koneksi yang dapat digunakan kembali

      Untuk menggunakan kembali koneksi yang ada, ikuti langkah-langkah berikut:

      1. Aktifkan Gunakan koneksi.
      2. Klik Jelajahi koneksi.
      3. Klik nama koneksi.

      Jika tidak ada koneksi, untuk membuat koneksi yang dapat digunakan kembali, ikuti langkah-langkah berikut:

      1. Klik Add connection > SapTable.
      2. Pada halaman Create a SapTable connection yang terbuka, masukkan nama dan deskripsi koneksi.
      3. Di kolom SAP client, masukkan nama klien dari instance atau lingkungan tertentu di SAP. Administrator SAP dapat memberikan nama klien.
      4. Di kolom SAP language, masukkan bahasa login SAP. Defaultnya adalah EN (Inggris).
      5. Pilih salah satu Jenis koneksi berikut.

        • Langsung (melalui Server Aplikasi SAP). Jika Anda memilih jenis default ini, masukkan informasi di kolom berikut: SAP application server host, SAP system number, dan SAP router.
        • Load balanced (melalui SAP Message Server). Jika Anda memilih jenis ini, masukkan informasi di kolom berikut: SAP Message Server host, layanan atau nomor port SAP Message Server, SAP System ID (SID), dan SAP logon group name.
      6. Berikan kredensial SAP: minta nilai nama pengguna login SAP dan Sandi kepada administrator SAP Anda.

      7. Di kolom JCo Library Cloud Storage path, masukkan jalur SAP Java Connector (SAP JCo) di Cloud Storage yang berisi file library SAP JCo yang Anda upload.

      8. Opsional: Di kolom Additional SAP connection properties, masukkan key-value pair yang harus mengganti nilai default SAP JCo.

      9. Klik Create.

Properti

Properti Makro diaktifkan Properti wajib Deskripsi
Label Tidak Ya Nama node di pipeline data Anda.
Gunakan koneksi Tidak Tidak Gunakan koneksi yang bisa digunakan kembali. Jika koneksi digunakan, Anda tidak perlu memberikan kredensial. Untuk mengetahui informasi selengkapnya, lihat Mengelola koneksi.
Nama referensi Tidak Ya Jika Gunakan koneksi tidak diaktifkan, kolom ini akan muncul. Nama koneksi yang akan digunakan untuk silsilah.
Nama Tidak Ya Jika Gunakan koneksi diaktifkan, kolom ini akan muncul. Nama koneksi yang dapat digunakan kembali.
Klien SAP Ya Ya {i>Instance <i}atau lingkungan dalam sistem SAP.
Ambil snapshot Ya Ya Mengaktifkan snapshot data di SAP.
Kapan snapshot diaktifkan:
  • Mengekstrak dari data tabel transaksional aktif
  • Mengekstraksi pada tabel di mana kueri data lebih lambat dan menghabiskan lebih banyak memori untuk setiap panggilan ekstraksi.

Kapan harus menonaktifkan snapshot: Anda menjalankan beberapa ekstraksi data bervolume besar secara paralel. Snapshot menggunakan tabel buffer di SAP, yang dapat menyebabkan masalah out of memory di SAP. Namun, setelah ekstraksi data selesai, tabel buffer akan dihapus.
Bahasa SAP Ya Ya Bahasa yang digunakan untuk menampilkan dan memproses data antarmuka pengguna SAP.
Jenis koneksi Tidak Ya Jenis koneksi SAP: Direct atau Load balanced.
Host server aplikasi SAP Ya Tidak Khusus untuk jenis koneksi Langsung, nama host ini berasal dari Server Aplikasi SAP, yang berfungsi sebagai lapisan middleware antara klien SAP (seperti antarmuka web SAP, browser web, atau aplikasi seluler) dan database yang mendasarinya.
Nomor sistem SAP Ya Tidak Hanya untuk jenis koneksi Langsung, nomor ini adalah ID unik yang ditetapkan untuk setiap sistem SAP. Misalnya: 00.
Router SAP Ya Tidak Khusus untuk jenis koneksi Langsung, ini adalah string router untuk server proxy, yang menyediakan saluran aman untuk komunikasi antara sistem SAP dan klien atau partner eksternal.
Host Server Pesan SAP Ya Tidak Khusus untuk jenis koneksi Load balanced, ini adalah nama host, yang memfasilitasi load balancing di beberapa server aplikasi di SAP.
Nomor port atau layanan SAP Message Server Ya Tidak Khusus untuk jenis koneksi Load balanced, ini adalah port jaringan tempat Server Pesan SAP memproses koneksi masuk dari klien SAP dan server aplikasi dalam SAP.
ID sistem SAP (SID) Ya Tidak Hanya untuk jenis koneksi Load balanced, ID ini ditetapkan ke setiap sistem SAP.
Nama grup login SAP Ya Tidak Nama pengelompokan atau konfigurasi logis dari beberapa server aplikasi SAP. Nilai defaultnya adalah PUBLIC.
Nama tampilan/tabel SAP Ya Ya Tabel atau nama tampilan yang valid dan tidak peka huruf besar/kecil, tempat semua kolom dapat diekstrak.
Nama pengguna login SAP Ya Ya Nama pengguna untuk SAP
Direkomendasikan: jika nama pengguna berubah secara berkala, gunakan makro.
Sandi login SAP Ya Ya Sandi SAP.
Direkomendasikan: gunakan makro aman.
Project ID GCP Ya Ya ID Project Google Cloud.
Jalur GCS library SAP JCo Ya Ya Jalur ke Cloud Storage tempat Anda mengupload file library SAP JCo.
Dapatkan skema T/A T/A Plugin ini menghasilkan skema berdasarkan metadata dari SAP, yang memetakan jenis data SAP ke jenis data Cloud Data Fusion yang sesuai. Lihat Pemetaan jenis data.
Properti koneksi SAP tambahan Ya Tidak Setel properti SAP JCo tambahan untuk mengganti setelan default SAP JCo. Misalnya, menyetel jco.destination.pool_capacity = 10 akan menggantikan kapasitas kumpulan koneksi default.
Filter Ya Tidak Kondisi yang ditentukan dalam sintaksis Open SQL yang memfilter menggunakan klausa WHERE SQL. Ekstrak kumpulan data berdasarkan kondisi, seperti yang ada di kolom dengan kumpulan nilai yang ditentukan, atau rentang nilai.
Untuk mengetahui informasi selengkapnya, lihat Filter yang didukung.
Jumlah baris yang akan diambil Ya Tidak Membatasi jumlah catatan yang diekstrak.
  • Masukkan bilangan bulat positif.
  • Jika nilainya 0 atau dibiarkan kosong, Cloud Data Fusion akan mengekstrak semua data dari tabel.
  • Jika Anda memasukkan nilai positif yang lebih besar dari jumlah kumpulan data yang dipilih (berdasarkan nilai filter lainnya), Cloud Data Fusion hanya akan mengekstrak kumpulan data yang dipilih.
Jumlah bagian yang akan dihasilkan Ya Tidak Membuat partisi untuk mengekstrak kumpulan data secara paralel.
Mesin runtime membuat jumlah partisi yang ditentukan (dan koneksi SAP) saat mengekstrak kumpulan data.
Berhati-hatilah saat meningkatkan nilai ini, karena akan meningkatkan koneksi simultan dengan SAP.
Direkomendasikan: rencanakan untuk memiliki koneksi SAP untuk setiap pipeline dan jumlah total pipeline yang berjalan serentak.
Jika nilainya 0 atau dibiarkan kosong, Cloud Data Fusion akan memilih nilai yang sesuai, berdasarkan jumlah eksekutor yang tersedia, data yang akan diekstrak, dan ukuran paket.
Ukuran paket Ya Tidak Jumlah kumpulan data yang akan diekstrak dalam satu panggilan jaringan SAP. Ini adalah jumlah kumpulan data yang di-buffer oleh SAP dalam memori selama setiap panggilan ekstrak jaringan.
Berhati-hatilah saat menetapkan properti ini. Beberapa pipeline data yang mengekstrak data dapat memuncak penggunaan memori, yang menyebabkan kegagalan akibat error Out of memory.
  • Masukkan bilangan bulat positif.
  • Jika 0 atau dibiarkan kosong, plugin akan menggunakan nilai standar 70.000, atau nilai yang dihitung dengan tepat.
  • Jika pipeline data gagal karena error Out of memory, kurangi ukuran paket atau tingkatkan memori yang tersedia untuk proses kerja SAP.

Filter yang didukung

Kondisi filter berikut didukung.

Filter yang berisi operator perbandingan

Gunakan operator perbandingan untuk melakukan pemfilteran yang lebih kompleks berdasarkan perbandingan antarnilai.

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

Filter yang berisi operator LIKE

Gunakan operator LIKE untuk pencocokan pola. Untuk mencocokkan karakter apa pun, gunakan simbol % sebagai karakter pengganti.

Sintaksis
    SELECT * FROM table_name WHERE column_name LIKE 'pattern%';
    
Contoh
ERNAM LIKE 'KIRAN%'

Filter yang berisi operator IN

Gunakan operator IN untuk menentukan daftar nilai yang akan dicocokkan.

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

Filter yang berisi operator logika

Menggunakan operator logis untuk menentukan daftar nilai yang akan dicocokkan.

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

Filter yang berisi rentang tanggal

Gunakan rentang tanggal untuk mengambil baris dengan kolom datetime berada dalam rentang tanggal tertentu.

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

Filter yang berisi perbandingan tanggal

Menggunakan perbandingan tanggal untuk mengambil baris yang menggunakan tanggal dan waktu.

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

Memfilter penggabungan tanggal dan waktu

Jika kolom datetime menyertakan tanggal dan waktu, Anda dapat memfilternya sesuai.

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

(Format stempel waktu : YYYYMMDDHHMMSS)

Filter yang menggabungkan beberapa kondisi dengan operator logis

Anda dapat mengambil baris yang memenuhi beberapa kondisi menggunakan operator logika, seperti AND dan OR.

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

Filter yang menggabungkan kondisi bertingkat

Anda dapat menggabungkan kondisi secara bertingkat untuk membuat filter yang kompleks.

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

Filter yang menggunakan subkueri

Anda dapat menggunakan subkueri untuk memfilter berdasarkan hasil dari kueri lain.

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

Memfilter kondisi gabungan tanggal dan nilai

Anda dapat menggabungkan kondisi berbasis tanggal dan kondisi berbasis nilai dalam filter yang kompleks.

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

Filter yang berisi Tanggal Pemformatan

Dalam SAP, kolom tanggal dan waktu selalu disimpan tanpa - atau : di level database.

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

Tidak didukung: Filter yang berisi fungsi dan operator perbandingan

Di SAP, fungsi pada klausa WHERE dari QUERY tidak didukung.

Tidak didukung: Filter yang berisi interval

Di SAP, fungsi NOW() tidak didukung.

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

Tidak didukung: Filter mengekstrak komponen tanggal

Dalam SAP, pemfilteran offset tidak didukung.

Contoh
    WHERE YEAR+0(4) = 2023
    

Pemetaan tipe data

Tabel berikut adalah daftar jenis data SAP dengan jenis Cloud Data Fusion yang sesuai.

Jenis data SAP Jenis ABAP Deskripsi SAP Jenis data Cloud Data Fusion
INT1 (Numerik) b Bilangan bulat 1 byte int
INT2 (Numerik) s Bilangan bulat 2 byte int
INT4 (Numerik) i Bilangan bulat 4 byte int
INT8 (Numerik) 8 Bilangan bulat 8 byte long
DEC (Numerik) p Nomor paket dalam format BCD (DES) decimal
DF16_DEC, DF16_RAW (Numerik) a Floating point desimal 8 byte IEEE 754r double
DF34_DEC, DF34_RAW (Numerik) e Floating point desimal 16 byte IEEE 754r double
FLTP (Numerik) f Bilangan floating point biner double
CHAR, LCHR (Karakter) c String karakter string
SSTRING, GEOM_EWKB (Karakter) string String karakter string
STRING (Karakter) string String karakter CLOB byte
NUMC, ACCP (Karakter) n Teks numerik string
RAW, LRAW (Byte) x Data biner byte
RAWSTRING (Byte) xstring BLOB string byte byte
DATS (Tanggal/Waktu) d Tanggal tanggal
TIMS (Tanggal/Waktu) t Waktu waktu
TIMS (Tanggal/Waktu) Utcl (Utclong), TimeStamp timestamp

Kasus penggunaan

Dua konteks ekstraksi didukung:

  • Tabel dan Tampilan Database SAP
  • SAP ABAP CDS

Di setiap konteks, plugin SAP Table mendukung tabel dan tampilan database standar dan kustom.

Batasan

Plugin Tabel SAP memiliki batasan berikut:

  • Metode ini tidak mendukung penggabungan tabel.
  • Fitur ini tidak mendukung tampilan CDS dengan parameter.
  • Kode ini tidak mendukung tanpa kolom kunci.
  • Jika fitur Snapshot diaktifkan, penggunaan ukuran paket yang melebihi 30.000 dapat menyebabkan kegagalan pipeline. Ukuran paket ini dapat bervariasi, tergantung pada jumlah kolom di tabel SAP. Anda dapat menghitung ukuran paket yang optimal untuk tabel menggunakan formula ini: ukuran baris (dalam jumlah karakter) * 5.
  • Connection Manager memungkinkan Anda menjelajahi maksimum 1.000 nama tabel SAP.
  • Saat error pipeline terjadi, seperti error di sink, plugin Tabel SAP akan mencoba membersihkan semua proses samping SAP aktif yang terkait dengan ekstraksi dengan memanggil RFM kustom yang ditujukan untuk pembersihan: /GOOG/RFC_READ_TABLE_CLEANUP.

Langkah selanjutnya