All Products
Search
Document Center

DataWorks:Sumber data Amazon S3

Last Updated:Apr 25, 2026

Amazon Simple Storage Service (Amazon S3) adalah layanan penyimpanan objek yang dirancang untuk menyimpan dan mengambil data dalam jumlah berapa pun dari mana saja. Data Integration di DataWorks memungkinkan Anda membaca data dari dan menulis data ke Amazon S3. Topik ini menjelaskan kemampuan sumber data Amazon S3 di DataWorks.

Batasan

Baca batch

Amazon S3 menyimpan data tidak terstruktur. Di Data Integration, reader Amazon S3 mendukung fitur-fitur berikut.

Didukung

Tidak didukung

  • Hanya file dalam format TXT yang dapat dibaca, dan skema dalam file TXT harus berupa tabel dua dimensi.

  • Membaca data dari objek mirip CSV dengan pemisah kustom.

  • Membaca data dalam format ORC dan PARQUET.

  • Membaca berbagai tipe data sebagai string dan mendukung pemangkasan kolom serta kolom konstan.

  • Mendukung pembacaan rekursif dan penyaringan berdasarkan nama objek.

  • Mendukung kompresi objek. Format kompresi yang didukung adalah gzip, bzip2, dan zip.

    Catatan

    Anda tidak dapat mengompres beberapa objek ke dalam satu paket.

  • Mendukung pembacaan konkuren beberapa Object.

  • Tidak mendukung pembacaan multi-threaded pada satu Object (File).

  • Tidak mendukung pembacaan multi-threaded pada satu Object terkompresi.

  • Tidak mendukung pembacaan satu Object (File) yang ukurannya lebih dari 100 GB.

Tulis batch

Writer Amazon S3 mengonversi data dari protokol sinkronisasi data menjadi file teks di Amazon S3. Amazon S3 merupakan penyimpanan data tidak terstruktur. Writer Amazon S3 mendukung fitur-fitur berikut.

Didukung

Tidak didukung

  • Hanya file bertipe teks yang dapat ditulis (tipe BLOB seperti video dan gambar tidak didukung), dan skema dalam file teks harus berupa tabel dua dimensi.

  • Menulis data ke file mirip CSV dengan pemisah kustom.

  • Menulis data dalam format ORC dan PARQUET.

    Catatan

    Kompresi SNAPPY didukung dalam mode skrip.

  • Mendukung penulisan multi-threaded. Setiap thread menulis ke sub-file yang berbeda.

  • Mendukung rolling file. Ketika ukuran file melebihi batas tertentu, sistem beralih ke file baru.

  • Tidak mendukung penulisan konkuren ke satu file.

  • Amazon S3 tidak menyediakan tipe data. Writer Amazon S3 menulis semua data ke objek Amazon S3 sebagai tipe STRING.

  • Jika kelas penyimpanan bucket Amazon S3 adalah Deep Archive, operasi penulisan tidak didukung.

  • Satu Object (File) tidak boleh melebihi 100 GB.

Tambahkan sumber data

Sebelum mengembangkan task sinkronisasi di DataWorks, Anda harus menambahkan sumber data yang diperlukan ke DataWorks dengan mengikuti petunjuk dalam Manajemen sumber data. Anda dapat melihat deskripsi parameter di Konsol DataWorks untuk memahami arti parameter saat menambahkan sumber data.

Kembangkan task sinkronisasi data

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

Konfigurasikan task sinkronisasi batch single-table

Lampiran: Contoh skrip dan deskripsi parameter

Konfigurasikan task sinkronisasi batch menggunakan editor kode

Jika ingin mengonfigurasi task sinkronisasi batch menggunakan editor kode, Anda harus mengonfigurasi parameter terkait dalam skrip sesuai persyaratan format skrip terpadu. Untuk informasi selengkapnya, lihat Gunakan Editor Kode. Informasi berikut menjelaskan parameter yang harus dikonfigurasi untuk sumber data saat mengonfigurasi task sinkronisasi batch menggunakan editor kode.

