All Products
Search
Document Center

DataWorks:Sumber data FTP

Last Updated:Jul 18, 2026

DataWorks mendukung FTP sebagai sumber data untuk membaca dan menulis data ke server FTP.

Batasan

FTP Reader membaca data dari file FTP remote dan mengonversinya ke dalam protokol Data Integration. File FTP remote disimpan sebagai data tidak terstruktur.

Didukung

Tidak didukung

  • Hanya membaca data dari file teks. Skema data dalam file teks harus berupa tabel dua dimensi.

  • Membaca data dari file mirip CSV dengan pemisah kustom.

  • Membaca data berbagai tipe data sebagai string. Pemangkasan kolom dan kolom konstan didukung.

  • Mendukung pembacaan rekursif dan penyaringan nama file.

  • Mendukung kompresi file. Format kompresi yang didukung: gzip, bzip2, zip, lzo, dan lzo_deflate.

  • Mendukung pembacaan konkuren dari beberapa file.

  • Pembacaan konkuren satu file menggunakan thread paralel. Hal ini memerlukan algoritma pemisahan file internal.

  • Pembacaan konkuren satu file terkompresi menggunakan thread paralel tidak didukung karena keterbatasan teknis.

FTP Writer mengonversi data berdasarkan protokol Data Integration dan menulis data ke file pada server FTP.

Didukung

Tidak didukung

  • Hanya menulis data ke file teks. Data BLOB seperti video tidak didukung. Skema data dalam file teks harus berupa tabel dua dimensi.

  • Menulis data ke file mirip CSV dan TEXT dengan pemisah kustom.

  • Menulis data menggunakan thread paralel. Setiap thread menulis data ke sub-file yang berbeda.

  • Penulisan konkuren ke satu file.

  • Tipe data native. FTP Writer menulis semua data sebagai tipe data STRING.

  • Kompresi file saat data ditulis.

Tipe data yang didukung

File FTP remote tidak memiliki tipe data native. Sebaliknya, tipe data didefinisikan oleh FTP Reader dalam Data Integration.

Tipe Data Integration

Tipe FTP

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 dalam Data source management. Anda dapat melihat deskripsi parameter di Konsol DataWorks untuk memahami makna parameter saat menambahkan sumber data.

Kembangkan task sinkronisasi data

Untuk informasi tentang titik masuk dan prosedur konfigurasi task sinkronisasi, lihat panduan konfigurasi berikut.

Sinkronisasi batch tabel tunggal

Lampiran: Contoh skrip dan parameter

Konfigurasikan task sinkronisasi batch menggunakan editor kode

Jika ingin mengonfigurasi task sinkronisasi batch menggunakan editor kode, Anda harus mengonfigurasi parameter terkait dalam skrip berdasarkan persyaratan format skrip terpadu. Untuk informasi lebih lanjut, lihat Script mode configuration. Informasi berikut menjelaskan parameter yang harus dikonfigurasi untuk sumber data saat Anda mengonfigurasi task sinkronisasi batch menggunakan editor kode.

Contoh skrip Reader

