All Products
Search
Document Center

DataWorks:SAP HANA

Last Updated:Mar 01, 2026

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

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

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

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)

    Catatan

    Sharding 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: "column": ["id", "name", "age"].

Untuk menulis data ke semua kolom secara berurutan, gunakan tanda bintang (*). Contoh: "column":["*"].

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:

truncate table tablename
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: ALTER TABLE tablename ADD colname TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_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