All Products
Search
Document Center

DataWorks:Sumber data DataHub

Last Updated:Mar 07, 2026

Sumber data DataHub menyediakan saluran dua arah untuk membaca dari dan menulis ke DataHub. Dokumen ini menjelaskan cara mengonfigurasi sinkronisasi data untuk sumber data ini di DataWorks.

Versi yang didukung

  • DataHub Reader menggunakan DataHub Java SDK untuk membaca data. SDK berikut digunakan:

    <dependency>
        <groupId>com.aliyun.DataHub</groupId>
        <artifactId>aliyun-sdk-DataHub</artifactId>
        <version>2.9.1</version>
    </dependency>
  • DataHub Writer menggunakan DataHub Java SDK untuk menulis data. SDK berikut digunakan:

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

Batasan

Pembacaan dan penulisan data batch

Tipe data STRING hanya mendukung encoding UTF-8. Satu bidang STRING dapat memiliki ukuran hingga 1 MB.

Pembacaan dan penulisan data real-time

  • Tugas sinkronisasi real-time mendukung serverless resource groups.

  • Sistem menyinkronkan data dengan nilai hash yang sama ke shard yang sama.

Penulisan database penuh secara real-time

Saat tugas dimulai, proses batch menulis data lengkap ke DataHub. Setelah sinkronisasi data penuh selesai, proses real-time mulai menyinkronkan data inkremental dari sumber ke tujuan.

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

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

Tipe bidang yang didukung

Saat Anda menyinkronkan data dengan DataHub, bidang dipetakan ke tipe data yang sesuai. DataHub hanya mendukung tipe data berikut: 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 tentang titik masuk dan prosedur konfigurasi tugas sinkronisasi, lihat panduan konfigurasi berikut.

Sinkronisasi batch tabel tunggal

Sinkronisasi real-time tabel tunggal

Untuk prosedurnya, lihat Konfigurasikan tugas sinkronisasi real-time di DataStudio.

Catatan

Untuk informasi tentang operasi yang didukung untuk berbagai tipe data DataHub, kebijakan sharding, format data, dan contoh pesan, lihat Lampiran: Format pesan.

Sinkronisasi real-time database penuh

Untuk prosedurnya, lihat Konfigurasikan tugas sinkronisasi database penuh real-time.

FAQ

Apa yang harus saya lakukan jika operasi penulisan ke DataHub gagal karena ukuran data melebihi batas untuk satu permintaan?

Lampiran: Kode dan parameter

Konfigurasikan tugas sinkronisasi batch menggunakan editor kode

Jika Anda 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 tujuan.
                        "topic": "xxx", // Nama topik DataHub tujuan.
                        "batchSize": 1000, // Jumlah catatan yang dibaca sekaligus.
                        "beginDateTime": "20180910111214", // Waktu mulai konsumsi data.
                        "endDateTime": "20180910111614", // Waktu akhir konsumsi data.
                        "column": [
                            "col0",
                            "col1",
                            "col2",
                            "col3",
                            "col4"
                                  ]
                                }
                           },
                "writer": {
                    "name": "streamwriter",
                    "parameter": {
                        "print": false
                                 }
                            }
             }
           ]
         }
       }
     ],
    "setting":{
        "errorLimit":{
            "record":"0"// Jumlah maksimum error yang diizinkan.
        },
        "speed":{
            "throttle":true,// Jika throttle diatur ke false, parameter mbps diabaikan, dan tidak ada pembatasan kecepatan. Jika throttle diatur ke true, pembatasan kecepatan diaktifkan.
            "concurrent":1,// Jumlah thread konkuren.
            "mbps":"12"// Laju transfer data maksimum. 1 mbps = 1 MB/s.
        }
    },
    "order":{
        "hops":[
            {
                "from":"Reader",
                "to":"Writer"
            }
        ]
    }
}

Parameter Pembaca

Parameter

Deskripsi

Wajib

endpoint

Titik akhir DataHub.

Ya

accessId

ID AccessKey yang digunakan untuk mengakses DataHub.

Ya

accessKey

Rahasia AccessKey yang digunakan untuk mengakses DataHub.

Ya

project

Nama proyek di DataHub target. Proyek adalah unit manajemen sumber daya di DataHub yang digunakan untuk isolasi dan kontrol sumber daya.

