全部产品
Search
文档中心

DataWorks:Sumber data SAP HANA

更新时间:Jul 02, 2025

DataWorks menyediakan SAP HANA Reader dan SAP HANA Writer untuk membaca data dari dan menulis data ke sumber data SAP HANA. Topik ini menjelaskan cara menyinkronkan data dari atau ke sumber data SAP HANA.

Versi yang didukung

Berikut adalah versi SAP HANA yang didukung:

  • Database2.00.048.06.1623425628

  • DataBase2.00.055.00.161

Batasan

Pemetaan tipe data

Tabel berikut mencantumkan pemetaan tipe data berdasarkan konversi oleh SAP HANA Reader.

Kategori

Tipe data SAP HANA

Integer

INT, TINYINT, SMALLINT, MEDIUMINT, dan BIGINT

Floating point

FLOAT, DOUBLE, dan DECIMAL

String

VARCHAR, CHAR, TINYTEXT, TEXT, MEDIUMTEXT, dan LONGTEXT

Tanggal dan waktu

DATE, DATETIME, TIMESTAMP, TIME, dan YEAR

Boolean

BIT dan BOOLEAN

Biner

TINYBLOB, MEDIUMBLOB, BLOB, LONGBLOB, dan VARBINARY

Penting
  • Tipe data yang tidak tercantum dalam tabel di atas tidak didukung.

  • SAP HANA Reader memproses TINYINT(1) sebagai tipe data integer.

Tambahkan sumber data

Sebelum mengembangkan tugas sinkronisasi di DataWorks, Anda harus menambahkan sumber data yang diperlukan ke DataWorks dengan mengikuti petunjuk di Tambahkan dan Kelola Sumber Data. Anda dapat melihat tip informasi parameter di konsol DataWorks untuk memahami arti parameter saat menambahkan sumber data.

Mengembangkan tugas sinkronisasi data

Untuk informasi tentang titik masuk dan prosedur konfigurasi tugas sinkronisasi, lihat panduan konfigurasi berikut.

Konfigurasikan tugas sinkronisasi batch untuk menyinkronkan data tabel tunggal

Lampiran: Kode dan parameter

Konfigurasikan tugas sinkronisasi batch menggunakan editor kode

Jika ingin mengonfigurasi tugas sinkronisasi batch menggunakan editor kode, Anda harus mengonfigurasi parameter terkait dalam skrip sesuai dengan persyaratan format skrip terpadu. Untuk informasi lebih lanjut, lihat Konfigurasikan Tugas Sinkronisasi Batch Menggunakan Editor Kode. Informasi berikut menjelaskan parameter yang harus dikonfigurasi untuk sumber data saat mengonfigurasi tugas sinkronisasi batch menggunakan editor kode.

Kode untuk SAP HANA Reader

  • Konfigurasikan tugas sinkronisasi untuk membaca data dari tabel yang tidak di-sharding

    {
        "type":"job",
        "version":"2.0",// Nomor versi. 
        "steps":[
            {
                "stepType":"saphana",// Nama plugin. 
                "parameter":{
                    "column":[// Nama kolom. 
                        "id"
                    ],
                    "connection":[
                        {   "querySql":["select a,b from join1 c join join2 d on c.id = d.id;"], // Pernyataan SQL yang digunakan untuk membaca data dari tabel sumber. 
                            "datasource":"", // Nama sumber data. 
                            "table":[// Nama tabel sumber. Nama tabel harus diapit tanda kurung []. 
                                "xxx"
                            ]
                        }
                    ],
                    "where":"",// Klausul WHERE. 
                    "splitPk":"", // Kunci sharding. 
                    "encoding":"UTF-8"// Format encoding. 
                },
                "name":"Reader",
                "category":"reader"
            },
            {
                "stepType":"stream",
                "parameter":{},
                "name":"Writer",
                "category":"writer"
            }
        ],
        "setting":{
            "errorLimit":{
                "record":"0"// Jumlah maksimum catatan data kotor yang diizinkan. 
            },
            "speed":{
                "throttle":true,// Menentukan apakah akan mengaktifkan throttling. Nilai false menunjukkan bahwa throttling dinonaktifkan, dan nilai true menunjukkan bahwa throttling diaktifkan. Parameter mbps hanya berlaku ketika parameter throttle disetel ke true. 
                "concurrent":1, // Jumlah maksimum thread paralel. 
                "mbps":"12"// Kecepatan transmisi maksimum. Unit: MB/s. 
            }
        },
        "order":{
            "hops":[
                {
                    "from":"Reader",
                    "to":"Writer"
                }
            ]
        }
    }
  • Konfigurasikan tugas sinkronisasi untuk membaca data dari tabel SAP HANA di database bersharding

    Catatan

    Saat mengonfigurasi tugas sinkronisasi untuk membaca data dari tabel SAP HANA di database bersharding, Anda dapat memilih beberapa tabel SAP HANA yang memiliki skema yang sama.

    {
        "type": "job",
        "version": "1.0",
        "configuration": {
            "reader": {
                "plugin": "saphana",
                "parameter": {
                    "connection": [
                        {
                            "table": [
                                "tbl1",
                                "tbl2",
                                "tbl3"
                            ],
                            "datasource": "datasourceName1"
                        },
                        {
                            "table": [
                                "tbl4",
                                "tbl5",
                                "tbl6"
                            ],
                            "datasource": "datasourceName2"
                        }
                    ],
                    "singleOrMulti": "multi",
                    "splitPk": "db_id",
                    "column": [
                        "id", "name", "age"
                    ],
                    "where": "1 < id and id < 100"
                }
            },
            "writer": {            
            }
        }
    }

Parameter dalam kode untuk SAP HANA Reader

Parameter

