全部产品
Search
文档中心

DataWorks:Sumber data Amazon S3

更新时间:Jul 02, 2025

Amazon Simple Storage Service (Amazon S3) adalah layanan penyimpanan objek yang dirancang untuk menyimpan dan mengambil sejumlah besar data dari mana saja. DataWorks Data Integration memungkinkan Anda menggunakan Amazon S3 Reader untuk membaca data dari bucket Amazon S3. Topik ini menjelaskan kemampuan menyinkronkan data dari sumber data Amazon S3.

Versi Amazon S3 yang Didukung

Amazon S3 Reader menggunakan Amazon S3 SDK for Java yang disediakan oleh Amazon untuk membaca data dari sumber data Amazon S3.

Batasan

Amazon S3 menyimpan data tidak terstruktur. Tabel berikut menjelaskan fitur yang didukung dan tidak didukung oleh Amazon S3 Reader di Data Integration.

Didukung

Tidak Didukung

  • Membaca data dari objek TXT. Data dalam objek TXT harus berupa tabel dua dimensi logis.

  • Membaca data dari objek CSV-like dengan pemisah kustom.

  • Membaca data dalam format ORC atau Parquet.

  • Membaca data dari berbagai tipe data sebagai string, dan mendukung konstanta serta pemangkasan kolom.

  • Mendukung pembacaan data rekursif dan penyaringan berdasarkan nama objek.

  • Mendukung kompresi objek. Format kompresi berikut didukung: GZIP, BZIP2, dan ZIP.

    Catatan

    Anda tidak dapat mengompres beberapa objek menjadi satu paket.

  • Menggunakan thread paralel untuk membaca data dari beberapa objek secara bersamaan.

  • Menggunakan thread paralel untuk membaca data dari satu objek.

  • Menggunakan thread paralel untuk membaca data dari objek yang dikompres.

  • Membaca data dari objek yang ukurannya melebihi 100 GB.

Mengembangkan Tugas Sinkronisasi Data

Untuk informasi tentang titik masuk dan prosedur konfigurasi tugas sinkronisasi data, lihat bagian berikut. Untuk detail pengaturan parameter, lihat infotip setiap parameter pada tab konfigurasi tugas.

Menambahkan Sumber Data

Sebelum mengembangkan tugas sinkronisasi di DataWorks, tambahkan sumber data yang diperlukan ke DataWorks dengan mengikuti petunjuk di Tambahkan dan kelola sumber data. Anda dapat melihat infotips parameter di konsol DataWorks untuk memahami arti parameter saat menambahkan sumber data.

Konfigurasikan tugas sinkronisasi batch untuk menyinkronkan data dari satu tabel

Lampiran: Kode dan parameter

Lampiran: Konfigurasikan tugas sinkronisasi batch menggunakan editor kode

Jika menggunakan editor kode untuk mengonfigurasi tugas sinkronisasi batch, konfigurasikan parameter untuk pembaca sumber data terkait sesuai dengan persyaratan format di editor kode. Untuk informasi lebih lanjut tentang persyaratan format, lihat Konfigurasikan Tugas Sinkronisasi Batch Menggunakan Editor Kode. Informasi berikut menjelaskan detail konfigurasi parameter untuk pembaca di editor kode.

Kode untuk Amazon S3 Reader