Contoh skrip Reader

{
    "type":"job",
    "version":"2.0",// Nomor versi.
    "steps":[
        {
            "stepType":"s3",// Nama plugin.
            "parameter":{
                "nullFormat":"",// String yang merepresentasikan nilai null.
                "compress":"",// Jenis kompresi.
                "datasource":"",// Nama sumber data.
                "column":[// Kolom.
                    {
                        "index":0,// Indeks kolom.
                        "type":"string"// Tipe data.
                    },
                    {
                        "index":1,
                        "type":"long"
                    },
                    {
                        "index":2,
                        "type":"double"
                    },
                    {
                        "index":3,
                        "type":"boolean"
                    },
                    {
                        "format":"yyyy-MM-dd HH:mm:ss", // Format waktu.
                        "index":4,
                        "type":"date"
                    }
                ],
                "skipHeader":"",// Menentukan apakah baris header file mirip CSV dilewati.
                "encoding":"",// Format encoding.
                "fieldDelimiter":",",// Pemisah kolom.
                "fileFormat": "",// Format file.
                "object":[]// Awalan objek.
            },
            "name":"Reader",
            "category":"reader"
        },
        {
            "stepType":"stream",
            "parameter":{},
            "name":"Writer",
            "category":"writer"
        }
    ],
    "setting":{
        "errorLimit":{
            "record":""// Jumlah error.
        },
        "speed":{
            "throttle":true,// Menentukan apakah Pembatasan kecepatan diaktifkan. Nilai false berarti Pembatasan kecepatan dinonaktifkan dan parameter mbps tidak berlaku. Nilai true berarti Pembatasan kecepatan diaktifkan.
            "concurrent":1 // Konkurensi.
            "mbps":"12",// Laju pembatasan. 1 mbps = 1 MB/s.
        }
    },
    "order":{
        "hops":[
            {
                "from":"Reader",
                "to":"Writer"
            }
        ]
    }
}

Parameter skrip Reader

Parameter

Deskripsi

Wajib

Nilai default

datasource

Nama sumber data. Mode skrip memungkinkan Anda menambahkan sumber data. Nilai parameter ini harus sama dengan nama sumber data yang Anda tambahkan.

Ya

N/A

Object

Informasi objek di Amazon S3. Anda dapat menentukan beberapa objek. Misalnya, jika bucket berisi folder test, dan folder tersebut berisi file bernama ll.txt, atur Object menjadi test/ll.txt.

  • Saat Anda menentukan satu objek S3, reader Amazon S3 hanya mendukung ekstraksi data single-threaded.

  • Saat Anda menentukan beberapa objek S3, reader Amazon S3 mendukung ekstraksi data multi-threaded. Jumlah thread konkuren ditentukan oleh jumlah saluran.

  • Saat Anda menggunakan wildcard, reader Amazon S3 mencoba mendaftar beberapa objek. Misalnya, abc*[0-9] cocok dengan abc0, abc1, abc2, abc3, dan seterusnya. Penggunaan wildcard dapat menyebabkan error kehabisan memori. Kami menyarankan agar Anda tidak menggunakan wildcard.

Catatan
  • Sistem sinkronisasi data memperlakukan semua objek yang disinkronkan oleh satu pekerjaan sebagai satu tabel data. Pastikan semua objek mengikuti skema yang sama.

  • Kontrol jumlah file dalam satu direktori. Jika tidak, error OutOfMemoryError dapat terpicu. Jika hal ini terjadi, pisahkan file ke direktori berbeda dan coba lagi.

Ya

N/A

column

Daftar kolom yang akan dibaca. Parameter type menentukan tipe data dari data sumber. Parameter index menentukan nomor kolom dalam file teks (dimulai dari 0). Parameter value menentukan bahwa kolom saat ini adalah konstan. Alih-alih membaca data dari file sumber, sistem menghasilkan kolom berdasarkan nilai yang ditentukan.