{
    "type":"job",
    "version":"2.0",// Nomor versi.
    "steps":[
        {
            "stepType":"ftp",// Nama plug-in.
            "parameter":{
                "path":[],// Jalur file.
                "nullFormat":"",// Nilai null.
                "compress":"",// Format kompresi.
                "datasource":"",// Sumber data.
                "column":[// Kolom.
                    {
                        "index":0,// ID.
                        "type":""// Tipe data.
                    }
                ],
                "skipHeader":"",// Menentukan apakah header disertakan.
                "fieldDelimiter":",",// Pemisah kolom.
                "encoding":"UTF-8",// Format encoding.
                "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,// Jika false, parameter mbps diabaikan dan tidak ada pembatasan kecepatan. Jika true, pembatasan kecepatan diterapkan berdasarkan nilai mbps.
            "concurrent":1, // Konkurensi job.
            "mbps":"12"// Laju pembatasan kecepatan. 1 mbps = 1 MB/s.
        }
    },
    "order":{
        "hops":[
            {
                "from":"Reader",
                "to":"Writer"
            }
        ]
    }
}

Parameter skrip Reader

Parameter

Deskripsi

Wajib

Default

datasource

Nama sumber data, yang harus sesuai dengan nama sumber data yang Anda konfigurasi di DataWorks.

Ya

Tidak ada

path

Jalur file sumber pada sistem file FTP remote. Anda harus menentukan jalur lengkap file sumber, termasuk ekstensi nama file. Anda dapat menentukan beberapa jalur.

  • Jika Anda menentukan satu file FTP remote, FTP Reader hanya dapat menggunakan satu thread untuk mengekstrak data. Versi FTP Reader mendatang akan mendukung pembacaan konkuren dari satu file tidak terkompresi menggunakan thread paralel.

  • Jika Anda menentukan beberapa file FTP remote, FTP Reader dapat menggunakan thread paralel untuk mengekstrak data. Jumlah thread konkuren ditentukan oleh jumlah saluran (channel).

  • Jika Anda menentukan wildcard, FTP Reader mencoba melakukan traversal dan menemukan beberapa file. Misalnya, jika Anda menentukan /, FTP Reader membaca semua file dalam direktori /. Jika Anda menentukan /bazhen/, FTP Reader membaca semua file dalam direktori /bazhen/. FTP Reader hanya mendukung tanda bintang (*) sebagai wildcard file. Anda juga dapat menggunakan parameter penjadwalan untuk mengonfigurasi nama file dan jalur file secara fleksibel.

Catatan
  • Hindari penggunaan wildcard tanda bintang (*). Wildcard ini dapat menyebabkan error out-of-memory (OOM) pada Java Virtual Machine (JVM).

  • Data Integration menganggap semua file teks yang disinkronkan dalam satu pekerjaan sebagai satu tabel data. Anda harus memastikan bahwa semua file dapat diproses dengan skema yang sama.

  • Anda harus memastikan bahwa file dalam format mirip CSV dan sistem Data Integration memiliki izin baca atas file tersebut.

  • Jika tidak ditemukan file yang sesuai dengan jalur yang ditentukan, task sinkronisasi data gagal.

Ya

Tidak ada

column

Daftar kolom yang akan dibaca. type menentukan tipe data dari data sumber. index menentukan kolom dari mana Anda ingin membaca data. Nilainya berbasis 0. value menentukan kolom konstan. Dalam kasus ini, data tidak dibaca dari file sumber. Sebaliknya, sistem menghasilkan kolom berdasarkan nilai yang Anda tentukan.

Secara default, Anda dapat membaca semua data sebagai tipe STRING menggunakan konfigurasi "column":["*"]. Anda dapat menentukan bidang column sebagai berikut.

{
    "type": "long",
    "index": 0    // Membaca data dari kolom pertama file teks FTP remote sebagai bidang INT.
  },
  {
    "type": "string",
    "value": "alibaba"  // Menghasilkan bidang string dengan nilai alibaba di FTP Reader.
  }

Untuk column yang ditentukan, Anda harus menentukan type dan memilih salah satu antara index atau value.

Ya

Tidak ada

fieldDelimiter

Pemisah yang digunakan untuk memisahkan kolom dalam file sumber.

Catatan

Anda harus menentukan pemisah agar FTP Reader dapat membaca data. Jika Anda tidak menentukan pemisah, koma (,) default digunakan. Di UI, koma (,) juga ditentukan secara default.

Ya

,

skipHeader

File mirip CSV mungkin memiliki header. Anda dapat melewatkan header tersebut. Secara default, header tidak dilewati. Parameter ini tidak didukung untuk file terkompresi.

Tidak

false

encoding

Encoding file sumber.

Tidak

utf-8

nullFormat

File teks tidak dapat menggunakan string standar untuk nilai null (null pointer). Gunakan nullFormat untuk menentukan string mana yang merepresentasikan nilai null. Contoh:

  • Jika Anda mengatur parameter ini ke nullFormat:"null" dan data sumber adalah string "null", Data Integration memproses data sumber sebagai nilai null.

  • Jika Anda mengatur parameter ini ke nullFormat:"\u0001" dan data sumber adalah string \u0001, Data Integration memproses data sumber sebagai nilai null.

  • Jika Anda tidak mengonfigurasi parameter "nullFormat", tidak ada konversi yang dilakukan, dan data sumber ditulis ke tujuan apa adanya.

Tidak

Tidak ada

markDoneFileName

Nama file mark-done. Sebelum task sinkronisasi data dimulai, sistem memeriksa apakah file mark-done ada. Jika file tidak ada, sistem menunggu periode waktu tertentu lalu memeriksa lagi. Task baru dimulai setelah file terdeteksi.

Tidak

Tidak ada

maxRetryTime

Jumlah percobaan ulang untuk pemeriksaan file mark-done. Nilai default adalah 60. Interval antar percobaan ulang adalah 1 menit, sehingga total waktu tunggu menjadi 60 menit.

Tidak

60

csvReaderConfig

Parameter yang digunakan untuk membaca file CSV. Nilainya harus bertipe Map. File CSV dibaca oleh CsvReader. Beberapa konfigurasi tersedia. Jika Anda tidak mengonfigurasi parameter ini, nilai default digunakan.

Tidak

Tidak ada

fileFormat

Format file sumber. Secara default, file dibaca sebagai file CSV dan diproses sebagai tabel dua dimensi logis. Jika Anda mengatur parameter ini ke binary, file disalin dalam format biner.

Parameter ini biasanya digunakan untuk mencerminkan struktur direktori antar sistem penyimpanan seperti FTP dan OSS. Dalam kebanyakan kasus, Anda tidak perlu mengonfigurasi parameter ini.

Tidak

Tidak ada

Contoh skrip Writer

{
    "type":"job",
    "version":"2.0",// Nomor versi.
    "steps":[
        { 
            "stepType":"stream",
            "parameter":{},
            "name":"Reader",
            "category":"reader"
        },
        {
            "stepType":"ftp",// Nama plug-in.
            "parameter":{
                "path":"",// Jalur file.
                "fileName":"",// Nama file.
                "nullFormat":"null",// Nilai null.
                "dateFormat":"yyyy-MM-dd HH:mm:ss",// Format tanggal.
                "datasource":"",// Sumber data.
                "writeMode":"",// Mode penulisan.
                "fieldDelimiter":",",// Pemisah kolom.
                "encoding":"",// Format encoding.
                "fileFormat":""// Format file.
            },
            "name":"Writer",
            "category":"writer"
        }
    ],
    "setting":{
        "errorLimit":{
            "record":"0"// Jumlah maksimum catatan data kotor yang diizinkan.
        },
        "speed":{
            "throttle":true,// Jika false, parameter mbps diabaikan dan tidak ada pembatasan kecepatan. Jika true, pembatasan kecepatan diterapkan berdasarkan nilai mbps.
            "concurrent":1, // Konkurensi job.
            "mbps":"12"// Laju pembatasan kecepatan. 1 mbps = 1 MB/s.
        }
    },
    "order":{
        "hops":[
            {
                "from":"Reader",
                "to":"Writer"
            }
        ]
    }
}

Parameter skrip Writer

Parameter

Deskripsi

Wajib

Default

datasource

Nama sumber data, yang harus sesuai dengan nama sumber data yang Anda konfigurasi di DataWorks.

Ya

Tidak ada

timeout

Periode timeout untuk koneksi ke server FTP. Satuan: milidetik.

Tidak

60.000 (1 menit)

path

Jalur tujuan pada sistem file FTP. FTP Writer menulis beberapa file ke direktori yang ditentukan oleh parameter ini.

Ya

Tidak ada

fileName

Nama file tempat FTP Writer menulis data. Akhiran acak ditambahkan ke nama file ini untuk membuat nama file aktual untuk setiap thread.

Ya

Tidak ada

singleFileOutput

Secara default, FTP Writer menambahkan akhiran acak ke fileName yang ditentukan untuk membuat nama file unik untuk setiap thread. Jika Anda tidak ingin akhiran acak ditambahkan, Anda dapat mengatur parameter ini ke true. Maka, nama file output persis seperti yang Anda tentukan.

Tidak

false

writeMode

Mode untuk membersihkan data sebelum menulis.

  • truncate: Jika singleFileOutput adalah true, file yang memiliki nama sama di direktori tujuan dihapus sebelum data ditulis. Jika singleFileOutput adalah false, semua file yang memiliki awalan fileName yang ditentukan di direktori tujuan dihapus sebelum data ditulis.

  • append: Tidak ada data yang dibersihkan. FTP Writer menulis file langsung menggunakan fileName yang ditentukan dan memastikan tidak terjadi konflik nama file.

  • nonConflict: Jika file yang memiliki awalan fileName yang ditentukan sudah ada di direktori, task gagal dan kesalahan dilaporkan.

Ya

Tidak ada

fieldDelimiter

Pemisah yang digunakan untuk memisahkan kolom dalam file tujuan.

Ya (hanya satu karakter)

Tidak ada

skipHeader

File mirip CSV mungkin memiliki header yang perlu dilewati. Secara default, header tidak dilewati. File terkompresi tidak mendukung skipHeader.

Tidak

false

compress

Format kompresi yang didukung: gzip dan bzip2.

Tidak

Tidak ada kompresi

encoding

Encoding file tujuan.

Tidak

utf-8

nullFormat

File teks tidak dapat menggunakan string standar untuk nilai null (null pointer). Gunakan nullFormat untuk menentukan string mana yang merepresentasikan nilai null.

Sebagai contoh, jika Anda mengonfigurasi nullFormat="null", ketika data sumber adalah null pointer, Data Integration mengubahnya menjadi string literal 'null' (4 karakter).

Tidak

Tidak ada

dateFormat

Format untuk mengubah data bertipe DATE menjadi file. Contoh: "dateFormat":"yyyy-MM-dd".

Tidak

Tidak ada

fileFormat

Format file tujuan. Nilai yang valid: CSV dan TEXT. CSV adalah format ketat. Jika data yang akan ditulis berisi pemisah kolom, data tersebut di-escape dengan tanda kutip ganda (") berdasarkan aturan escape CSV. TEXT adalah format sederhana yang menggunakan pemisah kolom untuk memisahkan data. Pemisah dalam data tidak di-escape.

Tidak

TEXT

header

Header yang ditulis ke file teks. Dalam mode skrip, Anda dapat mengonfigurasi informasi header. Misalnya, Anda dapat mengatur parameter ini ke "header":["id","name","age"]. Kemudian, id, name, dan age ditulis sebagai header di baris pertama file FTP.

Tidak

Tidak ada

markDoneFileName

  • Nama file mark-done. Setelah task sinkronisasi data selesai, sistem menghasilkan file mark-done. Anda dapat memeriksa file ini untuk menentukan apakah task berhasil. Anda harus menentukan jalur mutlak untuk file ini.

  • Untuk task batch periodik, sertakan parameter penjadwalan dalam nama file. Misalnya, Anda dapat mengatur nama file menjadi /user/ftp/markDone_${bizdate}.txt, di mana ${bizdate} adalah parameter penjadwalan.

Tidak

Tidak ada