{
    "type":"job",
    "version":"2.0",// Nomor versi.
    "steps":[
        {
            "stepType":"s3",// Nama plugin.
            "parameter":{
                "nullFormat":"",// String yang mewakili pointer null.
                "compress":"",// Format kompresi objek.
                "datasource":"",// Nama sumber data.
                "column":[// Nama kolom.
                    {
                        "index":0,// ID kolom di objek sumber.
                        "type":"string"// Tipe data kolom.
                    },
                    {
                        "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 akan melewati header dalam objek CSV-like jika objek memiliki header.
                "encoding":"",// Format encoding.
                "fieldDelimiter":",",// Pemisah kolom.
                "fileFormat": "",// Format objek.
                "object":[]// Awalan objek dari mana Anda ingin membaca data.
            },
            "name":"Reader",
            "category":"reader"
        },
        {
            "stepType":"stream",
            "parameter":{},
            "name":"Writer",
            "category":"writer"
        }
    ],
    "setting":{
        "errorLimit":{
            "record":""// Jumlah maksimum catatan data kotor yang diizinkan.
        },
        "speed":{
            "throttle":true,// Menentukan apakah throttling diaktifkan. Nilai false menunjukkan bahwa throttling dinonaktifkan, dan nilai true menunjukkan bahwa throttling diaktifkan. Parameter mbps hanya berlaku ketika parameter throttle diatur ke true.
            "concurrent":1 // Jumlah maksimum thread paralel.
            "mbps":"12",// Laju transmisi maksimum. Unit: MB/s.
        }
    },
    "order":{
        "hops":[
            {
                "from":"Reader",
                "to":"Writer"
            }
        ]
    }
}

Parameter dalam kode untuk Amazon S3 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

Object

Nama objek Amazon S3 object. Anda dapat menentukan beberapa objek dari mana Amazon S3 Reader membaca data. Misalnya, jika sebuah bucket berisi folder test di mana objek ll.txt berada, nama object tersebut adalah test/ll.txt.

  • Jika Anda menentukan satu objek Amazon S3, Amazon S3 Reader menggunakan satu thread untuk membaca data.

  • Jika Anda menentukan beberapa objek Amazon S3, Amazon S3 Reader menggunakan thread paralel untuk membaca data. Jumlah thread ditentukan oleh jumlah saluran.

  • Jika Anda menentukan objek yang namanya berisi wildcard, Amazon S3 Reader membaca data dari semua objek yang cocok dengan nama tersebut. Misalnya, jika Anda mengatur parameter ini ke abc*[0-9], Amazon S3 Reader membaca data dari objek abc0 hingga abc9. Kami menyarankan agar Anda tidak menggunakan wildcard karena kesalahan out of memory (OOM) mungkin terjadi.

Catatan
  • Data Integration menganggap semua objek yang dibaca dalam tugas sinkronisasi sebagai satu tabel. Pastikan semua objek yang dibaca dalam tugas sinkronisasi menggunakan skema yang sama.

  • Kontrol jumlah objek yang disimpan dalam folder. Jika folder berisi objek berlebihan, kesalahan OOM mungkin terjadi. Dalam hal ini, simpan objek di folder yang berbeda sebelum Anda menyinkronkan data.

Ya

Tidak ada nilai default

column

Nama kolom dari mana Anda ingin membaca data. Parameter type menentukan tipe data sumber. Parameter index menentukan ID kolom di objek sumber, mulai dari 0. Parameter value menentukan nilai kolom jika kolom tersebut adalah kolom konstan. Amazon S3 Reader tidak membaca kolom konstan dari sumber. Sebaliknya, Amazon S3 Reader menghasilkan kolom konstan berdasarkan nilai yang Anda tentukan.

Secara default, Amazon S3 Reader membaca semua data sebagai string. Anda dapat mengonfigurasi parameter column dalam format berikut:

column": ["*"]

Anda dapat mengonfigurasi parameter column dalam format berikut:

"column":    
{       
"type": "long",       
"index": 0 // Kolom pertama bertipe INT di objek dari mana Anda ingin membaca data.
},    
{       
"type": "string",       
"value": "alibaba" // Nilai kolom saat ini. Dalam kode ini, nilainya adalah konstanta alibaba.     
}
Catatan

Dalam parameter column, Anda harus mengonfigurasi parameter type dan mengonfigurasi parameter index atau value.

Ya

*, yang menunjukkan bahwa Amazon S3 Reader membaca semua data sebagai string.

fieldDelimiter

Pemisah kolom yang digunakan dalam objek Amazon S3 dari mana Anda ingin membaca data.

Catatan

Amazon S3 Reader menggunakan pemisah kolom untuk membaca data. Pemisah kolom default adalah koma (,). Jika Anda tidak menentukan pemisah kolom, pemisah kolom default digunakan.

Jika pemisah tidak terlihat, masukkan karakter yang dikodekan Unicode, seperti \u001b dan \u007c.

Ya

Koma (,).

compress

Format kompresi objek. Secara default, parameter ini dibiarkan kosong, yang berarti objek tidak dikompres. Amazon S3 Reader mendukung format kompresi berikut: GZIP, BZIP2, dan ZIP.

Tidak

Jangan Kompres

encoding

Format encoding objek dari mana Anda ingin membaca data.

Tidak

utf-8

nullFormat

String yang mewakili pointer null. Tidak ada string standar yang dapat mewakili pointer null dalam objek TXT. Anda dapat menggunakan parameter ini untuk mendefinisikan string yang mewakili pointer null. Misalnya, jika Anda mengatur parameter nullFormat ke null, Amazon S3 Reader menganggap null sebagai pointer null.

Tidak

Tidak ada nilai default

skipHeader

Menentukan apakah akan melewati header dalam objek CSV-like. Nilai valid:

  • True: Amazon S3 Reader membaca header dalam objek CSV-like.

  • False: Amazon S3 Reader mengabaikan header dalam objek CSV-like.

Catatan

Parameter skipHeader tidak tersedia untuk objek yang dikompres.

Tidak

false

csvReaderConfig

Konfigurasi yang diperlukan untuk membaca objek CSV-like. Nilai parameter harus sesuai dengan tipe MAP. Anda dapat menggunakan pembaca objek CSV untuk membaca data dari objek CSV. Pembaca objek CSV mendukung beberapa konfigurasi. Jika tidak ada konfigurasi yang dilakukan, pengaturan default digunakan.

Tidak

Tidak ada nilai default