All Products
Search
Document Center

DataWorks:SAP HANA

Last Updated:Aug 21, 2026

Sumber data SAP HANA memungkinkan Anda membaca dan menulis data ke SAP HANA di DataWorks.

Versi yang didukung

  • DataBase 2.00.048.06.1623425628

  • DataBase 2.00.055.00.161

Batasan

Tipe bidang yang didukung

SAP HANA Reader mendukung tipe data berikut.

Kategori tipe Tipe data
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 BOOL
Biner TINYBLOB, MEDIUMBLOB, BLOB, LONGBLOB, dan VARBINARY
Penting

Tipe data yang tidak tercantum di atas tidak didukung. SAP HANA Reader memperlakukan tinyint(1) sebagai integer.

Tambahkan sumber data

Tambahkan SAP HANA sebagai sumber data di DataWorks sebelum mengembangkan tugas sinkronisasi. Untuk petunjuknya, lihat Data source management.

Catatan

Deskripsi parameter tersedia langsung di Konsol DataWorks saat Anda menambahkan sumber data.

Catatan

Saat mengonfigurasi sumber data SAP HANA, parameter koneksi JDBC seperti socketTimeout tidak diterima di bidang Advanced parameters, yang hanya mendukung subset properti driver seperti connectTimeout dan useSSL. Untuk mengatur parameter tersebut, tambahkan ke nilai Database name dalam format dbname?key=value. Misalnya, atur Database name menjadi testdb?socketTimeout=60000, yang menghasilkan URL JDBC jdbc:sap://<host>:<port>/testdb?socketTimeout=60000.

Kembangkan tugas sinkronisasi data

Konfigurasikan tugas offline sync untuk satu tabel

Gunakan Antarmuka tanpa kode atau editor kode untuk mengonfigurasi tugas:

Untuk semua parameter skrip dan contoh skrip, lihat Lampiran: Contoh skrip dan deskripsi parameter.

Lampiran: Contoh skrip dan deskripsi parameter

Bagian berikut menjelaskan parameter skrip Reader dan Writer untuk tugas sinkronisasi batch yang dikonfigurasi di editor kode. Untuk persyaratan format skrip, lihat Konfigurasikan tugas di editor kode.

Contoh skrip Reader

Semua contoh Reader menggunakan "stepType": "saphana" untuk mengidentifikasi plugin SAP HANA.

Tabel tunggal dalam satu database

{
    "type": "job",
    "version": "2.0",
    "steps": [
        {
            "stepType": "saphana",
            "parameter": {
                "column": [
                    "id"
                ],
                "connection": [
                    {
                        "querySql": ["select a,b from join1 c join join2 d on c.id = d.id;"],
                        "datasource": "",
                        "table": [
                            "xxx"
                        ]
                    }
                ],
                "where": "",
                "splitPk": "",
                "encoding": "UTF-8"
            },
            "name": "Reader",
            "category": "reader"
        },
        {
            "stepType": "stream",
            "parameter": {},
            "name": "Writer",
            "category": "writer"
        }
    ],
    "setting": {
        "errorLimit": {
            "record": "0"
        },
        "speed": {
            "throttle": true,
            "concurrent": 1,
            "mbps": "12"
        }
    },
    "order": {
        "hops": [
            {
                "from": "Reader",
                "to": "Writer"
            }
        ]
    }
}

Tabel terpartisi (sharded tables)

Pemartisian (sharding) memungkinkan SAP HANA Reader membaca data dari beberapa tabel SAP HANA. Semua tabel terpartisi harus 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 skrip Reader

Parameter Deskripsi Wajib Nilai default
username Username untuk database SAP HANA. Ya Tidak ada
password Password untuk database SAP HANA. Ya Tidak ada
column Kolom yang akan disinkronkan. Gunakan * untuk menyinkronkan semua kolom. Jika nama kolom berisi garis miring (/), bungkus dengan tanda kutip ganda dan escape tanda kutip tersebut dengan backslash. Misalnya, untuk kolom bernama /abc/efg, atur nilainya menjadi \\"/abc/efg\\". Ya Tidak ada
table Nama tabel yang akan disinkronkan. Tentukan nilainya sebagai array, bahkan untuk satu tabel. Ya Tidak ada
jdbcUrl URL Java Database Connectivity (JDBC) untuk database SAP HANA. Contoh: jdbc:sap://127.0.0.1:30215?currentschema=TEST. Parameter koneksi JDBC tambahan seperti socketTimeout dapat ditambahkan, misalnya jdbc:sap://127.0.0.1:30215?currentschema=TEST&socketTimeout=60000. Ya Tidak ada
splitPk Kolom integer numerik yang digunakan sebagai kunci pemisah (split key) untuk sinkronisasi konkuren. Jika tidak ada kolom semacam itu, biarkan kosong. Tidak Tidak ada

Contoh skrip Writer

{
    "type": "job",
    "version": "2.0",
    "steps": [
        {
            "stepType": "stream",
            "parameter": {},
            "name": "Reader",
            "category": "reader"
        },
        {
            "stepType": "saphana",
            "parameter": {
                "postSql": [],
                "datasource": "",
                "column": [
                    "id",
                    "value"
                ],
                "batchSize": 1024,
                "table": "",
                "preSql": [
                    "delete from XXX;"
                ]
            },
            "name": "Writer",
            "category": "writer"
        }
    ],
    "setting": {
        "errorLimit": {
            "record": "0"
        },
        "speed": {
            "throttle": true,
            "concurrent": 1,
            "mbps": "12"
        }
    },
    "order": {
        "hops": [
            {
                "from": "Reader",
                "to": "Writer"
            }
        ]
    }
}

Parameter skrip Writer

Parameter Deskripsi Wajib Nilai default
datasource Nama sumber data. Harus sesuai dengan nama yang dikonfigurasi di editor kode. Ya Tidak ada
table Nama tabel tujuan. Ya Tidak ada
column Kolom tujuan tempat data akan ditulis, ditentukan sebagai array. Contoh: ["id", "name", "age"]. Gunakan ["*"] untuk menulis ke semua kolom secara berurutan. Jika nama kolom berisi garis miring (/), bungkus dengan tanda kutip ganda dan escape tanda kutip tersebut dengan backslash. Misalnya, untuk kolom bernama /abc/efg, atur nilainya menjadi \\"/abc/efg\\". Ya Tidak ada
preSql Pernyataan SQL yang dijalankan sebelum tugas sinkronisasi dimulai. Gunakan ini untuk membersihkan data lama sebelum memuat data baru. Contoh: truncate table tablename. Di Antarmuka tanpa kode, hanya satu pernyataan yang didukung. Di editor kode, beberapa pernyataan didukung, tetapi atomicitas transaksi tidak didukung. Tidak Tidak ada
postSql Pernyataan SQL yang dijalankan setelah tugas sinkronisasi selesai. Di Antarmuka tanpa kode, hanya satu pernyataan yang didukung. Di editor kode, beberapa pernyataan didukung. Contoh: 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 mengurangi jumlah round-trip jaringan dan meningkatkan throughput, tetapi pengaturan yang terlalu tinggi dapat menyebabkan error kehabisan memori (OOM). Tidak 1024