Bagikan melalui


Menyalin data dari SAP Hana menggunakan Azure Data Factory atau Synapse Analytics

Azure Data Factory Azure Synapse Analytics

Petunjuk

Data Factory di Microsoft Fabric adalah generasi Azure Data Factory berikutnya, dengan arsitektur yang lebih sederhana, AI bawaan, dan fitur baru. Jika Anda baru menggunakan integrasi data, mulailah dengan Fabric Data Factory. Beban kerja ADF yang ada dapat ditingkatkan ke Fabric untuk mengakses kemampuan baru di seluruh ilmu data, analitik real time, dan pelaporan.

Artikel ini menguraikan cara menggunakan Aktivitas Salin di alur Azure Data Factory dan Synapse Analytics untuk menyalin data dari database SAP Hana. Artikel tersebut dibuat berdasarkan artikel gambaran umum aktivitas salin yang menyajikan gambaran umum aktivitas salin.

Petunjuk

Untuk mempelajari tentang dukungan keseluruhan untuk skenario integrasi data SAP, lihat whitepaper integrasi data SAP dengan pengenalan terperinci pada setiap konektor, perbandingan, dan panduan SAP.

Kemampuan yang didukung

Konektor SAP Hana ini didukung untuk kemampuan berikut:

Kemampuan yang didukung IR
Copy activity (sumber/sink)
Aktivitas pencarian

(1) Azure runtime integrasi (2) Runtime integrasi yang dihost sendiri

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

Secara khusus, konektor SAP Hana ini mendukung:

  • Menyalin data dari versi database SAP Hana apa pun.
  • Menyalin data dari model informasi HANA (seperti tampilan Analitik dan Perhitungan) dan tabel Baris/Kolom.
  • Menyalin data menggunakan Basic atau Windows autentikasi.
  • Penyalinan paralel dari sumber SAP Hana. Lihat bagian Parallel dari SAP Hana untuk detailnya.

Petunjuk

Untuk menyalin data into SAP Hana penyimpanan data, gunakan konektor ODBC generik. Lihat bagian SAP Hana sink dengan detail. Perhatikan layanan tertaut untuk konektor SAP Hana dan konektor ODBC dengan jenis yang berbeda sehingga tidak dapat digunakan kembali.

Prerequisites

Untuk menggunakan konektor SAP Hana ini, Anda perlu:

  • Siapkan Integration Runtime yang Dihost sendiri. Lihat artikel Self-hosted Integration Runtime untuk detailnya.
  • Instal driver ODBC SAP Hana pada komputer Integration Runtime. Anda dapat mengunduh driver ODBC SAP Hana dari SAP Software Download Center. Cari dengan kata kunci SAP Hana CLIENT untuk Windows.

Memulai Langkah Pertama

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

Membuat layanan tertaut ke SAP Hana menggunakan UI

Gunakan langkah-langkah berikut untuk membuat layanan tertaut ke SAP Hana 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 SAP Hana.

    Tangkapan layar dari konektor SAP Hana.

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

    Screenshot konfigurasi layanan terhubung untuk SAP Hana.

Detail konfigurasi konektor

Bagian berikut ini menyediakan detail tentang properti yang digunakan untuk menentukan entitas Data Factory khusus untuk konektor SAP Hana.

Properti layanan yang terhubung

Properti berikut ini didukung untuk layanan terhubung SAP Hana:

Properti Deskripsi Wajib
jenis Properti jenis harus disetel ke: SapHana Yes
String Koneksi Tentukan informasi yang diperlukan untuk menyambungkan ke SAP Hana dengan menggunakan autentikasi basic atau Windows authentication. Lihat sampel berikut.
Dalam string koneksi, server/port wajib (port default adalah 30015), dan nama pengguna dan kata sandi wajib saat menggunakan autentikasi dasar. Untuk pengaturan tingkat lanjut tambahan, lihat SAP Hana Properti Koneksi ODBC
Anda juga dapat memasukkan kata sandi ke Azure Key Vault dan menarik konfigurasi kata sandi keluar dari string koneksi. Lihat artikel Simpan kredensial di Azure Key Vault untuk lebih jelasnya.
Yes
userName Tentukan nama pengguna saat menggunakan Windows authentication. Contoh: user@domain.com Tidak
kata sandi Tentukan kata sandi untuk akun pengguna. Tandai bidang ini sebagai SecureString untuk menyimpannya dengan aman, atau referensi rahasia yang disimpan di Azure Key Vault. Tidak
connectVia Integration Runtime yang akan digunakan untuk menyambungkan ke penyimpanan data. Integration Runtime yang dihost sendiri diperlukan seperti yang disebutkan dalam Prerequisites. Yes