Secara default, Anda dapat membaca semua data sebagai tipe String. Contoh konfigurasi:

column": ["*"]

Anda juga dapat menentukan informasi kolom. Contoh konfigurasi:

"column":    
{       
"type": "long",       
"index": 0 //Ambil field int dari kolom pertama teks S3.
},    
{       
"type": "string",       
"value": "alibaba" //Hasilkan field string "alibaba" secara internal dari S3 Reader sebagai field saat ini.    
}
Catatan

Untuk informasi column yang Anda tentukan, type wajib diisi, dan Anda harus menentukan salah satu antara index atau value.

Ya

Semua data dibaca sebagai tipe STRING.

fieldDelimiter

Pemisah kolom untuk membaca data.

Catatan

Saat reader Amazon S3 membaca data, Anda harus menentukan pemisah kolom. Jika tidak ada pemisah yang ditentukan, pemisah default (,) digunakan. Pemisah default (,) juga digunakan di Antarmuka tanpa kode.

Jika pemisah tidak terlihat, tentukan encoding Unicode. Misalnya, \u001b atau \u007c.

Ya

Nilai default: (,)

compress

Jenis kompresi. Secara default, parameter ini dibiarkan kosong, yang berarti tidak ada kompresi yang diterapkan. Jenis kompresi yang didukung adalah gzip, bzip2, dan zip.

Tidak

Tanpa kompresi

encoding

Encoding file yang akan dibaca.

Tidak

utf-8

nullFormat

String standar dalam file teks tidak dapat merepresentasikan null (null pointer). Sistem sinkronisasi data menggunakan nullFormat untuk menentukan string mana yang dapat merepresentasikan null. Misalnya, jika Anda mengatur nullFormat="null" dan data sumber adalah "null", sistem sinkronisasi data memperlakukannya sebagai field null.

Tidak

N/A

skipHeader

Untuk file CSV, gunakan skipHeader untuk menentukan apakah baris header dibaca.

  • True: Baris header dibaca selama sinkronisasi data.

  • False: Baris header tidak dibaca selama sinkronisasi data.

Catatan

skipHeader tidak didukung untuk file terkompresi.

Tidak

false

csvReaderConfig

Konfigurasi untuk membaca file CSV. Parameter ini bertipe Map. CsvReader digunakan untuk membaca file CSV dan menyediakan berbagai konfigurasi. Jika Anda tidak mengonfigurasi parameter ini, nilai default akan digunakan.

Tidak

N/A

Contoh skrip Writer

{
    "type": "job",
    "version": "2.0",
    "steps": [
        {
            "stepType": "stream",
            "parameter": {},
            "name": "Reader",
            "category": "reader"
        },
        {
            "stepType": "s3",
            "category": "writer",
            "name": "Writer",
            "parameter": {
                "datasource": "datasource1",
                "object": "test/csv_file.csv",
                "fileFormat": "csv",
                "encoding": "utf8/gbk/...",
                "fieldDelimiter": ",",
                "lineDelimiter": "\n",
                "column": [
                    "0",
                    "1"
                ],
                "header": [
                    "col_bigint",
                    "col_tinyint"
                ],
                "writeMode": "truncate",
                "writeSingleObject": true
            }
        }
    ],
    "setting": {
        "errorLimit": {
            "record": "" // Jumlah error.
        },
        "speed": {
            "throttle": true, // Menentukan apakah Pembatasan kecepatan diaktifkan. Nilai false berarti Pembatasan kecepatan dinonaktifkan dan parameter mbps tidak berlaku. Nilai true berarti Pembatasan kecepatan diaktifkan.
            "concurrent": 1 // Konkurensi.
            "mbps": "12", // Laju pembatasan. 1 mbps = 1 MB/s.
        }
    },
    "order": {
        "hops": [
            {
                "from": "Reader",
                "to": "Writer"
            }
        ]
    }
}

Parameter skrip Writer

Parameter

Deskripsi

Wajib

Nilai default

datasource

