Sumber data Oracle memungkinkan Anda membaca dari dan menulis ke database Oracle dengan mengonfigurasi Tugas Sinkronisasi Data melalui Antarmuka tanpa kode (Codeless UI) atau editor kode (Code Editor). Topik ini menjelaskan fitur-fitur DataWorks untuk sinkronisasi data Oracle.
Versi yang didukung
Baca dan tulis data batch
Versi | Oracle reader | Oracle writer |
Oracle 11.2 atau 11gR2 | Didukung | Didukung |
Oracle 12.1 atau 12cR1 | Didukung | Didukung |
Oracle 12.2 atau 12cR2 | Didukung (Fitur baru pada versi ini tidak didukung) | Didukung (Fitur baru pada versi ini tidak didukung) |
Oracle 18.3 | Didukung (Fitur baru pada versi ini tidak didukung) | Didukung (Fitur baru pada versi ini tidak didukung) |
Oracle 19.x | Didukung (Fitur baru pada versi ini tidak didukung) | Didukung (Fitur baru pada versi ini tidak didukung) |
Oracle 21.1 | Didukung (Fitur baru pada versi ini tidak didukung) | Didukung (Fitur baru pada versi ini tidak didukung) |
Plugin Oracle Writer menggunakan driver ojdbc6-12.1.1.jar.
Baca data real-time
Didukung:
Versi Oracle Database
11g R2 dan yang lebih baru,12c non-CDB,18c non-CDB,19c non-CDB, dan19c CDB.Tidak didukung:
Versi Oracle Database
12c CDBdan18c CDB.Untuk menggunakan Oracle sebagai Sumber dalam tugas sinkronisasi real-time seluruh database, Anda harus mengaktifkan fitur Archive Log. Untuk informasi selengkapnya, lihat Persiapkan lingkungan Oracle.
Container Database (CDB) adalah arsitektur baru yang diperkenalkan di Oracle Database 12c dan versi setelahnya. CDB dapat menampung satu atau lebih Pluggable Database (PDB).
Batasan
Parameter `
NLS_CHARACTERSET` dan `NLS_NCHAR_CHARACTERSET` untuk instans Oracle harus diatur ke salah satu nilai berikut: `AL32UTF8`, `AL16UTF16`, `ZHS16GBK`, atau `UTF8`.Untuk satu instans Oracle, Sinkronisasi Real-time mendukung hingga 500 GB data inkremental per hari.
Untuk pembacaan real-time dari database standby Oracle, DataWorks hanya mendukung database standby fisik. Dalam skenario ini, DataWorks menarik archive log, yang mengakibatkan latensi lebih tinggi dibandingkan sinkronisasi dari database utama. Kecepatan pembuatan archive log menentukan latensi tersebut.
Sinkronisasi Real-time tidak mendukung tampilan (view), sedangkan Sinkronisasi Batch mendukung pembacaan view.
DataWorks menggunakan Oracle LogMiner untuk pembacaan real-time. Anda harus mengaktifkan supplemental logging dan archive log pada database utama Oracle.
Tabel yang diorganisasi berdasarkan indeks (Index-organized tables/IOTs) tidak didukung.
Tabel yang semua kolomnya bertipe LOB (
BLOB,CLOB, atauNCLOB) tidak didukung.Nama tabel dan kolom tidak boleh mengandung karakter Tionghoa.
Nama tabel tidak boleh melebihi 30 byte.
Tipe data yang didukung
Tipe | Pembacaan batch | Penulisan batch | Pembacaan 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 ini menunjukkan pemetaan tipe data untuk Oracle Reader.
Kategori | Tipe data Oracle |
Integer | NUMBER, RAWID, INTEGER, INT, dan SMALLINT |
Bilangan titik mengambang | 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 |
Tanggal dan waktu | TIMESTAMP dan DATE |
Boolean | BIT dan BOOL |
Biner | BLOB, BFILE, RAW, dan LONG RAW |
Persiapkan lingkungan Oracle
Sebelum melakukan sinkronisasi data dari database Oracle dengan DataWorks, persiapkan lingkungan Oracle Anda. Persiapan ini memastikan bahwa tugas Sinkronisasi Data Anda berjalan lancar. Topik ini menjelaskan konfigurasi yang diperlukan untuk database Oracle sumber.
Verifikasi versi database Oracle
Versi Oracle Database yang didukung bergantung pada jenis tugas sinkronisasi. Sebelum memulai, 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 adalah
12catau18c, Anda perlu menggunakan pernyataan berikut untuk memastikan apakah database tersebut merupakan database tipecdb. Saat ini, tugas sinkronisasi real-time Data Integration DataWorks tidak mendukung database Oracle tipecdbversi12catau18c.select name,cdb,open_mode,con_id from v$database;
Buat akun dan berikan izin
Buat akun pengguna database untuk Sinkronisasi Data. Akun ini memerlukan izin tertentu.
Buat akun. Untuk informasi selengkapnya, lihat Buat akun untuk mengakses database Oracle.
Berikan izin.
Anda dapat menjalankan perintah berikut untuk memberikan izin yang relevan kepada suatu akun. Saat menjalankan perintah, ganti
'sync_account'dengan akun yang telah Anda buat di atas.grant create session to 'your_sync_user'; -- Memberikan izin login. grant connect to 'your_sync_user'; -- Memberikan izin untuk terhubung ke database. grant select on nls_database_parameters to 'your_sync_user'; -- Memberikan izin untuk mengkueri konfigurasi sistem nls_database_parameters. grant select on all_users to 'your_sync_user'; -- Memberikan izin untuk mengkueri semua pengguna dalam database. grant select on all_objects to 'your_sync_user'; -- Memberikan izin untuk mengkueri semua objek dalam database. grant select on DBA_MVIEWS to 'your_sync_user'; -- Memberikan izin untuk melihat semua materialized view dalam database. grant select on DBA_MVIEW_LOGS to 'your_sync_user'; -- Memberikan izin untuk melihat log materialized view. grant select on DBA_CONSTRAINTS to 'your_sync_user'; -- Memberikan izin untuk melihat informasi constraint untuk semua tabel. grant select on DBA_CONS_COLUMNS to 'your_sync_user'; -- Memberikan izin untuk melihat informasi kolom dalam constraint. grant select on all_tab_cols to 'your_sync_user'; -- Memberikan izin untuk melihat informasi kolom untuk semua tabel, view, dan kluster. grant select on sys.obj$ to 'your_sync_user'; -- Memberikan izin untuk melihat objek database. Tabel sys.obj$ adalah tabel dasar untuk objek dalam kamus data Oracle. grant select on SYS.COL$ to 'your_sync_user'; -- Memberikan izin untuk melihat informasi definisi kolom. SYS.COL$ menyimpan definisi kolom. grant select on sys.USER$ to 'your_sync_user'; -- Memberikan izin untuk melihat tabel pengguna sistem. sys.USER$ menyimpan informasi tentang pengguna database. grant select on sys.cdef$ to 'your_sync_user'; -- Memberikan izin untuk melihat tabel sistem cdef$. grant select on sys.con$ to 'your_sync_user'; -- Memberikan izin untuk melihat informasi constraint. sys.con$ menyimpan informasi constraint. grant select on all_indexes to 'your_sync_user'; -- Memberikan izin untuk melihat semua indeks dalam database. grant select on v_$database to 'your_sync_user'; -- Memberikan izin untuk mengakses view v_$database. grant select on V_$ARCHIVE_DEST to 'your_sync_user'; -- Memberikan izin untuk mengakses view V_$ARCHIVE_DEST. grant select on v_$log to 'your_sync_user'; -- Memberikan izin untuk mengakses view v_$log, yang menampilkan informasi file log dari control file. grant select on v_$logfile to 'your_sync_user'; -- Memberikan izin untuk mengakses view v_$logfile, yang berisi informasi tentang file redo log. grant select on v_$archived_log to 'your_sync_user'; -- Memberikan izin untuk mengakses view v$archived_log, yang berisi informasi tentang log terarsip. grant select on V_$LOGMNR_CONTENTS to 'your_sync_user'; -- Memberikan izin untuk mengakses view V_$LOGMNR_CONTENTS. grant select on DUAL to 'your_sync_user'; -- Memberikan izin untuk mengakses tabel DUAL, sebuah tabel virtual yang digunakan untuk memenuhi aturan sintaks SELECT. grant select on v_$parameter to 'your_sync_user'; -- Memberikan izin untuk mengakses view v_$parameter, yang menyimpan pengaturan parameter. grant select any transaction to 'your_sync_user'; -- Memberikan izin untuk mengkueri transaksi apa pun. grant execute on SYS.DBMS_LOGMNR to 'your_sync_user'; -- Memberikan izin untuk menggunakan utilitas DBMS_LOGMNR untuk analisis transaksi dan pemulihan data. grant alter session to 'your_sync_user'; -- Memberikan izin untuk memodifikasi sesi database. grant select on dba_objects to 'your_sync_user'; -- Memberikan izin untuk melihat semua objek database. grant select on v_$standby_log to 'your_sync_user'; -- Memberikan izin untuk mengakses view v_$standby_log, yang berisi file log database standby. grant select on v_$ARCHIVE_GAP to 'your_sync_user'; -- Memberikan izin untuk mengkueri log terarsip yang hilang. grant select on sys.ICOL$ to 'your_sync_user'; -- Memberikan izin untuk melihat informasi kolom internal dalam tabel sistem ICOL$. grant select on V$THREAD to 'your_sync_user'; -- Memberikan izin untuk melihat informasi thread instans. View V$THREAD digunakan untuk menentukan status instans dan sumber log selama penguraian inkremental.Untuk Sinkronisasi Penuh Batch, jalankan juga perintah berikut untuk memberikan izin kueri pada semua tabel.
grant select any table to 'your_sync_user';Untuk Oracle 12c dan versi setelahnya, jalankan perintah berikut untuk memberikan izin Log Mining. Perintah ini tidak diperlukan untuk versi sebelumnya karena fitur Log Mining sudah termasuk secara bawaan.
grant LOGMINING TO 'your_sync_user';
Aktifkan log dan alihkan file redo log
Aktifkan Archive Logging. Jalankan pernyataan SQL berikut:
shutdown immediate; startup mount; alter database archivelog; alter database open;Aktifkan Supplemental Logging.
Pilih tingkat Supplemental Logging yang sesuai. Jalankan pernyataan SQL berikut.
-- Untuk menangkap perubahan data lengkap untuk sinkronisasi real-time, Anda harus mengaktifkan supplemental logging. -- Anda dapat mengaktifkannya di tingkat database: alter database add supplemental log data(primary key) columns; -- Mengaktifkan supplemental logging untuk semua kolom kunci primer di database. alter database add supplemental log data(unique) columns; -- Mengaktifkan supplemental logging untuk semua kolom indeks unik di database. -- Atau, Anda dapat mengaktifkannya 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 lima kali untuk mengalihkan File Redo Log.
alter system switch logfile;CatatanMenjalankan perintah ini beberapa kali akan mengisi file log saat ini hingga penuh, sehingga memaksa pergantian ke file berikutnya. Hal ini mencegah kehilangan catatan transaksi dan menyederhanakan pemulihan data.
Periksa encoding karakter database
Jalankan perintah berikut di database Anda untuk memeriksa encoding karakternya.
select * from v$nls_parameters where PARAMETER IN ('NLS_CHARACTERSET', 'NLS_NCHAR_CHARACTERSET');v$nls_parameters menyimpan nilai parameter database.
NLS_CHARACTERSET adalah set karakter database, dan NLS_NCHAR_CHARACTERSET adalah set karakter nasional. Keduanya menentukan tipe penyimpanan untuk dua kategori utama data karakter di Oracle.
Saat ini, Sinkronisasi Data hanya mendukung encoding UTF8, AL32UTF8, AL16UTF16, dan ZHS16GBK. Jika database Anda menggunakan encoding karakter yang tidak didukung, Anda harus mengubahnya sebelum melakukan sinkronisasi data.
Periksa tipe data tabel
Anda dapat menggunakan pernyataan SELECT untuk mengkueri tipe data kolom dalam suatu tabel. Contoh ini menunjukkan cara melihat 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 target. Ganti 'tablename' dengan nama tabel aktual 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.
Tugas sinkronisasi data Oracle
Untuk informasi tentang titik masuk dan prosedur konfigurasi tugas sinkronisasi, lihat panduan konfigurasi berikut.
Tugas sinkronisasi batch tabel tunggal
Lihat Konfigurasikan tugas di antarmuka tanpa kode dan Konfigurasikan tugas di editor kode.
Untuk daftar lengkap parameter dan contoh skrip untuk Editor Kode, lihat Lampiran: Contoh Skrip dan Referensi Parameter.
Tugas sinkronisasi real-time tabel tunggal
Lihat Konfigurasikan tugas sinkronisasi real-time di DataStudio.
Sinkronisasi seluruh database: batch, real-time, dan sharding
Lihat Konfigurasikan tugas sinkronisasi real-time seluruh database.
Pertanyaan yang sering diajukan
Pemulihan data dalam sinkronisasi utama/sekunder
Masalah sinkronisasi utama/sekunder dapat terjadi ketika Anda menggunakan database Oracle dalam konfigurasi pemulihan bencana utama-sekunder. Jika database Utama gagal dan sistem beralih ke database Sekunder, database Sekunder terus memulihkan data dari database utama menggunakan binlog. Selisih waktu inheren dalam sinkronisasi data, ditambah faktor seperti latensi jaringan, dapat menyebabkan perbedaan signifikan antara data di database Utama dan Sekunder. Dalam kasus seperti ini, data yang disinkronkan bukanlah snapshot lengkap dari database Utama pada saat itu.
Batasan konsistensi
Oracle adalah sistem manajemen database relasional (RDBMS) yang menyediakan konsistensi kuat untuk kueri data. Misalnya, saat tugas sinkronisasi sedang berjalan, Oracle Reader tidak mengambil data baru yang ditulis oleh klien lain. Hal ini disebabkan oleh fitur snapshot bawaan database.
Perilaku ini memastikan konsistensi untuk sinkronisasi data dalam model single-thread. Jika Oracle Reader dikonfigurasi untuk mengekstraksi data secara konkuren, konsistensi data yang ketat tidak dapat dijamin.
Ketika Oracle Reader menggunakan parameter splitPk untuk melakukan sharding data, sistem meluncurkan beberapa tugas konkuren untuk menyelesaikan sinkronisasi data. Tugas-tugas ini tidak berada dalam transaksi baca yang sama dan dijalankan dengan interval tertentu. Akibatnya, data yang disinkronkan tidak merepresentasikan snapshot data yang lengkap dan konsisten.
Mencapai snapshot konsisten dalam konteks multi-threaded saat ini belum memungkinkan dan memerlukan solusi teknis tambahan. Solusi tersebut melibatkan pertukaran (trade-off). Pertimbangkan pendekatan berikut berdasarkan kebutuhan spesifik Anda.
Gunakan sinkronisasi single-thread tanpa sharding data. Metode ini menjamin konsistensi tetapi lebih lambat.
Cegah klien lain menulis ke database agar data tetap statis. Anda dapat melakukannya dengan menerapkan penguncian tabel atau menonaktifkan sinkronisasi database sekunder. Namun, pendekatan ini dapat berdampak pada layanan online Anda.
Masalah encoding database
Oracle Reader menggunakan Java Database Connectivity (JDBC) untuk mengekstraksi data. JDBC secara otomatis menangani dan mengonversi berbagai encoding karakter. Oleh karena itu, Anda tidak perlu menentukan encoding untuk Oracle Reader, karena sistem secara otomatis mendeteksi dan mengonversi encoding yang benar.
Metode sinkronisasi data inkremental
Oracle Reader menggunakan pernyataan JDBC
SELECTuntuk mengekstraksi data. Anda dapat melakukan sinkronisasi data inkremental dengan menggunakan klausaSELECT…WHERE…dalam kueri Anda. Pertimbangkan metode berikut:Jika aplikasi Anda mengisi bidang
modifydengan timestamp untuk semua operasi insert, update, dan delete logis, Anda dapat mengonfigurasi Oracle Reader untuk menggunakan klausaWHEREyang memfilter catatan dengan timestamp lebih baru daripada sinkronisasi sebelumnya.Untuk aliran data append-only yang menggunakan ID auto-increment, Anda dapat mengonfigurasi Oracle Reader dengan klausa
WHEREyang memfilter catatan dengan ID lebih besar daripada ID maksimum dari sinkronisasi sebelumnya.
Jika model data Anda tidak memiliki bidang untuk membedakan catatan baru atau yang dimodifikasi, Oracle Reader tidak dapat melakukan sinkronisasi data inkremental. Dalam skenario ini, Anda harus melakukan sinkronisasi data penuh.
Keamanan SQL
Fitur querySql Oracle Reader memungkinkan Anda menulis pernyataan
SELECTkustom untuk ekstraksi data. Perhatikan bahwa Oracle Reader tidak memvalidasi keamanan SQL yang diteruskan ke parameter 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 selengkapnya, lihat Gunakan editor kode. 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 skrip Reader
Parameter | Deskripsi | Wajib | Bawaan |
datasource | Nama sumber data. Anda dapat menambahkan sumber data dalam mode skrip. Nilai parameter ini harus sama dengan nama sumber data yang ditambahkan. | Ya | Tidak ada |
selectedDatabase | Skema database yang akan disinkronkan. | Ya | Tidak ada |
table | Nama tabel dari mana Anda ingin membaca data. Anda harus menentukan tabel dalam format Catatan Contohnya, jika nilai selectedDatabase adalah | Ya | Tidak ada |
column | Kolom yang ingin Anda sinkronkan dari tabel yang ditentukan. Nilainya harus berupa array JSON. Secara default, semua kolom disinkronkan. Contoh: ["*"].
| Ya | Tidak ada |
splitFactor | Faktor pemisahan. Anda dapat mengonfigurasi jumlah shard untuk sinkronisasi data. Jika Anda mengonfigurasi beberapa thread konkuren, data akan dibagi menjadi jumlah shard sebesar Jumlah thread konkuren × splitFactor. Misalnya, jika jumlah thread konkuren adalah 5 dan splitFactor adalah 5, data akan dibagi menjadi 25 shard (5 × 5 = 25) dan diproses oleh lima thread konkuren. Catatan Kami menyarankan Anda mengatur parameter ini ke nilai antara 1 hingga 100. Nilai yang terlalu besar dapat menyebabkan error OOM. | Tidak | 5 |
splitMode | Mode pemisahan. Nilai yang valid:
Catatan Parameter splitMode harus digunakan bersama dengan parameter splitPk.
| Tidak | randomSampling |
splitPk | Saat Oracle Reader membaca data, jika Anda menentukan parameter splitPk, data akan di-shard berdasarkan field yang ditentukan. Tugas sinkronisasi data akan memulai sub-tugas konkuren untuk menyinkronkan data, yang meningkatkan efisiensi sinkronisasi data.
Catatan Field splitPK tidak boleh berupa ROWID dalam view. | Tidak | Tidak ada |
where | Kondisi filter. Oracle Reader menggabungkan parameter column, table, dan where yang ditentukan menjadi pernyataan SQL dan membaca data berdasarkan pernyataan tersebut. Misalnya, Anda dapat mengatur kondisi where ke row_number() untuk pengujian.
| Tidak | Tidak ada |
querySql (hanya didukung dalam mode skrip) | Dalam beberapa skenario bisnis, parameter where tidak cukup untuk menggambarkan kondisi filter. Anda dapat menggunakan parameter ini untuk menyesuaikan pernyataan SQL filter. Setelah Anda mengonfigurasi parameter ini, sistem sinkronisasi data akan mengabaikan parameter seperti table dan column, serta langsung menggunakan isi parameter ini untuk memfilter data. Misalnya, jika Anda perlu menyinkronkan data setelah penggabungan beberapa tabel, gunakan | Tidak | Tidak ada |
fetchSize | Parameter ini menentukan jumlah catatan data yang diambil dalam satu batch dari server database. Parameter ini menentukan jumlah interaksi jaringan antara sistem sinkronisasi data dan server, serta dapat secara signifikan meningkatkan kinerja pembacaan data. Catatan Jika nilai fetchSize terlalu besar (> 2048), error OOM dapat terjadi dalam proses 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 plug-in.
"parameter":{
"postSql":[],// Pernyataan SQL yang akan dieksekusi setelah tugas sinkronisasi data.
"datasource":"",
"session":[],// Parameter sesi untuk koneksi database.
"column":[// Field.
"id",
"name"
],
"encoding":"UTF-8",// Format encoding.
"batchSize":1024,// Jumlah catatan yang dikirim dalam satu batch.
"table":"",// Nama tabel.
"preSql":[]// Pernyataan SQL yang akan dieksekusi sebelum tugas sinkronisasi data.
},
"name":"Writer",
"category":"writer"
}
],
"setting":{
"errorLimit":{
"record":"0"// Jumlah catatan data kotor.
},
"speed":{
"throttle":true,// Jika nilai throttle adalah false, parameter mbps tidak berlaku dan trafik tidak dibatasi. Jika nilai throttle adalah true, trafik dibatasi.
"concurrent":1, // Jumlah thread konkuren.
"mbps":"12"// Laju pembatasan. 1 mbps = 1 MB/s.
}
},
"order":{
"hops":[
{
"from":"Reader",
"to":"Writer"
}
]
}
}Parameter skrip Writer
Parameter | Deskripsi | Wajib | Bawaan |
datasource | Nama sumber data. Anda dapat menambahkan sumber data dalam mode skrip. Nilai parameter ini harus sama dengan nama sumber data yang ditambahkan. | Ya | Tidak ada |
table | Nama tabel tujuan. Jika skema tabel berbeda dari username yang Anda konfigurasi, tentukan tabel dalam format schema.table. | Ya | Tidak ada |
writeMode | Mode impor. Hanya INSERT INTO yang didukung. Jika terjadi konflik kunci primer atau indeks unik, baris yang bertentangan tidak dapat ditulis dan diproses sebagai data kotor. | Tidak | insert into |
column | Kolom tempat Anda ingin menulis data di tabel tujuan. Pisahkan kolom dengan koma (,), misalnya | Ya | Tidak ada |
preSql | Pernyataan SQL yang ingin Anda eksekusi sebelum tugas sinkronisasi dijalankan. Dalam mode wizard, Anda hanya dapat mengeksekusi satu pernyataan SQL. Dalam mode skrip, Anda dapat mengeksekusi beberapa pernyataan SQL. Misalnya, Anda dapat mengeksekusi pernyataan SQL untuk menghapus data yang ada. | Tidak | Tidak ada |
postSql | Pernyataan SQL yang ingin Anda eksekusi setelah tugas sinkronisasi selesai. Dalam mode wizard, Anda hanya dapat mengeksekusi satu pernyataan SQL. Dalam mode skrip, Anda dapat mengeksekusi beberapa pernyataan SQL. Misalnya, Anda dapat menambahkan timestamp. | Tidak | Tidak ada |
batchSize | Jumlah catatan yang dikirim dalam satu batch. Nilai yang lebih besar dapat mengurangi jumlah interaksi jaringan antara sistem sinkronisasi data dan Oracle serta meningkatkan throughput. Namun, jika nilainya terlalu besar, error out of memory (OOM) dapat terjadi dalam proses sinkronisasi data. | Tidak | 1.024 |