Ya

topic

Nama topik DataHub tujuan.

Ya

batchSize

Jumlah catatan yang dibaca sekaligus. Nilai default: 1.024.

Tidak

beginDateTime

Waktu mulai konsumsi data dalam format yyyyMMddHHmmss. Rentang waktu bersifat inklusif terhadap waktu mulai dan eksklusif terhadap waktu akhir. Untuk menyinkronkan data secara inkremental, Anda dapat menggunakan parameter ini bersama parameter penjadwalan DataWorks. Misalnya, Anda dapat mengatur nama parameter menjadi bizdate dan nilai menjadi $[yyyymmdd-1]. Kemudian, atur beginDateTime menjadi ${bizdate}000000. Ini mengonfigurasi waktu mulai menjadi pukul 00:00:00 pada hari sebelumnya.

Catatan

Parameter beginDateTime dan endDateTime harus digunakan bersama.

Ya

endDateTime

Waktu akhir konsumsi data dalam format yyyyMMddHHmmss. Timestamp ini merupakan batas eksklusif untuk rentang waktu. Untuk menyinkronkan data secara inkremental, Anda dapat menggunakan parameter ini bersama parameter penjadwalan DataWorks. Misalnya, Anda dapat mengatur nama parameter menjadi bizdate dan nilai menjadi $[yyyymmdd-1]. Kemudian, atur endDateTime menjadi ${bizdate}235959. Ini mengonfigurasi waktu akhir menjadi pukul 23:59:59 pada hari sebelumnya.

Catatan

Parameter 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 dasar untuk langganan dan publikasi di DataHub. Anda dapat menggunakan topik untuk merepresentasikan jenis atau kategori tertentu dari data streaming.
                "maxRetryCount": 500,// Jumlah maksimum percobaan ulang jika tugas gagal.
                "maxCommitSize": 1048576// Data dikomit secara batch ketika buffer mencapai ukuran ini (dalam byte). Batas catatan per permintaan DataHub adalah 10.000. Untuk mencegah error, pastikan nilai ini kurang dari (ukuran rata-rata catatan * 10.000).
            },
            "name": "Writer",
            "category": "writer"
        }
    ],
    "setting": {
        "errorLimit": {
            "record": ""// Jumlah maksimum error yang diizinkan.
        },
        "speed": {
            "throttle":true,// Jika throttle diatur ke false, parameter mbps diabaikan, dan tidak ada pembatasan kecepatan. Jika throttle diatur ke true, pembatasan kecepatan diaktifkan.
            "concurrent":20, // Jumlah thread konkuren.
            "mbps":"12"// Laju transfer data maksimum. 1 mbps = 1 MB/s.
        }
    },
    "order": {
        "hops": [
            {
                "from": "Reader",
                "to": "Writer"
            }
        ]
    }
}

Parameter Writer

Parameter

Deskripsi

Wajib

Default

accessId

ID AccessKey DataHub.

Ya

Tidak ada

accessKey

Rahasia AccessKey DataHub.

Ya

Tidak ada

endPoint

Titik akhir layanan DataHub tempat sumber daya Anda berada.

Ya

Tidak ada

maxRetryCount

Jumlah maksimum percobaan ulang jika tugas gagal.

Tidak

Tidak ada

mode

Mode penulisan untuk nilai tipe data STRING.

Ya

Tidak ada

parseContent

Menentukan apakah konten perlu diurai.

Ya

Tidak ada

project

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

Catatan

Proyek DataHub bersifat independen dari proyek MaxCompute. Anda tidak dapat menggunakan kembali proyek MaxCompute di DataHub.

Ya

Tidak ada

topic

Di DataHub, topik adalah unit dasar untuk publikasi dan langganan data, yang merepresentasikan kategori data streaming.

Ya

Tidak ada

maxCommitSize

Untuk meningkatkan performa penulisan, DataX menyimpan data dalam buffer dan menuliskannya secara batch ketika buffer mencapai ukuran yang ditentukan oleh maxCommitSize (dalam byte). DataHub memperbolehkan maksimal 10.000 catatan per permintaan. Untuk mencegah error, atur parameter ini ke nilai yang kurang dari ukuran total 10.000 catatan berdasarkan ukuran rata-rata catatan Anda.

Tidak

1 MB