Sumber data SAP HANA memungkinkan Anda membaca dan menulis data ke SAP HANA. Topik ini menjelaskan kemampuan sinkronisasi data untuk SAP HANA di DataWorks.
Versi yang didukung
Versi SAP HANA berikut ini didukung:
DataBase 2.00.048.06.1623425628
DataBase 2.00.055.00.161
Batasan
Offline sync mendukung pembacaan data dari view.
Sumber data ini mendukung serverless resource groups (direkomendasikan) dan exclusive resource groups for Data Integration.
Tipe bidang yang didukung
Tabel berikut mencantumkan tipe data yang dapat dikonversi oleh SAP HANA Reader.
Kategori tipe | Tipe data sumber data |
Integer | INT, TINYINT, SMALLINT, MEDIUMINT, dan BIGINT |
Floating-point | FLOAT, DOUBLE, dan DECIMAL |
String | VARCHAR, CHAR, TINYTEXT, TEXT, MEDIUMTEXT, dan LONGTEXT |
Date and time | DATE, DATETIME, TIMESTAMP, TIME, dan YEAR |
Boolean | BIT dan BOOL |
Binary | TINYBLOB, MEDIUMBLOB, BLOB, LONGBLOB, dan VARBINARY |
Tipe data yang tidak tercantum dalam tabel tidak didukung.
Plugin SAP HANA Reader memperlakukan tinyint(1) sebagai integer.
Tambahkan sumber data
Sebelum mengembangkan task sinkronisasi di DataWorks, Anda harus menambahkan sumber data yang diperlukan ke DataWorks dengan mengikuti petunjuk di Data source management. Anda dapat melihat deskripsi parameter di Konsol DataWorks untuk memahami arti parameter saat menambahkan sumber data.
Kembangkan task sinkronisasi data
Untuk informasi tentang titik masuk dan prosedur konfigurasi task sinkronisasi, lihat panduan konfigurasi berikut.
Konfigurasikan task offline sync untuk satu tabel
Untuk informasi lebih lanjut, lihat Configure a task in the codeless UI dan Configure a task in the code editor.
Untuk semua parameter dan contoh skrip untuk editor kode, lihat Appendix: Script demo and parameter descriptions.
Lampiran: Contoh skrip dan deskripsi parameter
Konfigurasikan task sinkronisasi batch menggunakan editor kode
Jika ingin mengonfigurasi task sinkronisasi batch menggunakan editor kode, Anda harus mengatur parameter terkait dalam skrip sesuai dengan persyaratan format skrip terpadu. Untuk informasi lebih lanjut, lihat Configure a task in the code editor. Informasi berikut menjelaskan parameter yang harus Anda konfigurasikan untuk sumber data saat mengatur task sinkronisasi batch menggunakan editor kode.
Contoh skrip Reader
Konfigurasikan satu tabel dalam satu database
{ "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;"], // Tulis pernyataan querySql sebagai string dalam koneksi. "datasource":"",// Sumber data. "table":[// Nama tabel. Anda harus menulis nama tabel dalam format array [] meskipun hanya ada satu tabel. "xxx" ] } ], "where":"",// Kondisi filter. "splitPk":"",// Kunci pemisahan. "encoding":"UTF-8"// Format encoding. }, "name":"Reader", "category":"reader" }, { "stepType":"stream", "parameter":{}, "name":"Writer", "category":"writer" } ], "setting":{ "errorLimit":{ "record":"0"// Jumlah catatan error. }, "speed":{ "throttle":true,// Jika Anda mengatur throttle ke false, parameter mbps tidak berlaku dan tidak ada batas laju. Jika Anda mengatur throttle ke true, batas laju diterapkan. "concurrent":1, // Jumlah pekerjaan konkuren. "mbps":"12"// Batas laju. 1 mbps setara dengan 1 MB/s. } }, "order":{ "hops":[ { "from":"Reader", "to":"Writer" } ] } }Konfigurasikan tabel terpartisi (sharded tables)
CatatanSharding memungkinkan Anda membaca data dari beberapa tabel SAP HANA menggunakan SAP HANA Reader. Skema tabel-tabel tersebut harus 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 skrip Reader
Parameter | Deskripsi |
username | Username. |
password | Password. |
column | Nama bidang yang akan disinkronkan. Untuk menyinkronkan semua kolom, gunakan tanda bintang (*). Catatan Jika nama bidang di SAP HANA Reader mengandung garis miring (/), Anda harus membungkus nama bidang tersebut dengan tanda kutip ganda dan melakukan escape tanda kutip tersebut dengan backslash (\). Misalnya, jika nama bidang adalah /abc/efg, atur nilainya menjadi \"/abc/efg\". |
table | Nama tabel yang akan disinkronkan. |
jdbcUrl | URL Java Database Connectivity (JDBC) yang digunakan untuk menghubungkan ke database HANA. Contoh: jdbc:sap://127.0.0.1:30215?currentschema=TEST. |
splitPk | Bidang dalam tabel HANA yang digunakan sebagai kunci pemisahan (split key) untuk sinkronisasi data. Kunci pemisahan membantu menyinkronkan tabel HANA secara konkuren. Kunci pemisahan harus berupa bidang integer numerik. Jika tidak ada bidang seperti itu, Anda dapat mengosongkan parameter ini. |
Contoh skrip Writer
Kode berikut memberikan contoh konfigurasi skrip.
{
"type":"job",
"version":"2.0",// Nomor versi.
"steps":[
{
"stepType":"stream",
"parameter":{},
"name":"Reader",
"category":"reader"
},
{
"stepType":"saphana",// Nama plugin.
"parameter":{
"postSql":[],// Pernyataan SQL yang dieksekusi setelah data diimpor.
"datasource":"",// Sumber data.
"column":[// Nama kolom.
"id",
"value"
],
"batchSize":1024,// Jumlah catatan yang dikomit dalam satu batch.
"table":"",// Nama tabel.
"preSql":[
"delete from XXX;" // Pernyataan SQL yang dieksekusi sebelum data diimpor.
]
},
"name":"Writer",
"category":"writer"
}
],
"setting":{
"errorLimit":{// Jumlah catatan error.
"record":"0"
},
"speed":{
"throttle":true,// Jika Anda mengatur throttle ke false, parameter mbps tidak berlaku dan tidak ada batas laju. Jika Anda mengatur throttle ke true, batas laju diterapkan.
"concurrent":1, // Jumlah pekerjaan konkuren.
"mbps":"12"// Batas laju. 1 mbps setara dengan 1 MB/s.
}
},
"order":{
"hops":[
{
"from":"Reader",
"to":"Writer"
}
]
}
}Parameter skrip Writer
Parameter | Deskripsi | Wajib | Nilai default |
datasource | Nama sumber data. Nilainya harus sama dengan nama sumber data yang Anda tambahkan di editor kode. | Ya | Tidak ada |
table | Nama tabel untuk sinkronisasi. | Ya | Tidak ada |
column | Bidang dalam tabel tujuan tempat Anda ingin menulis data. Pisahkan bidang dengan koma (,). Contoh: Untuk menulis data ke semua kolom secara berurutan, gunakan tanda bintang (*). Contoh: Catatan Jika nama bidang sumber mengandung garis miring (/), bungkus nama tersebut dengan tanda kutip ganda dan lakukan escape dengan backslash (\). Misalnya, jika nama bidang adalah /abc/efg, tentukan \"/abc/efg\". | Ya | Tidak ada |
preSql | Pernyataan SQL yang dieksekusi sebelum task sinkronisasi data dimulai. Di Antarmuka tanpa kode, Anda hanya dapat mengeksekusi satu pernyataan SQL. Di editor kode, Anda dapat mengeksekusi beberapa pernyataan SQL. Misalnya, Anda dapat menjalankan pernyataan berikut untuk menghapus data lama dari tabel sebelum sinkronisasi: Catatan Jika Anda menentukan beberapa pernyataan SQL, atomicitas transaksi tidak didukung. | Tidak | Tidak ada |
postSql | Pernyataan SQL yang dieksekusi setelah task sinkronisasi data selesai. Di Antarmuka tanpa kode, Anda hanya dapat mengeksekusi satu pernyataan SQL. Di editor kode, Anda dapat mengeksekusi beberapa pernyataan SQL. Misalnya, Anda dapat menambahkan timestamp: | Tidak | Tidak ada |
batchSize | Jumlah catatan yang dikomit dalam satu batch. Nilai yang lebih besar dapat secara signifikan mengurangi jumlah interaksi jaringan antara sistem sinkronisasi data dan sumber data, serta meningkatkan throughput keseluruhan. Jika nilai ini terlalu besar, error kehabisan memori (OOM) dapat terjadi dalam proses sinkronisasi data. | Tidak | 1024 |