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 Integrasi data SAP menggunakan whitepaper 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/-)
Aktivitas pencarian

① 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.

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:

  1. Gunakan SAP GUI untuk menyambungkan ke Sistem SAP.
  2. Buka Sistem ->Status.
  3. Periksa rilis SAP_BASIS, pastikan sama dengan atau lebih besar dari 701.
    Check SAP_BASIS

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.

    Install SAP Connector for .NET

  • 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.

Mulai

Untuk melakukan aktivitas Salin dengan alur, Anda dapat menggunakan salah satu alat atau SDK berikut:

Membuat layanan tertaut ke tabel SAP menggunakan UI

Gunakan langkah-langkah berikut untuk membuat layanan tertaut ke tabel SAP di UI portal Azure.

  1. Telusuri ke tab Kelola di ruang kerja Azure Data Factory atau Synapse Anda dan pilih Layanan Tertaut, lalu klik Baru:

  2. Cari SAP dan pilih konektor tabel SAP.

    Screenshot of the SAP table connector.

  3. Konfigurasikan detail layanan, uji koneksi, dan buat layanan tertaut baru.

    Screenshot of configuration for an SAP table linked service.

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.
Tidak
systemNumber Nomor sistem sistem SAP.
Gunakan untuk menyambungkan ke server aplikasi SAP.
Nilai yang diizinkan: angka desimal dua digit yang direpresentasikan sebagai string.
Tidak
messageServer Nama host server pesan SAP.
Gunakan untuk menyambungkan ke server pesan SAP.
Tidak
messageServerService Nama layanan atau nomor port server pesan.
Gunakan untuk menyambungkan ke server pesan SAP.
Tidak
systemId ID sistem SAP tempat tabel berada.
Gunakan untuk menyambungkan ke server pesan SAP.
Tidak
logonGroup Grup masuk untuk sistem SAP.
Gunakan untuk menyambungkan ke server pesan SAP.
Tidak
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.
Tidak
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).
Tidak
sncMyName Nama SNC inisiator untuk mengakses server SAP tempat tabel berada.
Berlaku saat sncMode menyala.
Tidak
sncPartnerName Nama SNC mitra komunikasi untuk mengakses server SAP tempat tabel berada.
Berlaku saat sncMode menyala.
Tidak
sncLibraryPath Pustaka produk keamanan eksternal untuk mengakses server SAP tempat tabel berada.
Berlaku saat sncMode menyala.
Tidak
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).
Tidak
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"
        }
    }
}

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. Tidak
rfcTableFields Bidang (kolom) untuk disalin dari tabel SAP. Contohnya, column0, column1. Tidak
rfcTableOptions Opsi untuk memfilter baris dalam tabel SAP. Contohnya, COLUMN0 EQ 'SOMEVALUE'. Lihat juga tabel operator kueri SAP nanti di artikel ini. Tidak
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.
Tidak
partitionOption Mekanisme partisi untuk membaca dari tabel SAP. Opsi yang didukung meliputi:
  • None
  • PartitionOnInt (nilai bilangan bulat atau bilangan bulat normal dengan pengisi nol di sebelah kiri, seperti 0000012345)
  • PartitionOnCalendarYear (4 digit dalam format "YYYY")
  • PartitionOnCalendarMonth (6 digit dalam format "YYYYMM")
  • PartitionOnCalendarDate (8 digit dalam format "YYYYMMDD")
  • PartitionOntime (6 digit dalam format "HHMMSS", misalnya 235959)
Tidak
partitionColumnName Nama kolom yang digunakan untuk mempartisi data. Tidak
partitionUpperBound Nilai maksimum kolom yang ditentukan dalam partitionColumnName yang akan digunakan untuk melanjutkan pemartisian. Tidak
partitionLowerBound Nilai minimum kolom yang ditentukan dalam partitionColumnName yang akan digunakan untuk melanjutkan pemartisian. (Catatan: partitionLowerBound tidak boleh "0" ketika opsi partisi adalah PartitionOnInt) Tidak
maxPartitionsNumber Jumlah maksimum partisi untuk pemisahan data. Nilai default adalah 1. Tidak
sapDataColumnDelimiter Karakter tunggal yang digunakan sebagai pemisah diteruskan ke SAP RFC untuk memisah data output. Tidak

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 maxPartitionsNumberbeberapa nilai properti parallelCopies. Saat menyalin data ke penyimpanan data berbasis file, disarankan untuk menulis ke satu folder sebagai beberapa file (hanya menentukan nama folder), dalam kasus ini, performanya 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 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".

Berikut contohnya:

Sap Table Join

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:

    Definition

  • Ekspor data ke salah satu tabel di bawah ini:

    Export table 1

    Export table 2

Di bawah ini adalah ilustrasi tentang cara kerja konektor tabel SAP dengan modul fungsi kustom:

  1. Bangun koneksi dengan server SAP melalui SAP NCO.

  2. 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.
  3. Dapatkan hasilnya dan pilah data dengan cara di bawah ini:

    1. Pilah nilai dalam tabel Fields untuk mendapatkan skema.

      Parse values in Fields

    2. Dapatkan nilai tabel output untuk melihat tabel mana yang berisi nilai-nilai ini.

      Get values in output table

    3. 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.

Untuk daftar penyimpanan data yang didukung sebagai sumber dan sink oleh aktivitas salin, lihat Penyimpanan data yang didukung.