Contoh: gunakan autentikasi dasar

{
    "name": "SapHanaLinkedService",
    "properties": {
        "type": "SapHana",
        "typeProperties": {
            "connectionString": "SERVERNODE=<server>:<port (optional)>;UID=<userName>;PWD=<Password>"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Contoh: gunakan autentikasi Windows

{
    "name": "SapHanaLinkedService",
    "properties": {
        "type": "SapHana",
        "typeProperties": {
            "connectionString": "SERVERNODE=<server>:<port (optional)>;",
            "userName": "<username>", 
            "password": { 
                "type": "SecureString", 
                "value": "<password>" 
            } 
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Jika Anda menggunakan layanan tertaut SAP Hana dengan payload berikut, layanan ini masih didukung as-is, sementara Anda disarankan untuk menggunakan yang baru ke depannya.

Example:

{
    "name": "SapHanaLinkedService",
    "properties": {
        "type": "SapHana",
        "typeProperties": {
            "server": "<server>:<port (optional)>",
            "authenticationType": "Basic",
            "userName": "<username>",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Properti kumpulan data

Untuk daftar lengkap bagian dan properti yang tersedia untuk menentukan himpunan data, lihat artikel himpunan data. Bagian ini menyediakan daftar properti yang didukung oleh himpunan data SAP Hana.

Untuk menyalin data dari SAP Hana, properti berikut ini didukung:

Properti Deskripsi Wajib
jenis Properti tipe dari himpunan data harus diatur ke: SapHanaTable Yes
skema Nama skema dalam database SAP Hana. Tidak (jika "kueri" di sumber aktivitas spesifik)
tabel Nama tabel dalam database SAP Hana. Tidak (jika "kueri" di sumber aktivitas spesifik)

Example:

{
    "name": "SAPHANADataset",
    "properties": {
        "type": "SapHanaTable",
        "typeProperties": {
            "schema": "<schema name>",
            "table": "<table name>"
        },
        "schema": [],
        "linkedServiceName": {
            "referenceName": "<SAP HANA linked service name>",
            "type": "LinkedServiceReference"
        }
    }
}

Jika Anda menggunakan himpunan data berjenis RelationalTable, himpunan data tersebut masih didukung apa adanya, sementara Anda disarankan untuk menggunakan yang baru ke depannya.

Properti Aktivitas Salin

Untuk daftar lengkap bagian dan properti yang tersedia guna mendefinisikan aktivitas, silakan lihat artikel Pipeline. Bagian ini menyediakan daftar properti yang didukung oleh sumber SAP Hana.

SAP Hana sebagai sumber

Petunjuk

Untuk mengambil data dari SAP Hana secara efisien dengan menggunakan partisi data, pelajari lebih lanjut dari bagian penyalinan paralel dari SAP Hana.

Untuk menyalin data dari SAP Hana, properti berikut ini didukung di bagian aktivitas salin source:

Properti Deskripsi Wajib
jenis Properti jenis sumber aktivitas salin harus diatur ke: SapHanaSource Yes
kueri Menentukan kueri SQL untuk membaca data dari instans SAP Hana. Yes
partitionOptions Menentukan opsi pemartisian data yang digunakan untuk menyerap data dari SAP Hana. Pelajari selengkapnya dari bagian Penyalinan Paralel dari SAP Hana.
Nilai yang diizinkan adalah: Tidak ada (default), PhysicalPartitionsOfTable, SapHanaDynamicRange. Pelajari lebih lanjut dari bagian Penyalinan Paralel dari SAP Hana. PhysicalPartitionsOfTable hanya dapat digunakan saat menyalin data dari tabel tetapi bukan kueri.
Ketika opsi partisi diaktifkan (yaitu, bukan None), tingkat paralelisme untuk memuat data secara bersamaan dari SAP Hana dikendalikan oleh pengaturan parallelCopies pada aktivitas salin.
False
pengaturan partisi Tentukan grup pengaturan untuk pemartisian data.
Terapkan saat opsi partisi adalah SapHanaDynamicRange.
False
partitionColumnName Tentukan nama kolom sumber yang akan digunakan oleh partisi untuk salinan paralel. Jika tidak ditentukan, indeks atau kunci utama tabel terdeteksi secara otomatis dan digunakan sebagai kolom partisi.
Terapkan saat opsi partisi adalah SapHanaDynamicRange. Jika Anda menggunakan kueri untuk mengambil data sumber, kaitkan ?AdfHanaDynamicRangePartitionCondition dalam klausa WHERE. Lihat contoh di bagian Salinan Paralel dari SAP Hana.
Ya, saat menggunakan SapHanaDynamicRange partisi. 
ukuran paket Menentukan ukuran paket jaringan (dalam Kilobyte) untuk membagi data ke beberapa blok. Jika Anda memiliki sejumlah besar data untuk disalin, meningkatkan ukuran paket dapat meningkatkan kecepatan membaca dari SAP Hana dalam banyak kasus. Pengujian performa disarankan saat menyesuaikan ukuran paket. No.
Nilai defaultnya adalah 2048 (2MB).

Example:

"activities":[
    {
        "name": "CopyFromSAPHANA",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<SAP HANA input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "SapHanaSource",
                "query": "<SQL query for SAP HANA>"
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Jika Anda menggunakan RelationalSource sumber salinan yang diketik, sumber salinan tersebut tetap didukung dalam bentuk sekarang, sementara Anda disarankan untuk menggunakan yang baru ke depannya.

Salinan paralel dari SAP Hana

Konektor SAP Hana menyediakan partisi data bawaan untuk menyalin data dari SAP Hana secara paralel. Anda dapat menemukan opsi pemartisian data pada tabel Sumber aktivitas salin.

Cuplikan layar opsi partisi

Saat Anda mengaktifkan salinan yang dipartisi, layanan menjalankan kueri paralel terhadap sumber SAP Hana Anda untuk mengambil data berdasarkan partisi. 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 SAP Hana Anda.

Anda disarankan untuk mengaktifkan penyalinan paralel dengan pemartisian data terutama saat Anda menyerap sejumlah besar data dari SAP Hana Anda. Berikut ini adalah konfigurasi yang disarankan untuk skenario yang berbeda. Saat menyalin data ke penyimpanan data berbasis file, disarankan untuk menulis ke folder sebagai beberapa file (hanya tentukan nama folder), dalam hal ini performanya lebih baik daripada menulis ke satu file.

Skenario Pengaturan yang disarankan
Pemuatan penuh dari tabel besar. Opsi partisi: Pembagian fisik dari tabel.

Selama eksekusi, layanan secara otomatis mendeteksi jenis partisi fisik tabel SAP Hana yang ditentukan, dan memilih strategi partisi yang sesuai:
- Pemartisian Rentang: Dapatkan kolom partisi dan rentang partisi yang ditentukan untuk tabel, lalu salin data menurut rentang.
- Partisi Hash: Gunakan kunci partisi hash sebagai kolom partisi, lalu partisi dan salin data berdasarkan rentang yang dihitung oleh layanan.
- Round-Robin Partitioning atau Tanpa Partisi: Gunakan kunci primer sebagai kolom partisi, lalu partisi data berdasarkan rentang yang dihitung oleh layanan.
Muat data dalam jumlah besar dengan menggunakan kueri kustom. Opsi partisi: Opsi pembagian rentang dinamis.
Kueri: SELECT * FROM <TABLENAME> WHERE (?AdfHanaDynamicRangePartitionCondition) AND <your_additional_where_clause>.
Kolom partisi: Tentukan kolom yang digunakan untuk menerapkan partisi rentang dinamis.

Selama eksekusi, layanan terlebih dahulu menghitung rentang nilai kolom partisi yang ditentukan, dengan mendistribusikan baris secara merata dalam sejumlah wadah sesuai dengan jumlah nilai kolom partisi yang berbeda pengaturan salinan paralel, lalu mengganti ?AdfHanaDynamicRangePartitionCondition dengan memfilter rentang nilai kolom partisi untuk setiap partisi, dan mengirim ke SAP Hana.

Jika Anda ingin menggunakan beberapa kolom sebagai kolom partisi, Anda bisa menggabungkan nilai setiap kolom sebagai satu kolom dalam kueri dan menentukannya sebagai kolom partisi, seperti SELECT * FROM (SELECT *, CONCAT(<KeyColumn1>, <KeyColumn2>) AS PARTITIONCOLUMN FROM <TABLENAME>) WHERE (?AdfHanaDynamicRangePartitionCondition).

Contoh: kueri dengan partisi fisik tabel

"source": {
    "type": "SapHanaSource",
    "partitionOption": "PhysicalPartitionsOfTable"
}

Contoh: kueri dengan partisi rentang dinamis

"source": {
    "type": "SapHanaSource",
    "query": "SELECT * FROM <TABLENAME> WHERE (?AdfHanaDynamicRangePartitionCondition) AND <your_additional_where_clause>",
    "partitionOption": "SapHanaDynamicRange",
    "partitionSettings": {
        "partitionColumnName": "<Partition_column_name>"
    }
}

Pemetaan jenis data untuk SAP Hana

Saat menyalin data dari SAP Hana, pemetaan berikut digunakan dari jenis data SAP Hana ke jenis data sementara yang digunakan secara internal dalam layanan. Lihat Pemetaan skema dan jenis data untuk mempelajari bagaimana aktivitas penyalinan memetakan skema sumber dan jenis data ke sink.

jenis data SAP Hana Jenis data layanan sementara
ALFANUM String
BIGINT Int64
Biner Byte[]
BINTEXT String
BLOB Byte[]
BOOL Byte
CLOB String
Tanggal DateTime (Tanggal dan Waktu)
DECIMAL Desimal
Gandakan Ganda
FLOAT Ganda
Bilangan Bulat Int32
NCLOB String
NVARCHAR String
Nyata Tunggal
Tanggal Kedua DateTime (Tanggal dan Waktu)
SHORTTEXT String
Desimal Kecil Desimal
SMALLINT Int16
STGEOMETRYTYPE Byte[]
STPOINTTYPE Byte[]
TEXT String
WAKTU TimeSpan
TINYINT Byte
VARCHAR String
TIMESTAMP DateTime (Tanggal dan Waktu)
VARBINARY Byte[]

penampung SAP Hana

Saat ini, konektor SAP Hana tidak didukung sebagai sink, sementara Anda dapat menggunakan konektor ODBC generik dengan driver SAP Hana untuk menulis data ke SAP Hana.

Ikuti Prerequisites untuk menyiapkan Integration Runtime yang dihost sendiri dan menginstal driver SAP Hana ODBC terlebih dahulu. Buat layanan tertaut ODBC untuk menyambungkan ke penyimpanan data SAP Hana Anda seperti yang ditunjukkan dalam contoh berikut, lalu buat himpunan data dan salin sink aktivitas dengan jenis ODBC yang sesuai. Pelajari selengkapnya dari artikel konektor ODBC .

{
    "name": "SAPHANAViaODBCLinkedService",
    "properties": {
        "type": "Odbc",
        "typeProperties": {
            "connectionString": "Driver={HDBODBC};servernode=<HANA server>.clouddatahub-int.net:30015",
            "authenticationType": "Basic",
            "userName": "<username>",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Properti aktivitas pencarian data

Untuk mempelajari detail tentang properti, lihat Aktivitas pencarian.

Untuk daftar penyimpanan data yang didukung sebagai sumber dan pengumpan oleh aktivitas penyalinan, lihat penyimpanan data yang didukung.