Plugin SAP table batch source (plugin SAP Table) memungkinkan Anda membaca data dari tabel atau tampilan standar dan kustom SAP. Hal 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 CDS ABAP sebagai sumber data
- Mengakses data SAP melalui lapisan aplikasi
Anda dapat membaca data dari:
- Tabel transparan
- Tabel cluster
- Meja biliar
- Tampilan CDS ABAP
- Objek ADSO SAP BW
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:
- Mengonfigurasi sistem SAP ERP.
Proses ini mencakup langkah-langkah berikut:
- Instal file Transport SAP.
- Siapkan otorisasi dan peran SAP yang diperlukan.
- Siapkan SAP Java Connector.
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 cakupan dan performa fungsional pipeline.
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 di project yang sama.
Mengonfigurasi plugin
- Buka antarmuka web Cloud Data Fusion dan klik Studio.
- Pastikan Data Pipeline - Batch dipilih (bukan Real-Time).
- Di menu Sumber, klik Tabel SAP. Node Tabel SAP akan muncul di pipeline Anda.
- Untuk mengonfigurasi sumber, buka node Tabel SAP, lalu klik Properti.
Masukkan properti berikut. Untuk mengetahui daftar lengkapnya, lihat Properti.
- Masukkan Label untuk node Tabel SAP—misalnya,
SAP tables
. 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:
- Tetap nonaktifkan Gunakan koneksi.
Di bagian Connection, masukkan informasi berikut dari akun SAP di kolom ini:
- Di kolom Reference name, masukkan nama untuk koneksi yang mengidentifikasi sumber ini untuk garis keturunan.
- Di kolom SAP client, masukkan nama klien dari instance atau lingkungan tertentu dalam SAP. Administrator SAP dapat memberikan nama klien.
- Di kolom SAP language, masukkan bahasa login SAP. Defaultnya adalah EN (Inggris).
Pilih salah satu Jenis koneksi berikut.
- Langsung (melalui Server Aplikasi SAP). Jika Anda memilih jenis default ini, masukkan informasi di kolom berikut: Host server aplikasi SAP, Nomor sistem SAP, dan Router SAP.
- Load balanced (melalui SAP Message Server). Jika Anda memilih jenis ini, masukkan informasi di kolom berikut: host SAP Message Server, layanan atau nomor port SAP Message Server, ID Sistem SAP (SID), dan nama grup login SAP.
Di kolom SAP table/view name, masukkan nama tabel atau tampilan dari sistem SAP Anda.
Berikan kredensial SAP: minta Nama pengguna login SAP dan Sandi kepada administrator SAP Anda.
Di kolom JCo Library Cloud Storage path, masukkan jalur SAP JCo Connector (SAP JCo) di Cloud Storage yang berisi file library SAP JCo yang Anda upload.
Untuk membuat skema berdasarkan metadata dari SAP yang memetakan jenis data SAP ke jenis data Cloud Data Fusion yang sesuai, klik Get schema. Untuk mengetahui informasi selengkapnya, lihat Pemetaan jenis data.
Opsional: untuk mengoptimalkan beban transfer dari SAP, masukkan informasi di kolom berikut:
Dengan menggunakan Opsi filter, Anda dapat mengekstrak kumpulan data berdasarkan kondisi pemilihan, seperti kolom yang memiliki kumpulan nilai yang ditentukan. Tentukan kondisi dalam sintaksis OpenSQL dalam klausa
WHERE
. Misalnya, kueri ini menampilkan semua baris dari tabelRoster
dengan kolomSchoolID
yang memiliki nilaiSchoolID > 52
:SELECT * FROM Roster WHERE SchoolID > 52;
Untuk mengetahui informasi selengkapnya, lihat Filter yang didukung.
Di kolom Number of rows to fetch, Anda dapat membatasi data yang diekstrak dengan memberikan bilangan bulat positif baris.
Di kolom Jumlah pemisahan, Anda dapat membuat partisi untuk mengekstrak kumpulan data secara paralel, yang meningkatkan performa. Jumlah pemisahan dapat memengaruhi proses kerja SAP dan harus dipilih dengan cermat.
Di kolom Package size, tentukan jumlah kumpulan data yang akan diekstrak dalam satu panggilan jaringan SAP. 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:
- Aktifkan Gunakan koneksi.
- Klik Jelajahi koneksi.
Klik nama koneksi.
Jika koneksi tidak ada, untuk membuat koneksi yang dapat digunakan kembali, ikuti langkah-langkah berikut:
- Klik Tambahkan koneksi > SapTable.
- Di halaman Create a SapTable connection yang terbuka, masukkan nama dan deskripsi koneksi.
- Di kolom SAP client, masukkan nama klien dari instance atau lingkungan tertentu di SAP. Administrator SAP dapat memberikan nama klien.
- Di kolom SAP language, masukkan bahasa login SAP. Defaultnya adalah EN (Inggris).
Pilih salah satu Jenis koneksi berikut.
- Langsung (melalui Server Aplikasi SAP). Jika Anda memilih jenis default ini, masukkan informasi di kolom berikut: Host server aplikasi SAP, Nomor sistem SAP, dan Router SAP.
- Load balanced (melalui SAP Message Server). Jika Anda memilih jenis ini, masukkan informasi di kolom berikut: Host SAP Message Server, layanan SAP Message Server atau nomor port, ID Sistem SAP (SID), dan nama grup login SAP.
Berikan kredensial SAP: minta nilai Nama pengguna login SAP dan Sandi kepada administrator SAP Anda.
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.
Opsional: Di kolom Additional SAP connection properties, masukkan pasangan nilai kunci yang harus mengganti setelan default JCo SAP.
Klik Create.
- Masukkan Label untuk node Tabel SAP—misalnya,
Properti
Properti | Makro diaktifkan | Properti wajib | Deskripsi |
---|---|---|---|
Label | Tidak | Ya | Nama node di pipeline data Anda. |
Menggunakan koneksi | Tidak | Tidak | Gunakan koneksi yang dapat digunakan kembali. Jika koneksi digunakan, Anda tidak perlu menyediakan 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 garis keturunan. |
Nama | Tidak | Ya | Jika Gunakan koneksi diaktifkan, kolom ini akan muncul. Nama koneksi yang dapat digunakan kembali. |
Klien SAP | Ya | Ya | Instance atau lingkungan di sistem SAP. |
Mengambil snapshot | Ya | Ya | Mengaktifkan snapshot data di SAP. Kapan harus mengaktifkan snapshot:
Kapan harus menonaktifkan snapshot: Anda menjalankan beberapa ekstraksi data dalam volume besar secara paralel. Snapshot menggunakan tabel buffering 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 antarmuka pengguna dan data SAP. |
Jenis koneksi | Tidak | Ya | Jenis koneksi SAP: Langsung 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 | Khusus untuk jenis koneksi Langsung, angka ini adalah
ID unik yang ditetapkan ke 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. |
Layanan atau nomor port Server Pesan SAP | 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 | Khusus 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 tabel/tampilan SAP | Ya | Ya | Nama tabel atau 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. |
ID project GCP | Ya | Ya | ID project Google Cloud. |
Jalur GCS library JCo SAP | 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 | Tetapkan properti SAP JCo tambahan untuk mengganti setelan default SAP JCo.
Misalnya, menetapkan jco.destination.pool_capacity = 10
akan mengganti kapasitas kumpulan koneksi default. |
Filter | Ya | Tidak | Kondisi yang ditentukan dalam sintaksis Open SQL yang memfilter menggunakan klausa
WHERE SQL. Mengekstrak data berdasarkan kondisi, seperti data 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 data yang diekstrak.
|
Jumlah pemisahan yang akan dihasilkan | Ya | Tidak | Membuat partisi untuk mengekstrak data secara paralel. Mesin runtime membuat jumlah partisi (dan koneksi SAP) yang ditentukan saat mengekstrak data. Berhati-hatilah saat menaikkan nilai ini, karena akan meningkatkan koneksi serentak dengan SAP. Direkomendasikan: rencanakan untuk memiliki koneksi SAP untuk setiap pipeline dan jumlah total pipeline yang berjalan secara 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 data yang di-buffer SAP dalam memori selama setiap panggilan
ekstrak jaringan. Berhati-hatilah saat menetapkan properti ini. Beberapa pipeline data yang mengekstrak data dapat memaksimalkan penggunaan memori, sehingga menyebabkan kegagalan karena error Out of memory .
|
Filter yang didukung
Kondisi filter berikut didukung.
Filter yang berisi operator perbandingan
Gunakan operator perbandingan untuk melakukan pemfilteran yang lebih kompleks berdasarkan perbandingan antara nilai.
Sintaks
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.
Sintaks
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.
Sintaks
SELECT * FROM table_name WHERE column_name \ IN ('value1', 'value2', 'value3');
Contoh
ERNAM IN ( 'LEE' , 'KIRAN' )
Filter yang berisi operator logika
Gunakan operator logika untuk menentukan daftar nilai yang akan dicocokkan.
Sintaks
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 tanggal/waktu yang berada dalam rentang tanggal tertentu.
Sintaks
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
Gunakan perbandingan tanggal untuk mengambil baris tempat datetime digunakan.
Sintaks
SELECT * FROM table_name WHERE datetime_column > 'target_date';
Contoh
AUDAT GE '20230910' AND AUDAT LE '20230914'
Memfilter gabungan tanggal dan waktu
Jika kolom tanggal dan waktu menyertakan tanggal dan waktu, Anda dapat memfilternya.
Sintaks
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 logika
Anda dapat mengambil baris yang memenuhi beberapa kondisi menggunakan operator
logika, seperti AND
dan OR
.
Sintaks
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.
Sintaks
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.
Sintaks
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' )
Filter yang menggabungkan kondisi tanggal dan nilai
Anda dapat menggabungkan kondisi berbasis tanggal dan berbasis nilai dalam filter yang kompleks.
Sintaks
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
Di SAP, kolom tanggal dan waktu selalu disimpan tanpa -
atau
:
di tingkat database.
Sintaks
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 QUERY tidak didukung.
Tidak didukung: Filter yang berisi interval
Di SAP, fungsi NOW()
tidak didukung.
Sintaks
SELECT * FROM table_name \ WHERE datetime_column >= NOW() - INTERVAL X DAY;
Tidak didukung: Filter yang mengekstrak komponen tanggal
Di SAP, pemfilteran offset tidak didukung.
Contoh
WHERE YEAR+0(4) = 2023
Pemetaan jenis 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 | Angka yang dipaketkan dalam format BCD (DEC) | 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 | CLOB string karakter | 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 | date |
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
Dalam setiap konteks, plugin Tabel SAP mendukung tabel dan tampilan database standar dan kustom.
Batasan
Plugin Tabel SAP memiliki batasan berikut:
- Table explorer tidak mendukung penggabungan tabel.
- Tindakan ini tidak mendukung tampilan CDS dengan parameter.
- Fungsi ini tidak didukung tanpa kolom kunci.
- Jika fitur Snapshot diaktifkan, menggunakan ukuran paket yang melebihi 30.000 dapat menyebabkan kegagalan pipeline. Ukuran paket ini dapat bervariasi, bergantung pada jumlah kolom dalam tabel SAP. Anda dapat menghitung ukuran paket yang optimal untuk tabel menggunakan formula ini: ukuran baris (dalam jumlah karakter) * 5.
- Pengelola Koneksi memungkinkan Anda menjelajahi maksimal 1.000 nama tabel SAP.
- Saat error pipeline terjadi, seperti error di sink, plugin Tabel SAP
akan mencoba membersihkan proses sisi SAP aktif yang terkait dengan
ekstraksi dengan memanggil RFM kustom yang ditujukan untuk pembersihan:
/GOOG/RFC_READ_TABLE_CLEANUP
.
Catatan rilis
Langkah selanjutnya
- Pelajari SAP di Google Cloud lebih lanjut.