All Products
Search
Document Center

DataWorks:Sumber data DataHub

Last Updated:Apr 25, 2026

Sumber data DataHub menyediakan saluran dua arah untuk membaca dan menulis data ke DataHub, memungkinkan pemrosesan data skala besar secara efisien. Topik ini menjelaskan kemampuan sinkronisasi data yang disediakan DataWorks untuk DataHub.

Versi yang didukung

  • DataHub Reader menggunakan DataHub SDK for Java untuk membaca data dari DataHub. Kode berikut menunjukkan versi SDK tersebut.

    <dependency>
        <groupId>com.aliyun.DataHub</groupId>
        <artifactId>aliyun-sdk-DataHub</artifactId>
        <version>2.9.1</version>
    </dependency>
  • DataHub Writer menggunakan DataHub SDK for Java untuk menulis data ke DataHub. Kode berikut menunjukkan versi SDK tersebut.

    <dependency>
        <groupId>com.aliyun.datahub</groupId>
        <artifactId>aliyun-sdk-datahub</artifactId>
        <version>2.5.1</version>
    </dependency>

Batasan

Pembacaan/penulisan batch

Tipe data STRING hanya mendukung pengkodean UTF-8. Satu kolom STRING tidak boleh melebihi 1 MB.

Pembacaan/penulisan real-time

  • Tugas sinkronisasi real-time mendukung serverless resource groups.

  • Saat melakukan sinkronisasi data ke DataHub secara real-time, data di-shard berdasarkan nilai hash dari data sumber. Catatan (record) dengan nilai hash yang sama akan disinkronkan ke shard yang sama.

Penulisan real-time basis data penuh

Saat menjalankan tugas, tugas sinkronisasi batch terlebih dahulu menulis data lengkap ke DataHub. Kemudian, tugas sinkronisasi real-time dimulai untuk menyinkronkan data inkremental dari sumber ke tujuan. Data ditulis berdasarkan aturan berikut:

  • Data hanya dapat ditulis ke topik DataHub bertipe TUPLE. Untuk informasi lebih lanjut mengenai tipe data TUPLE, lihat Tipe data.

  • Saat melakukan sinkronisasi data ke DataHub secara real-time, lima bidang tambahan ditambahkan ke bidang tabel sumber. Anda juga dapat menambahkan bidang lain saat mengonfigurasi tugas. Untuk informasi lebih lanjut mengenai format pesan akhir yang dikirim ke DataHub, lihat Lampiran: Format pesan DataHub.

Tipe bidang yang didukung

Saat menyinkronkan data ke DataHub, nilai-nilai dipetakan ke tipe bidang yang sesuai. DataHub hanya mendukung tipe data BIGINT, STRING, BOOLEAN, DOUBLE, TIMESTAMP, dan DECIMAL.

Tambahkan sumber data

Sebelum mengembangkan tugas 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 tugas sinkronisasi data

Untuk informasi mengenai titik masuk dan prosedur konfigurasi tugas sinkronisasi, lihat panduan konfigurasi berikut.

Konfigurasi tugas sinkronisasi batch tabel tunggal

Konfigurasi tugas sinkronisasi real-time tabel tunggal

Untuk prosedurnya, lihat Konfigurasi tugas sinkronisasi real-time.

Catatan

Untuk informasi mengenai operasi yang didukung oleh berbagai tipe data DataHub, strategi sharding, format data, dan contoh pesan terkait, lihat Lampiran: Format pesan DataHub.

Konfigurasi tugas sinkronisasi real-time basis data penuh

Untuk prosedurnya, lihat Konfigurasi tugas sinkronisasi real-time basis data penuh.

FAQ

Kegagalan penulisan akibat batas data

Lampiran: Contoh skrip dan deskripsi parameter

Konfigurasi tugas sinkronisasi batch menggunakan editor kode

