DataWorks menyediakan FTP Reader dan FTP Writer untuk membaca data dari serta menulis data ke sumber data FTP. Topik ini menjelaskan kemampuan sinkronisasi data dari atau ke sumber data FTP.
Batasan
FTP Reader terhubung ke server FTP jarak jauh, membaca data dari server tersebut, lalu mengonversi format data menjadi format yang dapat dibaca oleh Data Integration. File di server FTP hanya menyimpan data tidak terstruktur. Tabel berikut mencantumkan fitur yang didukung dan tidak didukung oleh FTP Reader:
Didukung | Tidak Didukung |
|
|
FTP Writer mengonversi data yang diperoleh dari reader menjadi file dan menulis file tersebut ke server FTP. File di server FTP hanya menyimpan data tidak terstruktur. Tabel berikut mencantumkan fitur yang didukung dan tidak didukung oleh FTP Writer:
Didukung | Tidak Didukung |
|
|
Pemetaan Tipe Data
File FTP jarak jauh tidak membedakan antara tipe data. Tipe data ditentukan oleh FTP Reader.
Tipe Data Integrasi Data | Tipe Data dalam File FTP |
LONG | LONG |
DOUBLE | DOUBLE |
STRING | STRING |
BOOLEAN | BOOLEAN |
DATE | DATE |
Tambahkan Sumber Data
Kembangkan Tugas Sinkronisasi Data
Untuk informasi tentang titik masuk dan prosedur konfigurasi tugas sinkronisasi data, lihat bagian berikut.
Konfigurasikan Tugas Sinkronisasi Batch untuk Menyinkronkan Data dari Satu Tabel
Untuk informasi lebih lanjut tentang prosedur konfigurasi, lihat Konfigurasikan Tugas Sinkronisasi Batch Menggunakan UI Tanpa Kode dan Konfigurasikan Tugas Sinkronisasi Batch Menggunakan Editor Kode.
Untuk informasi tentang semua parameter yang dikonfigurasi dan kode yang dijalankan saat menggunakan editor kode untuk mengonfigurasi tugas sinkronisasi batch, lihat Lampiran: Kode dan Parameter.
Lampiran: Kode dan Parameter
Konfigurasikan Tugas Sinkronisasi Batch Menggunakan Editor Kode
Kode untuk FTP Reader
{
"type":"job",
"version":"2.0",// Nomor versi.
"steps":[
{
"stepType":"ftp",// Nama plugin.
"parameter":{
"path":[],// Jalur file.
"nullFormat":"",// String yang mewakili pointer kosong.
"compress":"",// Format kompresi file.
"datasource":"",// Nama sumber data.
"column":[// Nama kolom.
{
"index":0,// ID kolom.
"type":""// Tipe data.
}
],
"skipHeader":"",// Menentukan apakah akan melewati header dalam file jika file memiliki header.
"fieldDelimiter":",",// Pemisah kolom.
"encoding":"UTF-8",// Format pengkodean.
"fileFormat":"csv"// Format file.
},
"name":"Reader",
"category":"reader"
},
{
"stepType":"stream",
"parameter":{},
"name":"Writer",
"category":"writer"
}
],
"setting":{
"errorLimit":{
"record":"0"// Jumlah maksimum catatan data kotor yang diizinkan.
},
"speed":{
"throttle":true,// Menentukan apakah akan mengaktifkan throttling. Nilai false menunjukkan bahwa throttling dinonaktifkan, dan nilai true menunjukkan bahwa throttling diaktifkan. Parameter mbps hanya berlaku ketika parameter throttle disetel ke true.
"concurrent":1 // Jumlah maksimum thread paralel.
"mbps":"12",// Kecepatan transmisi maksimum. Unit: MB/s.
}
},
"order":{
"hops":[
{
"from":"Reader",
"to":"Writer"
}
]
}
}Parameter dalam Kode untuk FTP Reader
Parameter | Deskripsi | Diperlukan | Nilai Default |
datasource | Nama sumber data. Harus sama dengan nama sumber data yang telah ditambahkan. Anda dapat menambahkan sumber data menggunakan editor kode. | Ya | Tidak ada nilai default |
path | Jalur pada server FTP dari mana Anda ingin membaca data. Jalur harus berupa jalur lengkap yang berisi jalur direktori tempat file yang diinginkan disimpan dan berisi nama file dengan akhiran. Anda dapat menentukan beberapa jalur.
Catatan
| Ya | Tidak ada nilai default |
column | Kolom dari mana Anda ingin membaca data. Parameter type menentukan tipe data kolom. Parameter index menentukan ID kolom dalam tabel sumber, dimulai dari 0. Parameter value menentukan nilai kolom jika kolom adalah kolom konstan. Secara default, FTP Reader membaca semua data sebagai string. Dalam hal ini, atur parameter ini ke Dalam parameter column, Anda harus mengonfigurasi parameter type dan mengonfigurasi salah satu dari parameter index dan value. | Ya | Tidak ada nilai default |
fieldDelimiter | Pemisah kolom yang digunakan dalam file dari mana Anda ingin membaca data. Catatan Anda harus menentukan pemisah kolom untuk FTP Reader. Pemisah default adalah koma (,). Jika Anda tidak menentukan pemisah kolom, pemisah kolom default digunakan. | Ya | , |
skipHeader | Menentukan apakah akan melewati header dalam file mirip CSV jika file memiliki header. Parameter skipHeader tidak didukung untuk file terkompresi. Nilai default parameter ini adalah false, yang menunjukkan bahwa FTP Reader tidak melewati header dalam file mirip CSV. | Tidak | false |
encoding | Format pengkodean file yang ingin Anda tulis ke server FTP. | Tidak | utf-8 |
nullFormat | String yang mewakili pointer kosong. Tidak ada string standar yang dapat mewakili pointer kosong dalam file TXT. Anda dapat menggunakan parameter ini untuk mendefinisikan string yang mewakili pointer kosong. Contoh:
| Tidak | Tidak ada nilai default |
markDoneFileName | Nama file yang digunakan untuk menunjukkan bahwa tugas sinkronisasi dapat dimulai. Data Integration memeriksa apakah file tersebut ada sebelum sinkronisasi data. Jika file tidak ada, Data Integration memeriksa lagi nanti. Data Integration hanya memulai tugas sinkronisasi setelah file terdeteksi. | Tidak | Tidak ada nilai default |
maxRetryTime | Jumlah maksimum percobaan ulang untuk deteksi file jika tidak ada file yang terdeteksi. Secara default, maksimal 60 percobaan ulang diizinkan. Data Integration mendeteksi file setiap 1 menit. Seluruh proses berlangsung selama 60 menit. | Tidak | 60 |
csvReaderConfig | Konfigurasi yang diperlukan untuk membaca file CSV. Nilai parameter harus sesuai dengan tipe MAP. Anda dapat menggunakan pembaca file CSV untuk membaca data dari file CSV. Pembaca file CSV mendukung beberapa konfigurasi. | Tidak | Tidak ada nilai default |
fileFormat | Format file. Secara default, FTP Reader membaca data dari file CSV. Data dalam file CSV harus berupa tabel dua dimensi logis. Jika Anda menentukan binary sebagai format file, data dikonversi ke format biner untuk replikasi dan transmisi. Anda perlu mengonfigurasi parameter ini hanya jika Anda ingin mereplikasi struktur direktori lengkap antara sistem penyimpanan seperti FTP dan Object Storage Service (OSS). | Tidak | Tidak ada nilai default |
Kode untuk FTP Writer
{
"type":"job",
"version":"2.0",// Nomor versi.
"steps":[
{
"stepType":"stream",
"parameter":{},
"name":"Reader",
"category":"reader"
},
{
"stepType":"ftp",// Nama plugin.
"parameter":{
"path":"",// Direktori pada server FTP ke mana Anda ingin menulis file.
"fileName":"",// Awalan nama file yang ingin Anda tulis ke server FTP.
"nullFormat":"null",// String yang mewakili pointer kosong.
"dateFormat":"yyyy-MM-dd HH:mm:ss",// Format waktu.
"datasource":"",// Nama sumber data.
"writeMode":"",// Mode penulisan.
"fieldDelimiter":",",// Pemisah kolom.
"encoding":"",// Format pengkodean.
"fileFormat":""// Format penulisan file oleh FTP Writer.
},
"name":"Writer",
"category":"writer"
}
],
"setting":{
"errorLimit":{
"record":"0"// Jumlah maksimum catatan data kotor yang diizinkan.
},
"speed":{
"throttle":true,// Menentukan apakah akan mengaktifkan throttling. Nilai false menunjukkan bahwa throttling dinonaktifkan, dan nilai true menunjukkan bahwa throttling diaktifkan. Parameter mbps hanya berlaku ketika parameter throttle disetel ke true.
"concurrent":1, // Jumlah maksimum thread paralel.
"mbps":"12"// Kecepatan transmisi maksimum. Unit: MB/s.
}
},
"order":{
"hops":[
{
"from":"Reader",
"to":"Writer"
}
]
}
}Parameter dalam Kode untuk FTP Writer
Parameter | Deskripsi | Diperlukan | Nilai Default |
datasource | Nama sumber data. Harus sama dengan nama sumber data yang telah ditambahkan. Anda dapat menambahkan sumber data menggunakan editor kode. | Ya | Tidak ada nilai default |
timeout | Periode timeout untuk koneksi ke server FTP. Unit: milidetik. | Tidak | 60.000 |
path | Direktori pada server FTP ke mana Anda ingin menulis file. FTP Writer menggunakan thread paralel untuk menulis beberapa file ke direktori berdasarkan pengaturan paralelisme. | Ya | Tidak ada nilai default |
fileName | Awalan nama file yang ingin Anda tulis ke server FTP. Akhiran acak ditambahkan ke nama file untuk membentuk nama file sebenarnya yang digunakan oleh setiap thread. | Ya | Tidak ada nilai default |
singleFileOutput | Menentukan apakah akan menambahkan akhiran acak ke nama file yang ingin Anda tulis ke server FTP. Nama file yang ditulis oleh FTP Writer ke server FTP terkait dengan nilai parameter fileName. Jika Anda tidak memerlukan akhiran acak, atur parameter singleFileOutput ke true. Dalam hal ini, FTP Writer menulis file ke server FTP menggunakan awalan nama file. | Tidak | false |
writeMode | Mode penulisan file oleh FTP Writer. Nilai valid:
| Ya | Tidak ada nilai default |
fieldDelimiter | Pemisah kolom yang digunakan dalam file yang ingin Anda tulis ke server FTP. Pemisah harus berupa satu karakter. | Ya | Tidak ada nilai default |
skipHeader | Menentukan apakah akan melewati header dalam file mirip CSV jika file memiliki header. Secara default, header tidak dilewati. Parameter skipHeader tidak tersedia untuk file terkompresi. | Tidak | false |
compress | Format kompresi file yang ingin Anda tulis ke server FTP. Nilai valid: gzip dan bzip2. | Tidak | Bukan nilai default |
encoding | Format pengkodean file yang ingin Anda tulis ke server FTP. | Tidak | utf-8 |
nullFormat | String yang mewakili pointer kosong. Tidak ada string standar yang dapat mewakili pointer kosong dalam file teks. Anda dapat menggunakan parameter ini untuk mendefinisikan string mana yang mewakili pointer kosong. Sebagai contoh, jika Anda menyetel | Tidak | Tidak ada nilai default |
dateFormat | Format serialisasi data tipe DATE dalam file, seperti "dateFormat":"yyyy-MM-dd". | Tidak | Tidak ada nilai default |
fileFormat | Format penulisan file ke server FTP. Nilai valid: CSV dan TEXT. Jika file ditulis sebagai file CSV, file tersebut harus mengikuti spesifikasi CSV. Jika data dalam file berisi pemisah kolom, pemisah kolom tersebut di-escape dengan tanda kutip ganda ("). Jika file ditulis sebagai file TXT, data dalam file dipisahkan oleh pemisah kolom. Dalam hal ini, pemisah kolom tidak di-escape. | Tidak | TEXT |
header | Header tabel jika file ditulis sebagai file TXT atau CSV, seperti ["id","name","age"]. Ini menunjukkan bahwa bidang id, name, dan age ditulis ke file CSV sebagai baris pertama. | Tidak | Tidak ada nilai default |
markDoneFileName |
| Tidak | Tidak ada nilai default |