DataWorks menyediakan Oracle Reader dan Oracle Writer untuk membaca dari serta menulis ke sumber data Oracle. Anda dapat menggunakan antarmuka tanpa kode (UI) atau editor kode untuk mengonfigurasi tugas sinkronisasi data untuk sumber data Oracle. Topik ini menjelaskan kemampuan sinkronisasi data yang didukung untuk sumber data Oracle.
Versi yang didukung
Baca dan tulis data batch
Versi | Baca data batch (Oracle Reader) | Tulis data batch (Oracle Writer) |
Oracle 11.2 atau 11gR2 | Didukung | Didukung |
Oracle 12.1 atau 12cR1 | Didukung | Didukung |
Oracle 12.2 atau 12cR2 | Didukung (tanpa fitur baru) | Didukung (tanpa fitur baru) |
Oracle 18.3 | Didukung (tanpa fitur baru) | Didukung (tanpa fitur baru) |
Oracle 19.x | Didukung (tanpa fitur baru) | Didukung (tanpa fitur baru) |
Oracle 21.1 | Didukung (tanpa fitur baru) | Didukung (tanpa fitur baru) |
Plugin Oracle Writer menggunakan driver ojdbc6-12.1.1.jar.
Baca data real-time
Versi yang didukung:
11g R2 dan versi setelahnya,12c non-CDB,18c non-CDB,19c non-CDB, atau19c CDB.Versi yang tidak didukung:
12c CDBdan18c CDB.Untuk menggunakan database Oracle sebagai sumber dalam tugas sinkronisasi real-time seluruh database, Anda harus mengaktifkan fitur archive log. Untuk informasi lebih lanjut, lihat Siapkan lingkungan Oracle.
Container database (CDB) adalah fitur baru di Oracle 12c dan versi setelahnya. CDB dapat meng-host beberapa pluggable database (PDB).
Batasan
NLS_CHARACTERSETdanNLS_NCHAR_CHARACTERSETpada instans Oracle harus salah satu dari berikut:AL32UTF8,AL16UTF16,ZHS16GBK, atauUTF8.Untuk sinkronisasi real-time, satu instans Oracle mendukung hingga 500 GB data inkremental per hari.
DataWorks hanya mendukung pembacaan real-time dari database secondary Oracle fisik. Metode ini menarik archive log, sehingga menyebabkan latensi lebih tinggi dibandingkan sinkronisasi dari database primary. Latensi tersebut bergantung pada kecepatan pembuatan archive log.
Meskipun sinkronisasi real-time tidak mendukung view, sinkronisasi batch mendukung pembacaan dari view tersebut.
DataWorks menggunakan utilitas Oracle LogMiner untuk pembacaan data real-time. Untuk menyinkronkan data baik dari database primary maupun secondary, Anda harus mengaktifkan supplemental logging dan archive log pada database primary.
Tabel yang diorganisasi berdasarkan indeks (index-organized tables) tidak didukung.
Tabel yang hanya berisi kolom bertipe LOB (
BLOB,CLOB, atauNCLOB) tidak didukung.Nama tabel dan nama kolom Oracle yang mengandung karakter Tionghoa tidak didukung.
Nama tabel Oracle tidak boleh melebihi 30 byte.
Tipe data yang didukung
Tipe | Baca batch (Oracle Reader) | Tulis batch (Oracle Writer) | Baca real-time |
NUMBER | Didukung | Didukung | Didukung |
BINARY FLOAT | Didukung | Didukung | Didukung |
BINARY DOUBLE | Didukung | Didukung | Didukung |
CHAR | Didukung | Didukung | Didukung |
NCHAR | Didukung | Didukung | Didukung |
VARCHAR2 | Didukung | Didukung | Didukung |
NVARCHAR2 | Didukung | Didukung | Didukung |
DATE | Didukung | Didukung | Didukung |
TIMESTAMP | Didukung | Didukung | Didukung |
TIMESTAMP WITH TIME ZONE | Didukung | Didukung | Tidak didukung |
TIMESTAMP WITH LOCAL TIME ZONE | Didukung | Didukung | Tidak didukung |
CLOB | Didukung | Didukung | Didukung |
BLOB | Didukung | Didukung | Didukung |
RAW | Didukung | Didukung | Didukung |
ROWID | Tidak didukung | Tidak didukung | Didukung |
UROWID | Tidak didukung | Tidak didukung | Didukung |
FLOAT | Didukung | Didukung | Didukung |
INTERVAL DAY TO SECOND | Tidak didukung | Tidak didukung | Didukung |
INTERVAL YEAR TO MONTH | Tidak didukung | Tidak didukung | Didukung |
BFILE | Tidak didukung | Tidak didukung | Tidak didukung |
LONG | Tidak didukung | Tidak didukung | Tidak didukung |
LONG RAW | Tidak didukung | Tidak didukung | Tidak didukung |
NCLOB | Didukung | Didukung | Tidak didukung |
STRUCT | Didukung | Didukung | Tidak didukung |
user-defined types | Tidak didukung | Tidak didukung | Tidak didukung |
AnyType | Tidak didukung | Tidak didukung | Tidak didukung |
AnyData | Tidak didukung | Tidak didukung | Tidak didukung |
AnyDataSet | Tidak didukung | Tidak didukung | Tidak didukung |
XmlType | Tidak didukung | Tidak didukung | Tidak didukung |
spatial types | Tidak didukung | Tidak didukung | Tidak didukung |
media types | Tidak didukung | Tidak didukung | Tidak didukung |
Tabel berikut mengkategorikan tipe data Oracle untuk Oracle Reader.
Kategori | Tipe data Oracle |
integer | NUMBER, RAWID, INTEGER, INT, dan SMALLINT |
floating point | NUMERIC, DECIMAL, FLOAT, DOUBLE PRECISION, dan REAL |
string | LONG, CHAR, NCHAR, VARCHAR, VARCHAR2, NVARCHAR2, CLOB, NCLOB, CHARACTER, CHARACTER VARYING, CHAR VARYING, NATIONAL CHARACTER, NATIONAL CHAR, NATIONAL CHARACTER VARYING, NATIONAL CHAR VARYING, dan NCHAR VARYING |
date and time | TIMESTAMP dan DATE |
boolean | BIT dan BOOL |
binary | BLOB, BFILE, RAW, dan LONG RAW |
Siapkan lingkungan Oracle
Untuk menyinkronkan data dari Oracle menggunakan DataWorks, Anda harus terlebih dahulu menyiapkan lingkungan Anda. Topik ini menguraikan persiapan yang diperlukan agar tugas sinkronisasi data berjalan sesuai harapan.
Periksa versi database Oracle
Versi database Oracle yang didukung bervariasi tergantung skenario sinkronisasi. Sebelum menyinkronkan data, pastikan versi database Oracle Anda didukung.
Untuk memeriksa versi database Oracle Anda, jalankan salah satu pernyataan berikut.
Pernyataan 1:
select * from v$version;Pernyataan 2:
select version from v$instance;
Jika versi database Oracle Anda adalah
12catau18c, Anda perlu menggunakan pernyataan berikut untuk memastikan apakah database tersebut merupakan databasecdb. Saat ini, tugas sinkronisasi real-time Data Integration DataWorks tidak mendukung database Oraclecdbversi12catau18c.select name,cdb,open_mode,con_id from v$database;
Buat akun dan berikan hak istimewa
Buat akun database dengan hak istimewa yang diperlukan di Oracle.
Untuk detailnya, lihat Buat akun Oracle.
Berikan hak istimewa.
Jalankan perintah berikut untuk memberikan hak istimewa yang diperlukan kepada akun tersebut. Dalam pernyataan berikut, ganti
'synchronization account'dengan akun yang telah Anda buat.grant create session to 'synchronization account'; // Memberikan hak istimewa untuk login ke database. grant connect to 'synchronization account'; // Memberikan hak istimewa untuk terhubung ke database. grant select on nls_database_parameters to 'synchronization account'; // Memberikan hak istimewa untuk mengkueri konfigurasi sistem nls_database_parameters. grant select on all_users to 'synchronization account'; // Memberikan hak istimewa untuk mengkueri semua pengguna di database. grant select on all_objects to 'synchronization account'; // Memberikan hak istimewa untuk mengkueri semua objek di database. grant select on DBA_MVIEWS to 'synchronization account'; // Memberikan hak istimewa untuk melihat materialized view di database. grant select on DBA_MVIEW_LOGS to 'synchronization account'; // Memberikan hak istimewa untuk melihat log materialized view di database. grant select on DBA_CONSTRAINTS to 'synchronization account'; // Memberikan hak istimewa untuk melihat informasi constraint untuk semua tabel di database. grant select on DBA_CONS_COLUMNS to 'synchronization account'; // Memberikan hak istimewa untuk melihat informasi kolom dalam constraint tertentu untuk semua tabel di database. grant select on all_tab_cols to 'synchronization account'; // Memberikan hak istimewa untuk melihat informasi kolom dalam tabel, view, dan kluster. grant select on sys.obj$ to 'synchronization account'; // Memberikan hak istimewa untuk melihat objek di database. Tabel sys.obj$ adalah tabel dasar dalam kamus data Oracle yang menyimpan semua objek Oracle. grant select on SYS.COL$ to 'synchronization account'; // Memberikan hak istimewa untuk melihat definisi kolom dalam tabel database. SYS.COL$ menyimpan informasi definisi kolom. grant select on sys.USER$ to 'synchronization account'; // Memberikan hak istimewa untuk melihat tabel sistem sys.USER$, yang berisi detail tentang pengguna database. grant select on sys.cdef$ to 'synchronization account'; // Memberikan hak istimewa untuk melihat tabel sistem database. grant select on sys.con$ to 'synchronization account'; // Memberikan hak istimewa untuk melihat informasi constraint. sys.con$ mencatat informasi constraint Oracle. grant select on all_indexes to 'synchronization account'; // Memberikan hak istimewa untuk melihat semua indeks di database. grant select on v_$database to 'synchronization account'; // Memberikan hak istimewa untuk melihat view v_$database. grant select on V_$ARCHIVE_DEST to 'synchronization account'; // Memberikan hak istimewa untuk melihat view V_$ARCHIVE_DEST. grant select on v_$log to 'synchronization account'; // Memberikan hak istimewa untuk melihat view v_$log, yang menampilkan informasi file log dari control file. grant select on v_$logfile to 'synchronization account'; // Memberikan hak istimewa untuk melihat view v_$logfile, yang berisi informasi tentang file redo log. grant select on v_$archived_log to 'synchronization account'; // Memberikan hak istimewa untuk melihat view v$archived_log, yang berisi informasi tentang log arsip. grant select on V_$LOGMNR_CONTENTS to 'synchronization account'; // Memberikan hak istimewa untuk melihat view V_$LOGMNR_CONTENTS. grant select on DUAL to 'synchronization account'; // Memberikan hak istimewa untuk melihat tabel DUAL. DUAL adalah tabel virtual yang digunakan untuk memenuhi aturan sintaks SELECT. Di Oracle, DUAL hanya berisi satu catatan. grant select on v_$parameter to 'synchronization account'; // Memberikan hak istimewa untuk melihat view v_$parameter. v$parameter adalah tabel kamus data dinamis yang menyimpan pengaturan parameter database. grant select any transaction to 'synchronization account'; // Memberikan hak istimewa untuk melihat transaksi apa pun di database. grant execute on SYS.DBMS_LOGMNR to 'synchronization account'; // Memberikan hak istimewa untuk menggunakan tool LogMiner, yang membantu Anda menganalisis transaksi dan memulihkan data yang hilang. grant alter session to 'synchronization account'; // Memberikan hak istimewa untuk memodifikasi sesi database. grant select on dba_objects to 'synchronization account'; // Memberikan hak istimewa untuk melihat semua objek di database. grant select on v_$standby_log to 'synchronization account'; // Memberikan hak istimewa untuk melihat view v_$standby_log, yang berisi informasi tentang log arsip database standby. grant select on v_$ARCHIVE_GAP to 'synchronization account'; // Memberikan hak istimewa untuk mengkueri log arsip yang hilang. grant select on sys.ICOL$ to 'synchronization account'; // Memberikan hak istimewa untuk melihat informasi tentang kolom tabel yang diorganisasi berdasarkan indeks. grant select on V_$THREAD to 'synchronization account'; // Memberikan hak istimewa untuk melihat informasi thread instans. View V_$THREAD adalah tabel status thread dalam dynamic performance views Oracle. View ini menyimpan status thread setiap instans dalam kluster RAC dan digunakan selama penguraian inkremental untuk menentukan status instans dan sumber log.Untuk melakukan sinkronisasi offline penuh, jalankan juga pernyataan berikut untuk memberikan hak istimewa kepada akun sinkronisasi agar dapat mengkueri semua tabel.
grant select any table to 'synchronization account';Untuk Oracle 12c dan versi setelahnya, jalankan pernyataan berikut untuk memberikan hak istimewa log mining. Perintah ini tidak diperlukan untuk versi sebelum Oracle 12c karena log mining merupakan fitur bawaan.
grant LOGMINING TO 'synchronization account';
Aktifkan pencatatan log dan alihkan file redo log
Untuk mengaktifkan pencatatan log arsip, jalankan pernyataan SQL berikut:
shutdown immediate; startup mount; alter database archivelog; alter database open;Aktifkan supplemental logging.
Aktifkan supplemental logging di tingkat database atau tabel sesuai kebutuhan bisnis Anda:
// Aktifkan supplemental logging di tingkat database untuk menangkap semua perubahan data untuk sinkronisasi real-time. alter database add supplemental log data(primary key) columns; // Mengaktifkan supplemental logging untuk kolom kunci primer database. alter database add supplemental log data(unique) columns; // Mengaktifkan supplemental logging untuk kolom indeks unik database. // Atau, aktifkan supplemental logging di tingkat tabel: alter schema.table add supplemental log data(primary key) columns; // Mengaktifkan supplemental logging untuk kolom kunci primer tabel tertentu. alter schema.table add supplemental log data(unique) columns; // Mengaktifkan supplemental logging untuk kolom indeks unik tabel tertentu.Alihkan file redo log.
Setelah mengaktifkan supplemental logging, jalankan perintah berikut beberapa kali (disarankan lima kali) untuk mengalihkan file redo log.
alter system switch logfile;CatatanMenjalankan perintah ini beberapa kali memastikan bahwa pengaturan supplemental logging baru diterapkan ke semua file redo log, yang sangat penting untuk penangkapan dan pemulihan data secara lengkap.
Periksa encoding karakter database
Jalankan perintah berikut untuk memeriksa encoding karakter database Anda.
select * from v$nls_parameters where PARAMETER IN ('NLS_CHARACTERSET', 'NLS_NCHAR_CHARACTERSET');View v$nls_parameters menyimpan pengaturan parameter database.
NLS_CHARACTERSET dan NLS_NCHAR_CHARACTERSET masing-masing adalah set karakter database dan set karakter nasional. Keduanya menentukan encoding untuk data karakter di Oracle.
Sinkronisasi data DataWorks hanya mendukung encoding karakter UTF8, AL32UTF8, AL16UTF16, dan ZHS16GBK. Jika database Anda menggunakan encoding karakter yang tidak didukung, ubah terlebih dahulu sebelum melakukan sinkronisasi data.
Periksa tipe data tabel
Gunakan pernyataan SELECT untuk mengkueri tipe data suatu tabel. Contoh berikut menunjukkan cara mengkueri tipe data untuk tabel bernama 'tablename'.
select COLUMN_NAME,DATA_TYPE from all_tab_columns where TABLE_NAME='tablename'; COLUMN_NAME: nama kolom dalam tabel.
DATA_TYPE: tipe data kolom yang bersangkutan.
all_tab_columns: view yang menyimpan informasi tentang semua kolom dalam tabel database.
TABLE_NAME: nama tabel yang akan dikueri. Saat menjalankan pernyataan ini, ganti 'tablename' dengan nama tabel Anda.
Anda juga dapat menjalankan select * from 'tablename'; untuk mengkueri semua informasi dari tabel target dan mendapatkan tipe datanya.
Tambahkan sumber data
Sebelum mengembangkan tugas sinkronisasi di DataWorks, Anda harus menambahkan sumber data yang diperlukan ke DataWorks dengan mengikuti petunjuk di Manajemen sumber data. Anda dapat melihat deskripsi parameter di Konsol DataWorks untuk memahami arti parameter saat menambahkan sumber data.
Sinkronisasi data Oracle
Untuk informasi tentang titik masuk dan prosedur mengonfigurasi tugas sinkronisasi, lihat panduan konfigurasi berikut.
Sinkronisasi batch satu tabel
Lihat Konfigurasi Antarmuka Tanpa Kode dan Konfigurasi Mode Skrip.
Untuk daftar lengkap parameter dan contoh skrip, lihat Lampiran: Contoh Skrip dan Parameter.
Sinkronisasi real-time satu tabel
Lihat Konfigurasikan tugas sinkronisasi real-time di DataStudio.
Sinkronisasi seluruh database
Lihat Konfigurasikan sinkronisasi real-time seluruh database.
FAQ
Masalah pemulihan data selama sinkronisasi primary-secondary
Dalam pengaturan disaster recovery, database secondary terus-menerus memulihkan data dari database primary menggunakan binary logs. Karena adanya jeda waktu yang inheren dalam sinkronisasi, terutama dengan latensi jaringan, data di database secondary dapat berbeda signifikan dari database primary. Artinya, data yang disinkronkan bukan snapshot real-time yang lengkap.
Batasan konsistensi
Oracle adalah sistem manajemen database relasional (RDBMS) yang menyediakan konsistensi kuat untuk kueri. Misalnya, ketika tugas sinkronisasi dijalankan, Oracle Reader membaca dari snapshot database. Karena isolasi snapshot ini, Oracle Reader tidak mengambil data baru yang ditulis ke database setelah tugas dimulai.
Model single-threaded mempertahankan konsistensi ini. Jika Anda mengonfigurasi Oracle Reader untuk mengekstraksi data secara paralel, konsistensi kuat tidak dapat dijamin.
Ketika Oracle Reader melakukan sharding berdasarkan parameter splitPk, beberapa tugas paralel diluncurkan untuk menyelesaikan sinkronisasi data. Tugas-tugas ini tidak termasuk dalam transaksi baca yang sama dan dipisahkan oleh interval waktu. Akibatnya, data yang disinkronkan bukan snapshot yang lengkap dan konsisten.
Mencapai snapshot konsisten di beberapa thread secara teknis tidak layak. Solusi rekayasa berikut menawarkan kompromi. Pilih solusi yang paling sesuai dengan kebutuhan Anda.
Gunakan sinkronisasi single-threaded tanpa sharding. Pendekatan ini menjamin konsistensi tetapi lebih lambat.
Pastikan data statis dengan mencegah penulis lain mengaksesnya. Misalnya, Anda dapat menggunakan lock tabel atau menghentikan sementara sinkronisasi ke database secondary. Namun, hal ini dapat memengaruhi layanan online Anda.
Encoding database
Oracle Reader menggunakan Java Database Connectivity (JDBC) untuk mengekstraksi data. JDBC menangani berbagai encoding karakter dan melakukan konversi secara otomatis. Oleh karena itu, Anda tidak perlu menentukan encoding.
Cara kerja sinkronisasi data inkremental
Oracle Reader menggunakan pernyataan SELECT JDBC untuk mengekstraksi data. Anda dapat melakukan sinkronisasi data inkremental menggunakan klausa
SELECT…WHERE…dengan salah satu cara berikut:Untuk aplikasi online yang mengisi kolom timestamp untuk data baru, diperbarui, atau penghapusan logis, Anda dapat mengonfigurasi klausa WHERE untuk memfilter catatan berdasarkan timestamp sinkronisasi terakhir.
Untuk data append-only, Anda dapat menggunakan klausa WHERE untuk memfilter catatan dengan ID auto-increment yang lebih besar dari ID maksimum dari sinkronisasi sebelumnya.
Jika logika bisnis Anda tidak menyediakan kolom untuk membedakan data baru atau yang dimodifikasi, Oracle Reader tidak dapat melakukan sinkronisasi data inkremental dan harus menyinkronkan data penuh.
Keamanan SQL
Fitur querySql Oracle Reader memungkinkan Anda mendefinisikan pernyataan SELECT kustom untuk ekstraksi data. Oracle Reader tidak melakukan validasi keamanan apa pun pada pernyataan yang Anda berikan di querySql.
Lampiran: Contoh skrip dan parameter
Konfigurasikan tugas sinkronisasi batch menggunakan editor kode
Jika Anda ingin mengonfigurasi tugas sinkronisasi batch menggunakan editor kode, Anda harus mengonfigurasi parameter terkait dalam skrip berdasarkan persyaratan format skrip terpadu. Untuk informasi lebih lanjut, lihat Konfigurasi mode skrip. Informasi berikut menjelaskan parameter yang harus Anda konfigurasi untuk sumber data saat mengonfigurasi tugas sinkronisasi batch menggunakan editor kode.
Contoh skrip Reader
{
"type": "job",
"version": "2.0",
"steps": [
{
"stepType": "oracle",
"parameter": {
"selectedDatabase": "AUTOTEST",
"indexes": [],
"datasource": "oracle_test",
"envType": 0,
"useSpecialSecret": true,
"column": [
"id"
],
"where": "",
"splitPk": "id",
"encoding": "UTF-8",
"table": "AUTOTEST.table01"
},
"name": "Reader",
"category": "reader"
},
{
"stepType": "odps",
"parameter": {
},
"name": "Writer",
"category": "writer"
},
{
"name": "Processor",
"stepType": null,
"category": "processor",
"copies": 1,
"parameter": {
"nodes": [],
"edges": [],
"groups": [],
"version": "2.0"
}
}
],
"setting": {
"executeMode": null,
"errorLimit": {
"record": ""
},
"speed": {
"concurrent": 2,
"throttle": false
}
},
"order": {
"hops": [
{
"from": "Reader",
"to": "Writer"
}
]
}
}Parameter Reader
Parameter | Deskripsi | Wajib | Default |
datasource | Nama sumber data. Nama ini harus sesuai dengan nama sumber data yang Anda tambahkan di editor kode. | Ya | Tidak ada |
selectedDatabase | Skema database dari mana Anda ingin membaca data. | Ya | Tidak ada |
table | Nama tabel dari mana Anda ingin membaca data. Nama tabel harus dalam format Catatan Contohnya, jika | Ya | Tidak ada |
column | Kolom yang akan dibaca. Untuk membaca semua kolom, tentukan
| Ya | Tidak ada |
splitFactor | Faktor sharding, yang menentukan jumlah shard untuk sinkronisasi data. Jika Anda mengonfigurasi pemrosesan paralel, jumlah shard dihitung menggunakan rumus berikut: Jumlah thread paralel × faktor sharding. Misalnya, jika jumlah thread paralel adalah 5 dan faktor sharding adalah 5, data dibagi menjadi 25 shard dan diproses oleh 5 thread paralel. Catatan Disarankan nilai antara 1 hingga 100. Nilai lebih dari 100 dapat menyebabkan error kehabisan memori (OOM). | Tidak | 5 |
splitMode | Mode shard. Nilai yang valid:
Catatan Parameter
| Tidak | randomSampling |
splitPk | Saat Oracle Reader mengekstraksi data, jika Anda menentukan splitPk, artinya Anda ingin menggunakan field yang diwakili oleh splitPk untuk sharding data. Akibatnya, sinkronisasi data memulai tugas paralel, yang dapat meningkatkan efisiensinya.
Catatan Jika Anda membaca data dari view, Anda tidak dapat mengatur parameter | Tidak | Tidak ada |
where | Klausa WHERE yang digunakan untuk memfilter data. Reader membuat kueri SQL berdasarkan parameter
| Tidak | Tidak ada |
querySql (hanya tersedia di editor kode) | Dalam beberapa skenario, konfigurasi where tidak cukup untuk menggambarkan kondisi filter. Anda dapat menggunakan parameter ini untuk mendefinisikan kueri SQL kustom. Saat Anda mengonfigurasi parameter ini, sistem sinkronisasi data mengabaikan konfigurasi seperti table dan column dan langsung menggunakan isi parameter ini untuk memfilter data. Misalnya, untuk menyinkronkan data dari penggabungan beberapa tabel, gunakan kueri seperti | Tidak | Tidak ada |
fetchSize | Jumlah catatan yang diambil dari server database dalam setiap batch. Parameter ini menentukan jumlah interaksi jaringan antara Data Integration dan server database dan dapat secara signifikan meningkatkan kinerja ekstraksi data. Catatan Jika Anda mengatur parameter ini ke nilai lebih dari 2.048, error kehabisan memori (OOM) dapat terjadi selama sinkronisasi data. | Tidak | 1.024 |
Contoh skrip Writer
{
"type":"job",
"version":"2.0",// Nomor versi.
"steps":[
{
"stepType":"stream",
"parameter":{},
"name":"Reader",
"category":"reader"
},
{
"stepType":"oracle",// Nama plugin.
"parameter":{
"postSql":[],// Pernyataan SQL yang dieksekusi setelah tugas selesai.
"datasource":"",
"session":[],// Parameter untuk sesi koneksi database.
"column":[// Kolom tujuan.
"id",
"name"
],
"encoding":"UTF-8",// Format encoding.
"batchSize":1024,// Jumlah catatan yang dikirim dalam satu batch.
"table":"",// Nama tabel tujuan.
"preSql":[]// Pernyataan SQL yang dieksekusi sebelum tugas dimulai.
},
"name":"Writer",
"category":"writer"
}
],
"setting":{
"errorLimit":{
"record":"0"// Jumlah catatan error.
},
"speed":{
"throttle":true,// Mengaktifkan atau menonaktifkan pembatasan kecepatan. Jika false, parameter mbps diabaikan.
"concurrent":1, // Jumlah maksimum thread paralel.
"mbps":"12"// Laju maksimum untuk pembatasan kecepatan. Satuan: MB/s.
}
},
"order":{
"hops":[
{
"from":"Reader",
"to":"Writer"
}
]
}
}Parameter Writer
Parameter | Deskripsi | Wajib | Default |
datasource | Nama sumber data. Nama ini harus sesuai dengan nama sumber data yang Anda tambahkan di editor kode. | Ya | Tidak ada |
table | Nama tabel tujuan. Jika skema tabel berbeda dari username yang ditentukan dalam konfigurasi sumber data, Anda harus menentukan nama tabel dalam format | Ya | Tidak ada |
writeMode | Mode penulisan. Hanya | Tidak | insert into |
column | Kolom tujuan tempat Anda ingin menulis data. Tentukan kolom sebagai array JSON. Contohnya: | Ya | Tidak ada |
preSql | Pernyataan SQL yang dieksekusi sebelum tugas sinkronisasi data dimulai. Anda hanya dapat mengeksekusi satu pernyataan SQL di UI tanpa kode tetapi beberapa pernyataan SQL di editor kode. Misalnya, Anda dapat menentukan pernyataan SQL untuk menghapus data yang ada. | Tidak | Tidak ada |
postSql | Pernyataan SQL yang dieksekusi setelah tugas sinkronisasi data selesai. Anda hanya dapat mengeksekusi satu pernyataan SQL di UI tanpa kode tetapi beberapa pernyataan SQL di editor kode. Misalnya, Anda dapat menentukan pernyataan SQL untuk menambahkan timestamp. | Tidak | Tidak ada |
batchSize | Jumlah catatan yang ditulis dalam setiap batch. Parameter ini dapat secara signifikan mengurangi jumlah interaksi jaringan antara Data Integration dan Oracle serta meningkatkan throughput keseluruhan. Nilai yang terlalu besar dapat menyebabkan error OOM. | Tidak | 1.024 |