Jika ingin mengonfigurasi tugas sinkronisasi batch menggunakan editor kode, Anda harus mengonfigurasi parameter terkait dalam skrip berdasarkan persyaratan format skrip terpadu. Untuk informasi lebih lanjut, lihat Gunakan Editor Kode. Informasi berikut menjelaskan parameter yang harus Anda konfigurasi untuk sumber data saat mengonfigurasi tugas sinkronisasi batch menggunakan editor kode.

Contoh skrip Reader

{
    "type":"job",
    "version":"2.0",// Nomor versi.
    "steps":[
        {
         "job": {
           "content": [
            {
                "reader": {
                    "name": "DataHubreader",
                    "parameter": {
                        "endpoint": "xxx" // Titik akhir DataHub.
                        "accessId": "xxx", // ID AccessKey yang digunakan untuk mengakses DataHub.
                        "accessKey": "xxx", // Rahasia AccessKey yang digunakan untuk mengakses DataHub.
                        "project": "xxx", // Nama proyek DataHub.
                        "topic": "xxx" // Nama topik DataHub.
                        "batchSize": 1000, // Jumlah catatan yang dibaca sekaligus.
                        "beginDateTime": "20180910111214", // Waktu mulai untuk konsumsi data.
                        "endDateTime": "20180910111614", // Waktu akhir untuk konsumsi data.
                        "column": [
                            "col0",
                            "col1",
                            "col2",
                            "col3",
                            "col4"
                                  ]
                                }
                           },
                "writer": {
                    "name": "streamwriter",
                    "parameter": {
                        "print": false
                                 }
                            }
             }
           ]
         }
       }
     ],
    "setting":{
        "errorLimit":{
            "record":"0"// Jumlah kesalahan.
        },
        "speed":{
            "throttle":true,// Menentukan apakah Pembatasan kecepatan diaktifkan. Jika throttle diatur ke false, parameter mbps tidak berlaku, artinya Pembatasan kecepatan dinonaktifkan. Jika throttle diatur ke true, Pembatasan kecepatan diaktifkan.
            "concurrent":1,// Konkurensi.
            "mbps":"12"// Laju Pembatasan kecepatan. 1 mbps = 1 MB/s.
        }
    },
    "order":{
        "hops":[
            {
                "from":"Reader",
                "to":"Writer"
            }
        ]
    }
}

Parameter skrip Reader

Parameter

Deskripsi

Wajib

endpoint

endpoint DataHub.

Ya

accessId

accessId yang digunakan untuk mengakses DataHub.

Ya

accessKey

accessKey yang digunakan untuk mengakses DataHub.

Ya

project

Nama proyek DataHub. project merupakan unit manajemen sumber daya dasar di DataHub dan digunakan untuk isolasi sumber daya serta kontrol akses.

Ya

topic

Nama topic DataHub.

Ya

batchSize

Jumlah catatan yang dibaca sekaligus. Nilai default: 1.024.

Tidak

beginDateTime

Waktu mulai untuk konsumsi data. Parameter ini menentukan batas kiri (inklusif) rentang waktu dan harus berupa string waktu dalam format yyyyMMddHHmmss. Untuk menerapkan sinkronisasi inkremental, Anda dapat menggunakan parameter ini bersama dengan parameter penjadwalan DataWorks. Misalnya, atur nama parameter parameter penjadwalan node menjadi bizdate dan nilai parameter menjadi $[yyyymmdd-1]. Lalu, atur beginDateTime menjadi ${bizdate}000000, yang berarti waktu mulai konsumsi data adalah pukul 00:00:00 hari sebelumnya.

Catatan

beginDateTime dan endDateTime harus digunakan bersama.

Ya

endDateTime

Waktu akhir untuk konsumsi data. Parameter ini menentukan batas kanan (eksklusif) rentang waktu dan harus berupa string waktu dalam format yyyyMMddHHmmss. Untuk menerapkan sinkronisasi inkremental, Anda dapat menggunakan parameter ini bersama dengan parameter penjadwalan DataWorks. Misalnya, atur nama parameter parameter penjadwalan node menjadi bizdate dan nilai parameter menjadi $[yyyymmdd-1]. Lalu, atur endDateTime menjadi ${bizdate}235959, yang berarti waktu akhir konsumsi data adalah pukul 23:59:59 hari sebelumnya.

