Sumber data FTP menyediakan saluran dua arah untuk membaca data dari dan menulis data ke server FTP. Topik ini menjelaskan kemampuan sinkronisasi data sumber data FTP di DataWorks.
Batasan
FTP Reader membaca data dari file FTP jarak jauh dan mengonversinya ke dalam format yang dibutuhkan oleh protokol sinkronisasi data. Karena file FTP jarak jauh pada dasarnya tidak terstruktur, FTP Reader mendukung fitur-fitur berikut untuk sinkronisasi data:
Dukungan | Tidak didukung |
|
|
FTP Writer mengonversi data dari format yang dibutuhkan oleh protokol integrasi data dan menuliskannya ke file FTP. Karena file FTP pada dasarnya tidak terstruktur, FTP Writer mendukung fitur-fitur berikut:
Dukungan | Tidak didukung |
|
|
Tipe bidang yang didukung
File FTP jarak jauh tidak memiliki tipe data native. Oleh karena itu, tipe bidang yang tercantum dalam bagian ini didefinisikan oleh DataX FtpReader.
Tipe internal DataX | Tipe data file FTP remote |
LONG | LONG |
DOUBLE | DOUBLE |
STRING | STRING |
BOOLEAN | BOOLEAN |
DATE | DATE |
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 mengenai titik masuk dan prosedur konfigurasi task sinkronisasi, lihat panduan konfigurasi berikut.
Panduan konfigurasi task sinkronisasi offline single-table
Untuk informasi lebih lanjut, lihat Konfigurasikan task sinkronisasi di Antarmuka tanpa kode dan Konfigurasikan task sinkronisasi di editor kode.
Untuk demo skrip dan deskripsi parameter konfigurasi task di editor kode, lihat Lampiran: Demo skrip dan deskripsi parameter.
Lampiran: Demo 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 format skrip terpadu. Untuk informasi lebih lanjut, lihat Konfigurasikan task di editor kode. Informasi berikut menjelaskan parameter yang perlu Anda konfigurasi untuk sumber data saat mengatur task sinkronisasi batch menggunakan editor kode.
Demo skrip Reader
{
"type":"job",
"version":"2.0",// Nomor versi.
"steps":[
{
"stepType":"ftp",// Nama plugin.
"parameter":{
"path":[],// Jalur file.
"nullFormat":"",// Nilai null.
"compress":"",// Format kompresi.
"datasource":"",// Sumber data.
"column":[// Bidang.
{
"index":0,// Nomor seri.
"type":""// Tipe bidang.
}
],
"skipHeader":"",// Menentukan apakah file berisi header tabel.
"fieldDelimiter":",",// Pemisah kolom.
"encoding":"UTF-8",// Format encoding.
"fileFormat":"csv"// Jenis file teks.
},
"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 batasan laju. Jika Anda mengatur throttle ke true, batasan laju diterapkan.
"concurrent":1, // Jumlah pekerjaan konkuren.
"mbps":"12"// Batasan laju. 1 mbps setara dengan 1 MB/s.
}
},
"order":{
"hops":[
{
"from":"Reader",
"to":"Writer"
}
]
}
}Parameter skrip Reader
Parameter | Deskripsi | Wajib | Nilai default |
datasource | Nama sumber data. Editor kode mendukung penambahan sumber data. Nilai parameter ini harus sama dengan nama sumber data yang telah ditambahkan. | Ya | Tidak ada |
path | Jalur dan nama file dalam sistem file FTP remote. Tentukan jalur lengkap yang mencakup nama file dan ekstensinya. Anda dapat menentukan beberapa jalur.
Catatan
| Ya | Tidak ada |
column | Daftar bidang yang akan dibaca. type menentukan tipe data sumber. index menentukan nomor kolom bidang dalam file teks. Nilai index dimulai dari 0. value menentukan bahwa bidang saat ini adalah konstanta. Data tidak dibaca dari file sumber. Sebaliknya, kolom yang sesuai dihasilkan secara otomatis berdasarkan nilai value. Secara default, Anda dapat membaca semua data sebagai tipe STRING dengan mengatur parameter menjadi Untuk informasi column yang Anda tentukan, type wajib diisi. Anda harus menentukan salah satu antara index atau value. | Ya | Tidak ada |
fieldDelimiter | Pemisah bidang untuk membaca data. Catatan Saat FTP Reader membaca data, Anda harus menentukan pemisah bidang. Jika Anda tidak menentukan parameter ini, nilai default (,) akan digunakan. UI juga menggunakan (,) sebagai nilai default. | Ya | , |
skipHeader | File mirip CSV mungkin memiliki baris header yang perlu dilewati. Secara default, baris header tidak dilewati. skipHeader tidak didukung untuk file terkompresi. | Tidak | false |
encoding | Format encoding file yang akan dibaca. | Tidak | utf-8 |
nullFormat | Dalam file teks, Anda tidak dapat menggunakan string standar untuk mendefinisikan pointer null. Sinkronisasi data menyediakan parameter nullFormat untuk mendefinisikan string mana yang dapat merepresentasikan null. Contohnya:
| Tidak | Tidak ada |
markDoneFileName | Nama file mark. Sebelum sinkronisasi data, sistem memeriksa keberadaan file mark. Jika file mark tidak ada, sistem menunggu selama periode tertentu lalu memeriksa lagi. Jika file mark ditemukan, task sinkronisasi dimulai. | Tidak | Tidak ada |
maxRetryTime | Jumlah percobaan ulang untuk memeriksa file mark. Nilai default adalah 60. Interval percobaan ulang adalah 1 menit. Durasi total adalah 60 menit. | Tidak | 60 |
csvReaderConfig | Pengaturan parameter untuk membaca file CSV. Parameter ini bertipe Map. CsvReader digunakan untuk membaca file CSV dan memiliki banyak opsi konfigurasi. Jika Anda tidak mengonfigurasi parameter ini, nilai default akan digunakan. | Tidak | Tidak ada |
fileFormat | Jenis file yang akan dibaca. Secara default, file dibaca sebagai file CSV, dan kontennya diurai menjadi struktur tabel logis dua dimensi. Jika Anda mengatur parameter ini ke binary, file disalin dan ditransfer dalam format biner murni. Parameter ini biasanya digunakan untuk replikasi peer-to-peer struktur direktori antar sistem penyimpanan seperti FTP dan OSS. Biasanya Anda tidak perlu mengonfigurasi parameter ini. | Tidak | Tidak ada |
Demo skrip Writer
{
"type":"job",
"version":"2.0",// Nomor versi.
"steps":[
{
"stepType":"stream",
"parameter":{},
"name":"Reader",
"category":"reader"
},
{
"stepType":"ftp",// Nama plugin.
"parameter":{
"path":"",// Jalur file.
"fileName":"",// Nama file.
"nullFormat":"null",// Nilai null.
"dateFormat":"yyyy-MM-dd HH:mm:ss",// Format waktu.
"datasource":"",// Sumber data.
"writeMode":"",// Mode penulisan.
"fieldDelimiter":",",// Pemisah kolom.
"encoding":"",// Format encoding.
"fileFormat":""// Jenis file teks.
},
"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 batasan laju. Jika Anda mengatur throttle ke true, batasan laju diterapkan.
"concurrent":1, // Jumlah pekerjaan konkuren.
"mbps":"12"// Batasan 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. Editor kode mendukung penambahan sumber data. Nilai parameter ini harus sama dengan nama sumber data yang telah ditambahkan. | Ya | Tidak ada |
timeout | Periode timeout koneksi saat menghubungkan ke server FTP. Satuan: milidetik. | Tidak | 60.000 (1 menit) |
path | Jalur dalam sistem file FTP. FTP Writer menulis beberapa file ke direktori yang ditentukan oleh path. | Ya | Tidak ada |
fileName | Nama file yang akan ditulis oleh FTP Writer. Sufiks acak ditambahkan ke nama file ini untuk membuat nama file aktual bagi setiap thread penulisan. | Ya | Tidak ada |
singleFileOutput | Nama file yang ditulis oleh FtpWriter dikontrol oleh fileName. Secara default, sufiks acak ditambahkan untuk membuat nama file aktual bagi setiap thread penulisan. Jika Anda tidak ingin sufiks acak ditambahkan, Anda dapat mengatur singleFileOutput ke true. Nama file output akan menjadi nama file lengkap yang Anda tentukan. | Tidak | false |
writeMode | Mode pembersihan data sebelum FTP Writer menulis data:
| Ya | Tidak ada |
fieldDelimiter | Pemisah bidang untuk menulis data. | Ya, satu karakter | Tidak ada |
skipHeader | File mirip CSV mungkin memiliki baris header yang perlu dilewati. Secara default, baris header tidak dilewati. skipHeader tidak didukung untuk file terkompresi. | Tidak | false |
compress | Mendukung format kompresi gzip dan bzip2. | Tidak | Tidak ada kompresi |
encoding | Anda dapat membaca konfigurasi encoding file. | Tidak | utf-8 |
nullFormat | Dalam file teks, Anda tidak dapat menggunakan string standar untuk mendefinisikan pointer null. Data Integration menyediakan parameter nullFormat untuk mendefinisikan cara merepresentasikan nilai null. Contohnya, jika Anda mengatur nullFormat="null" dan data sumber adalah pointer null, Data Integration meng-serialize-nya menjadi string literal | Tidak | Tidak ada |
dateFormat | Format yang digunakan untuk meng-serialize data bertipe tanggal ke dalam file. Contoh: "dateFormat":"yyyy-MM-dd". | Tidak | Tidak ada |
fileFormat | Format penulisan file. Nilai yang valid adalah CSV dan TEXT. CSV adalah format CSV ketat. Jika data yang akan ditulis mengandung pemisah kolom, data tersebut di-escape sesuai sintaks escape CSV. Karakter escape adalah tanda kutip ganda ("). Format TEXT hanya memisahkan data yang akan ditulis dengan pemisah kolom dan tidak melakukan escaping meskipun data mengandung pemisah tersebut. | Tidak | TEXT |
header | header: Header file teks (termasuk CSV, TEXT, dll.) yang akan ditulis. Editor kode mendukung konfigurasi informasi header. Contohnya, "header":["id","name","age"] menentukan bahwa id, name, dan age ditulis sebagai header di baris pertama file FTP. | Tidak | Tidak ada |
markDoneFileName |
| Tidak | Tidak ada |