Menyalin data dari tabel SAP menggunakan Azure Data Factory atau Azure Synapse Analytics
BERLAKU UNTUK: Azure Data Factory
Azure Synapse Analytics
Tip
Cobalah Data Factory di Microsoft Fabric, solusi analitik all-in-one untuk perusahaan. Microsoft Fabric mencakup semuanya mulai dari pergerakan data hingga ilmu data, analitik real time, kecerdasan bisnis, dan pelaporan. Pelajari cara memulai uji coba baru secara gratis!
Artikel ini menguraikan cara menggunakan aktivitas salin di alur Azure Data Factory dan Azure Synapse Analytics untuk menyalin data dari tabel SAP. Untuk informasi lebih lanjut, lihat Gambaran Umum aktivitas salin.
Tip
Untuk mempelajari dukungan keseluruhan pada skenario integrasi data SAP, lihat laporan resmi Integrasi data SAP menggunakan Azure Data Factory dengan pengenalan mendetail pada setiap konektor, perbandingan, dan panduan SAP.
Kemampuan yang didukung
Konektor tabel SAP ini didukung untuk kemampuan berikut:
Kemampuan yang didukung | IR |
---|---|
Aktivitas penyalinan (sumber/-) | (2) |
Aktivitas pencarian | (2) |
① Runtime integrasi Azure ② Runtime integrasi yang dihost sendiri
Untuk daftar penyimpanan data yang didukung sebagai sumber atau sink oleh aktivitas salin, lihat tabel Penyimpanan data yang didukung.
Secara khusus, konektor tabel SAP ini mendukung:
Menyalin data dari tabel SAP di:
- SAP ERP Central Component (SAP ECC) versi 7.01 atau yang lebih baru (dalam SAP Support Package Stack terbaru yang dirilis setelah 2015).
- SAP Business Warehouse (SAP BW) versi 7.01 atau lebih tinggi (dalam SAP Support Package Stack terbaru yang dirilis setelah tahun 2015).
- SAP S/4HANA.
- Produk lain dalam SAP Business Suite versi 7.01 atau lebih tinggi (dalam SAP Support Package Stack terbaru yang dirilis setelah tahun 2015).
Menyalin data baik dari tabel transparan SAP, tabel yang dikumpulkan, tabel berkluster, dan tampilan.
Menyalin data dengan menggunakan autentikasi dasar atau Secure Network Communication (SNC), jika SNC dikonfigurasi.
Menyambungkan ke server aplikasi SAP atau server pesan SAP.
Mengambil data melalui RFC default atau kustom.
Untuk informasi selengkapnya tentang SNC, lihat Mulai menggunakan SAP SNC untuk integrasi RFC - blog SAP.
Versi 7.01 atau yang lebih baru mengacu pada versi SAP NetWeaver, bukan versi SAP ECC. Misalnya, SAP ECC 6.0 EHP 7 secara umum memiliki NetWeaver versi >=7.4. Jika Anda tidak yakin tentang lingkungan Anda, berikut adalah langkah-langkah untuk mengonfirmasi versi dari sistem SAP Anda:
- Gunakan SAP GUI untuk menyambungkan ke Sistem SAP.
- Buka Sistem ->Status.
- Periksa rilis SAP_BASIS, pastikan sama dengan atau lebih besar dari 701.
Prasyarat
Untuk menggunakan konektor tabel SAP ini, Anda perlu:
Menyiapkan runtime integrasi yang dihost sendiri (versi 3.17 atau yang lebih baru). Untuk informasi selengkapnya, lihat Buat dan konfigurasi runtime integrasi yang dihost sendiri.
Unduh Konektor SAP 64-bit untuk Microsoft .NET 3.0 dari situs web SAP, dan pasang di komputer IR yang dihost sendiri. Selama penginstalan, pastikan Anda memilih opsi Instal Rakitan ke GAC di jendela Langkah persiapan opsional.
Pengguna SAP yang sedang digunakan di konektor tabel SAP harus memiliki izin berikut:
- Otorisasi untuk menggunakan tujuan Remote Function Call (RFC).
- Izin untuk aktivitas Eksekusi dari objek otorisasi S_SDSAUTH. Anda dapat merujuk ke SAP Note 460089 pada objek otorisasi mayoritas. RFC tertentu diperlukan oleh konektor NCo yang mendasarinya, misalnya RFC_FUNCTION_SEARCH.
Memulai
Untuk melakukan aktivitas Salin dengan alur, Anda dapat menggunakan salah satu alat atau SDK berikut:
- Alat Penyalinan Data
- Portal Microsoft Azure
- SDK .NET
- SDK Python
- Azure PowerShell
- REST API
- Templat Azure Resource Manager
Membuat layanan tertaut ke tabel SAP menggunakan UI
Gunakan langkah-langkah berikut untuk membuat layanan tertaut ke tabel SAP di UI portal Azure.
Telusuri ke tab Kelola di ruang kerja Azure Data Factory atau Synapse Anda dan pilih Layanan Tertaut, lalu klik Baru:
Cari SAP dan pilih konektor tabel SAP.
Konfigurasikan detail layanan, uji koneksi, dan buat layanan tertaut baru.
Detail konfigurasi konektor
Bagian berikut memberikan detail tentang properti yang digunakan untuk menentukan entitas khusus untuk konektor tabel SAP.
Properti layanan tertaut
Properti berikut didukung untuk layanan tertaut SAP BW Open Hub:
Properti | Deskripsi | Wajib diisi |
---|---|---|
type |
Properti type harus diatur ke SapTable . |
Ya |
server |
Nama server tempat instans SAP berada. Gunakan untuk menyambungkan ke server aplikasi SAP. |
No |
systemNumber |
Nomor sistem sistem SAP. Gunakan untuk menyambungkan ke server aplikasi SAP. Nilai yang diizinkan: angka desimal dua digit yang direpresentasikan sebagai string. |
No |
messageServer |
Nama host server pesan SAP. Gunakan untuk menyambungkan ke server pesan SAP. |
No |
messageServerService |
Nama layanan atau nomor port server pesan. Gunakan untuk menyambungkan ke server pesan SAP. |
No |
systemId |
ID sistem SAP tempat tabel berada. Gunakan untuk menyambungkan ke server pesan SAP. |
No |
logonGroup |
Grup masuk untuk sistem SAP. Gunakan untuk menyambungkan ke server pesan SAP. |
No |
clientId |
ID klien dari klien dalam sistem SAP. Nilai yang diizinkan: angka desimal tiga digit yang direpresentasikan sebagai string. |
Ya |
language |
Bahasa yang digunakan sistem SAP. Nilai default EN . |
No |
userName |
Nama pengguna yang memiliki akses ke server SAP. | Ya |
password |
Kata sandi untuk pengguna. Tandai bidang ini dengan jenis SecureString untuk menyimpannya dengan aman, atau referensikan rahasia yang disimpan di Azure Key Vault. |
Ya |
sncMode |
Indikator aktivasi SNC untuk mengakses server SAP di mana tabel berada. Gunakan jika Anda ingin menggunakan SNC untuk menyambungkan ke server SAP. Nilai yang diperbolehkan adalah 0 (off, default) atau 1 (on). |
No |
sncMyName |
Nama SNC inisiator untuk mengakses server SAP tempat tabel berada. Berlaku saat sncMode menyala. |
No |
sncPartnerName |
Nama SNC mitra komunikasi untuk mengakses server SAP tempat tabel berada. Berlaku saat sncMode menyala. |
No |
sncLibraryPath |
Pustaka produk keamanan eksternal untuk mengakses server SAP tempat tabel berada. Berlaku saat sncMode menyala. |
No |
sncQop |
Tingkat Kualitas Perlindungan SNC untuk diterapkan. Berlaku saat sncMode menyala. Nilai yang diperbolehkan adalah 1 (Autentikasi), 2 (Integritas), 3 (Privasi), 8 (Default), 9 (Maksimum). |
No |
connectVia |
Runtime integrasi yang akan digunakan untuk menyambungkan ke penyimpanan data. Runtime Integrasi yang dihost sendiri diperlukan, seperti yang disebutkan dalam Prasyarat. | Ya |
Contoh 1: Sambungkan ke server aplikasi SAP
{
"name": "SapTableLinkedService",
"properties": {
"type": "SapTable",
"typeProperties": {
"server": "<server name>",
"systemNumber": "<system number>",
"clientId": "<client ID>",
"userName": "<SAP user>",
"password": {
"type": "SecureString",
"value": "<Password for SAP user>"
}
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Contoh 2: Sambungkan ke server pesan SAP
{
"name": "SapTableLinkedService",
"properties": {
"type": "SapTable",
"typeProperties": {
"messageServer": "<message server name>",
"messageServerService": "<service name or port>",
"systemId": "<system ID>",
"logonGroup": "<logon group>",
"clientId": "<client ID>",
"userName": "<SAP user>",
"password": {
"type": "SecureString",
"value": "<Password for SAP user>"
}
},
"connectVia": {
"referenceName": "<name of integration runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Contoh 3: Sambungkan dengan menggunakan SNC
{
"name": "SapTableLinkedService",
"properties": {
"type": "SapTable",
"typeProperties": {
"server": "<server name>",
"systemNumber": "<system number>",
"clientId": "<client ID>",
"userName": "<SAP user>",
"password": {
"type": "SecureString",
"value": "<Password for SAP user>"
},
"sncMode": 1,
"sncMyName": "<SNC myname>",
"sncPartnerName": "<SNC partner name>",
"sncLibraryPath": "<SNC library path>",
"sncQop": "8"
},
"connectVia": {
"referenceName": "<name of integration runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Untuk informasi selengkapnya tentang SNC, lihat Mulai menggunakan SAP SNC untuk integrasi RFC - blog SAP.
Properti himpunan data
Untuk daftar lengkap bagian dan properti untuk menentukan himpunan data, lihat Himpunan data. Bagian berikut berisi daftar properti yang didukung oleh himpunan data tabel SAP.
Untuk menyalin data dari dan ke layanan tertaut SAP BW Open Hub, properti berikut ini didukung:
Properti | Deskripsi | Wajib diisi |
---|---|---|
type |
Properti type harus diatur ke SapTableResource . |
Ya |
tableName |
Nama tabel SAP asal data yang disalin. | Ya |
Contoh
{
"name": "SAPTableDataset",
"properties": {
"type": "SapTableResource",
"typeProperties": {
"tableName": "<SAP table name>"
},
"schema": [],
"linkedServiceName": {
"referenceName": "<SAP table linked service name>",
"type": "LinkedServiceReference"
}
}
}
Properti aktivitas salin
Untuk daftar lengkap bagian dan properti untuk menentukan aktivitas, lihat Alur. Bagian berikut berisi daftar properti yang didukung oleh sumber tabel SAP.
Tabel SAP sebagai sumber
Untuk menyalin data dari tabel SAP, properti berikut didukung:
Properti | Deskripsi | Wajib diisi |
---|---|---|
type |
Properti type harus diatur ke SapTableSource . |
Ya |
rowCount |
Jumlah baris yang akan diambil. | No |
rfcTableFields |
Bidang (kolom) untuk disalin dari tabel SAP. Contohnya,column0, column1 . |
No |
rfcTableOptions |
Opsi untuk memfilter baris dalam tabel SAP. Contohnya,COLUMN0 EQ 'SOMEVALUE' . Lihat juga tabel operator kueri SAP nanti di artikel ini. |
No |
customRfcReadTableFunctionModule |
Modul fungsi RFC kustom yang dapat digunakan untuk membaca data dari tabel SAP. Anda dapat menggunakan modul fungsi RFC kustom untuk menentukan bagaimana data diambil dari sistem SAP Anda dan dikembalikan ke layanan. Modul fungsi kustom harus memiliki antarmuka yang diimplementasikan (impor, ekspor, tabel) yang mirip dengan /SAPDS/RFC_READ_TABLE2 , yang merupakan antarmuka default yang digunakan oleh layanan. |
No |
partitionOption |
Mekanisme partisi untuk membaca dari tabel SAP. Opsi yang didukung meliputi:
|
No |
partitionColumnName |
Nama kolom yang digunakan untuk mempartisi data. | No |
partitionUpperBound |
Nilai maksimum kolom yang ditentukan dalam partitionColumnName yang akan digunakan untuk melanjutkan pemartisian. |
No |
partitionLowerBound |
Nilai minimum kolom yang ditentukan dalam partitionColumnName yang akan digunakan untuk melanjutkan pemartisian. (Catatan: partitionLowerBound tidak boleh "0" ketika opsi partisi adalah PartitionOnInt ) |
No |
maxPartitionsNumber |
Jumlah maksimum partisi untuk pemisahan data. Nilai default adalah 1. | No |
sapDataColumnDelimiter |
Karakter tunggal yang digunakan sebagai pemisah diteruskan ke SAP RFC untuk memisah data output. | No |
Tip
Jika tabel SAP Anda memiliki data dalam jumlah besar, misalnya beberapa miliar baris, gunakan partitionOption
dan partitionSetting
untuk memisahkan data menjadi partisi yang lebih kecil. Dalam hal ini, data dibaca per partisi, dan setiap partisi data diambil dari server SAP Anda melalui satu panggilan RFC.
Dengan mengambil partitionOption
sebagai partitionOnInt
sebagai contoh, jumlah baris di setiap partisi dihitung dengan rumus ini: (baris total berada antara partitionUpperBound
dan partitionLowerBound
)/maxPartitionsNumber
.
Untuk memuat partisi data secara paralel untuk mempercepat salinan, derajat paralel dikendalikan oleh pengaturan parallelCopies
pada aktivitas salin. Misalnya, jika Anda mengatur parallelCopies
ke empat, layanan secara bersamaan menghasilkan dan menjalankan empat kueri berdasarkan opsi dan pengaturan partisi yang Anda tentukan, dan setiap kueri mengambil sebagian data dari tabel SAP Anda. Kami sangat menyarankan untuk membuat maxPartitionsNumber
beberapa nilai properti parallelCopies
. Saat menyalin data ke penyimpanan data berbasis file, disarankan juga untuk menulis ke folder sebagai beberapa file (hanya menentukan nama folder), dalam hal ini performa lebih baik daripada menulis ke satu file.
Tip
BASXML
diaktifkan secara default untuk konektor Tabel SAP ini dalam layanan.
Dalam rfcTableOptions
, Anda bisa menggunakan operator kueri SAP umum berikut ini untuk memfilter baris:
Operator | Deskripsi |
---|---|
EQ |
Sama dengan |
NE |
Tidak sama dengan |
LT |
Kurang dari |
LE |
Kurang dari atau sama dengan |
GT |
Lebih besar dari |
GE |
Lebih dari atau sama dengan |
IN |
Seperti dalam TABCLASS IN ('TRANSP', 'INTTAB') |
LIKE |
Seperti dalam LIKE 'Emma%' |
Contoh
"activities":[
{
"name": "CopyFromSAPTable",
"type": "Copy",
"inputs": [
{
"referenceName": "<SAP table input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "SapTableSource",
"partitionOption": "PartitionOnInt",
"partitionSettings": {
"partitionColumnName": "<partition column name>",
"partitionUpperBound": "2000",
"partitionLowerBound": "1",
"maxPartitionsNumber": 500
}
},
"sink": {
"type": "<sink type>"
},
"parallelCopies": 4
}
}
]
Gabungkan tabel SAP
Saat ini konektor Tabel SAP hanya mendukung satu tabel dengan modul fungsi default. Untuk mendapatkan data yang digabungkan dari beberapa tabel, Anda bisa memanfaatkan properti customRfcReadTableFunctionModule di konektor Tabel SAP dengan langkah-langkah berikut:
- Tulis modul fungsi kustom, yang dapat mengambil kueri sebagai OPTIONS dan menerapkan logika Anda sendiri untuk mengambil data.
- Untuk "Modul fungsi kustom", masukkan nama modul fungsi kustom Anda.
- Untuk "opsi tabel RFC", tentukan pernyataan gabungan tabel untuk menyalurkan ke modul fungsi Anda sebagai OPTIONS, misalnya "
<TABLE1>
INNER JOIN<TABLE2>
ON COLUMN0".
Di Bawah ini adalah contohnya:
Tip
Anda juga dapat mempertimbangkan data yang digabungkan diagregasi dalam VIEW, yang didukung oleh konektor Tabel SAP. Anda juga dapat mencoba mengekstrak tabel terkait untuk onboarding ke Azure (misalnya Azure Storage, Azure SQL Database), lalu menggunakan Data Flow untuk melanjutkan dengan gabungan atau filter lebih lanjut.
Buat modul fungsi kustom
Untuk tabel SAP, saat ini kami mendukung properti customRfcReadTableFunctionModule di sumber salinan, yang memungkinkan Anda memanfaatkan data logika dan proses Anda sendiri.
Sebagai panduan singkat, berikut adalah beberapa persyaratan untuk memulai dengan "Modul fungsi kustom":
Definisi:
Ekspor data ke salah satu tabel di bawah ini:
Di bawah ini adalah ilustrasi tentang cara kerja konektor tabel SAP dengan modul fungsi kustom:
Bangun koneksi dengan server SAP melalui SAP NCO.
Panggil "Modul fungsi kustom" dengan parameter yang diatur seperti di bawah ini:
- QUERY_TABLE: nama tabel yang Anda tetapkan di himpunan data Tabel SAP;
- Pemisah: pemisah yang Anda tetapkan di Sumber Tabel SAP;
- ROWCOUNT/Option/Fields: Rowcount/Aggregated Option/Fields yang Anda atur di sumber Tabel.
Dapatkan hasilnya dan pilah data dengan cara di bawah ini:
Pilah nilai dalam tabel Fields untuk mendapatkan skema.
Dapatkan nilai tabel output untuk melihat tabel mana yang berisi nilai-nilai ini.
Dapatkan nilai dalam OUT_TABLE, pilah data lalu tulis ke sink.
Pemetaan jenis data untuk tabel SAP
Saat Anda menyalin data dari tabel SAP, pemetaan berikut digunakan dari jenis data tabel SAP ke jenis data sementara yang digunakan dalam layanan. Untuk mempelajari bagaimana aktivitas salin memetakan skema sumber dan jenis data ke sink, lihat Pemetaan skema dan jenis data.
Jenis SAP ABAP | Jenis data sementara layanan |
---|---|
C (String) |
String |
I (Integer) |
Int32 |
F (Float) |
Double |
D (Date) |
String |
T (Time) |
String |
P (BCD Dikemas, Mata Uang, Desimal, Jumlah) |
Decimal |
N (Numerik) |
String |
X (Biner dan Raw) |
String |
Properti aktivitas pencarian
Untuk mempelajari detail tentang properti, lihat Aktivitas pencarian.
Konten terkait
Untuk daftar penyimpanan data yang didukung sebagai sumber dan sink oleh aktivitas salin, lihat Penyimpanan data yang didukung.