Catatan

beginDateTime dan endDateTime harus digunakan bersama.

Ya

Contoh skrip Writer

{
    "type": "job",
    "version": "2.0",// Nomor versi.
    "steps": [
        { 
            "stepType": "stream",
            "parameter": {},
            "name": "Reader",
            "category": "reader"
        },
        {
            "stepType": "datahub",// Nama plugin.
            "parameter": {
                "datasource": "",// Sumber data.
                "topic": "",// Topik adalah unit terkecil untuk langganan dan penerbitan di DataHub. Anda dapat menggunakan topik untuk merepresentasikan jenis atau kategori data streaming.
                "maxRetryCount": 500,// Jumlah maksimum percobaan ulang saat tugas gagal.
                "maxCommitSize": 1048576// Data dikomit secara batch ke tujuan ketika buffer data terakumulasi mencapai maxCommitSize (dalam byte).
                 // DataHub membatasi satu permintaan hingga 10.000 catatan. Melebihi batas ini menyebabkan kesalahan tugas. Atur parameter ini berdasarkan ukuran rata-rata per catatan dikalikan 10.000. Misalnya, jika setiap catatan berukuran 10 KB, atur parameter ini ke nilai di bawah 10 × 10.000 KB.
            },
            "name": "Writer",
            "category": "writer"
        }
    ],
    "setting": {
        "errorLimit": {
            "record": ""// Jumlah kesalahan.
        },
        "speed": {
            "throttle":true,// Menentukan apakah Pembatasan kecepatan diaktifkan. Jika throttle diatur ke false, parameter mbps tidak berlaku, artinya Pembatasan kecepatan dinonaktifkan. Jika throttle diatur ke true, Pembatasan kecepatan diaktifkan.
            "concurrent":20, // Konkurensi.
            "mbps":"12"// Laju Pembatasan kecepatan. 1 mbps = 1 MB/s.
        }
    },
    "order": {
        "hops": [
            {
                "from": "Reader",
                "to": "Writer"
            }
        ]
    }
}

Parameter skrip Writer

Parameter

Deskripsi

Wajib

Nilai default

accessId

accessId DataHub.

Ya

N/A

accessKey

accessKey DataHub.

Ya

N/A

endPoint

Untuk mengakses sumber daya DataHub, Anda harus memilih nama domain yang benar berdasarkan layanan tempat sumber daya tersebut berada.

Ya

N/A

maxRetryCount

Jumlah maksimum percobaan ulang saat tugas gagal.

Tidak

N/A

mode

Mode penulisan saat nilainya bertipe STRING.

Ya

N/A

parseContent

Konten yang akan diurai.

Ya

N/A

project

Proyek adalah unit organisasi dasar untuk data DataHub. Satu proyek berisi beberapa topik.

Catatan

Proyek DataHub bersifat independen dari proyek MaxCompute. Proyek yang Anda buat di MaxCompute tidak dapat digunakan kembali di DataHub. Anda harus membuat proyek secara terpisah.

Ya

N/A

topic

Topik adalah unit terkecil untuk langganan dan penerbitan di DataHub. Anda dapat menggunakan topik untuk merepresentasikan jenis atau kategori data streaming.

Ya

N/A

maxCommitSize

Untuk meningkatkan efisiensi penulisan, DataX mengakumulasi data dalam buffer dan meng-commit data tersebut secara batch ke tujuan ketika data terakumulasi mencapai maxCommitSize (dalam byte). Nilai default-nya adalah 1.048.576, yaitu 1 MB. DataHub membatasi satu permintaan hingga 10.000 catatan. Melebihi batas ini menyebabkan kesalahan tugas. Atur parameter ini berdasarkan ukuran rata-rata per catatan dikalikan 10.000 untuk mengontrol jumlah catatan yang ditulis ke DataHub per permintaan.

Tidak

1MB