Nama sumber data. Mode skrip memungkinkan Anda menambahkan sumber data. Nilai parameter ini harus sama dengan nama sumber data yang Anda tambahkan.

Ya

N/A

object

Nama objek tujuan.

Ya

N/A

fileFormat

Format file berikut didukung:

  • csv: Hanya format CSV ketat yang didukung. Jika data yang akan ditulis berisi pemisah kolom, data tersebut di-escape berdasarkan sintaks escape CSV. Karakter escape adalah tanda kutip ganda (").

  • text: Menggunakan pemisah kolom untuk memisahkan data secara sederhana. Data yang berisi pemisah kolom tidak di-escape.

  • parquet

  • ORC

Ya

text

writeMode

  • truncate: Sebelum menulis, semua objek yang namanya sesuai dengan awalan nama objek yang ditentukan dihapus. Misalnya, jika Anda mengatur "object":"abc", semua objek yang namanya diawali abc dihapus.

  • append: Tidak ada pemrosesan sebelum menulis. Writer S3 Data Integration langsung menulis data menggunakan nama objek yang ditentukan dengan akhiran UUID acak untuk menghindari konflik nama file. Misalnya, jika Anda mengatur nama objek menjadi DI, file aktual yang ditulis adalah DI_xxxx_xxxx_xxxx.

  • nonConflict: Error dilaporkan jika ada objek dengan awalan yang cocok di path yang ditentukan. Misalnya, jika Anda mengatur "object":"abc" dan objek bernama abc123 ada, error dilaporkan.

Ya

append

fieldDelimiter

Pemisah kolom untuk menulis data.

Tidak

Nilai default: (,)

lineDelimiter

Pemisah baris untuk menulis data.

Tidak

Nilai default: (\n)

compress

Jenis kompresi. Secara default, parameter ini dibiarkan kosong, yang berarti tidak ada kompresi yang diterapkan.

  • Saat fileFormat diatur ke text atau csv, GZIP dan BZIP2 didukung.

  • Saat fileFormat diatur ke parquet atau orc, kompresi SNAPPY didukung.

Tidak

Tanpa kompresi

nullFormat

String standar dalam file teks tidak dapat merepresentasikan null (null pointer). Sistem sinkronisasi data menggunakan nullFormat untuk menentukan string mana yang dapat merepresentasikan null. Misalnya, jika Anda mengatur nullFormat="null" dan data sumber adalah null, sistem sinkronisasi data memperlakukannya sebagai field null.

Tidak

N/A

header

Header yang akan ditulis. Contoh: ["id", "name", "age"].

Tidak

N/A

writeSingleObject

true: Menulis data ke satu file. false: Menulis data ke beberapa file.

Catatan
  • Saat Anda menulis data dalam format ORC atau Parquet, parameter writeSingleObject tidak berlaku. Bahkan dengan parameter ini, Anda tidak dapat menulis data ke satu file ORC atau Parquet dalam skenario multi-konkurensi. Untuk menulis data ke satu file, atur konkurensi menjadi 1. Namun, akhiran acak ditambahkan ke nama file, dan pengaturan konkurensi menjadi 1 memengaruhi kecepatan sinkronisasi.

  • Dalam beberapa skenario, misalnya saat sumbernya adalah Hologres, data dibaca berdasarkan partisi shard. Bahkan dengan konkurensi tunggal, beberapa file dapat dihasilkan.

Tidak

false

encoding

Encoding file yang akan ditulis.

Tidak

utf-8

column

Konfigurasi kolom untuk menulis data.

  • Saat fileFormat diatur ke csv atau text, konfigurasikan parameter column dengan placeholder numerik. Contoh:

    "column":[
     "0",
     "1"
     ]
  • Saat fileFormat diatur ke Parquet atau ORC, konfigurasikan parameter column dengan kombinasi name dan type. Contoh:

    "column": [
      {
        "name": "col1",
        "type": "BIGINT"
      },
      {
        "name": "col2",
        "type": "DOUBLE"
      }

Ya

N/A