Deskripsi

username

Nama pengguna yang digunakan untuk masuk ke database SAP HANA.

password

Kata sandi yang digunakan untuk masuk ke database SAP HANA.

column

Nama kolom dari mana Anda ingin membaca data. Untuk membaca data dari semua kolom di tabel sumber, atur parameter ini ke asterisk (*).

Catatan

Jika nama kolom yang ingin Anda tentukan mengandung garis miring (/), Anda harus menentukan nama kolom dalam format \"nama_kolom_anda\" untuk escaping. Misalnya, jika nama kolom adalah /abc/efg, itu harus ditentukan sebagai \"/abc/efg\".

table

Nama tabel dari mana Anda ingin membaca data.

jdbcUrl

URL JDBC yang digunakan untuk terhubung ke SAP HANA. Contoh: jdbc:sap://127.0.0.1:30215?currentschema=TEST.

splitPk

Bidang yang digunakan untuk sharding data saat SAP HANA Reader membaca data. Jika Anda mengonfigurasi parameter ini, tabel sumber di-shard berdasarkan nilai parameter ini. Data Integration kemudian menjalankan thread paralel untuk membaca data.

Anda dapat menentukan bidang tipe data integer untuk parameter splitPk. Jika tabel sumber tidak mengandung bidang tipe data integer, Anda dapat membiarkan parameter ini kosong.

Kode untuk SAP HANA Writer

Dalam kode berikut, tugas sinkronisasi dikonfigurasi untuk menulis data ke database SAP HANA:

{
    "type":"job",
    "version":"2.0",// Nomor versi. 
    "steps":[
        {
            "stepType":"stream",
            "parameter":{},
            "name":"Reader",
            "category":"reader"
        },
        {
            "stepType":"saphana",// Nama plugin. 
            "parameter":{
                "postSql":[],// Pernyataan SQL yang ingin Anda jalankan setelah tugas sinkronisasi dijalankan. 
                "datasource":"", // Nama sumber data. 
                "column":[// Nama kolom. 
                    "id",
                    "value"
                ],
                "batchSize":1024,// Jumlah catatan data yang ditulis sekaligus. 
                "table":"",// Nama tabel ke mana Anda ingin menulis data. 
                "preSql":[
                     "delete from XXX;" // Pernyataan SQL yang ingin Anda jalankan sebelum tugas sinkronisasi dijalankan. 
                   ]
            },
            "name":"Writer",
            "category":"writer"
        }
    ],
    "setting":{
        "errorLimit":{// Jumlah maksimum catatan data kotor yang diizinkan. 
            "record":"0"
        },
        "speed":{
            "throttle":true,// Menentukan apakah akan mengaktifkan throttling. Nilai false menunjukkan bahwa throttling dinonaktifkan, dan nilai true menunjukkan bahwa throttling diaktifkan. Parameter mbps hanya berlaku ketika parameter throttle disetel ke true. 
            "concurrent":1, // Jumlah maksimum thread paralel. 
            "mbps":"12"// Kecepatan transmisi maksimum. Unit: MB/s. 
        }
    },
    "order":{
        "hops":[
            {
                "from":"Reader",
                "to":"Writer"
            }
        ]
    }
}

Parameter dalam kode untuk SAP HANA Writer

Parameter

Deskripsi

Diperlukan

Nilai default

datasource

Nama sumber data. Harus sama dengan nama sumber data yang telah ditambahkan. Anda dapat menambahkan sumber data menggunakan editor kode.

Ya

Tidak ada nilai default

table

Nama tabel ke mana Anda ingin menulis data.

Ya

Tidak ada nilai default

column

Nama kolom ke mana Anda ingin menulis data. Pisahkan nama dengan koma (,), seperti "column": ["id", "name", "age"].

Jika Anda ingin menulis data ke semua kolom di tabel tujuan, atur parameter ini ke asterisk (*), seperti "column":["*"].

Catatan

Jika nama kolom sumber yang Anda tentukan mengandung garis miring (/), Anda harus melarikan nama kolom dalam format \"nama_kolom_anda\" menggunakan backslash (\). Misalnya, jika nama kolom adalah /abc/efg, itu harus dilari sebagai \"/abc/efg\".

Ya

Tidak ada nilai default

preSql

Pernyataan SQL yang ingin Anda jalankan sebelum tugas sinkronisasi batch dijalankan. Anda hanya dapat menjalankan satu pernyataan SQL pada UI tanpa kode dan beberapa pernyataan SQL di editor kode. Sebagai contoh, Anda dapat mengatur parameter ini ke pernyataan SQL berikut yang digunakan untuk menghapus data usang:

truncate table tablename
Catatan

Jika Anda menentukan beberapa pernyataan SQL, tidak dapat dipastikan apakah semua pernyataan tersebut dapat berhasil dieksekusi.

Tidak

Tidak ada nilai default

postSql

Pernyataan SQL yang ingin Anda jalankan setelah tugas sinkronisasi dijalankan. Anda hanya dapat menjalankan satu pernyataan SQL pada UI tanpa kode dan beberapa pernyataan SQL di editor kode. Sebagai contoh, Anda dapat mengatur parameter ini ke pernyataan SQL alter table tablenameadd colname timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP yang digunakan untuk menambahkan cap waktu.

Tidak

Tidak ada nilai default

batchSize

Jumlah catatan data yang ditulis sekaligus. Atur parameter ini ke nilai yang sesuai berdasarkan kebutuhan bisnis Anda. Ini sangat mengurangi interaksi antara Data Integration dan SAP HANA serta meningkatkan throughput. Jika Anda mengatur parameter ini ke nilai yang terlalu besar, kesalahan OOM mungkin terjadi selama sinkronisasi data.

Tidak

1024