全部产品
Search
文档中心

DataWorks:Sumber data DataHub

更新时间:Aug 23, 2025

DataWorks menyediakan DataHub Reader dan DataHub Writer untuk membaca dan menulis data ke sumber data DataHub, memfasilitasi komputasi cepat pada volume data yang besar. Topik ini menjelaskan kemampuan sinkronisasi data dari sumber data DataHub.

Versi DataHub yang Didukung

  • DataHub Reader membaca data dari DataHub menggunakan DataHub SDK for Java. Berikut adalah contoh penggunaan DataHub SDK for Java:

    <dependency>
        <groupId>com.aliyun.DataHub</groupId>
        <artifactId>aliyun-sdk-DataHub</artifactId>
        <version>2.9.1</version>
    </dependency>
  • DataHub Writer menulis data ke DataHub menggunakan DataHub SDK for Java. Berikut adalah contoh penggunaan DataHub SDK for Java:

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

Batasan

Pembacaan dan penulisan data batch

String harus dikodekan dalam format UTF-8 dengan ukuran maksimum 1 MB per string.

Pembacaan dan penulisan data real-time

Penulisan real-time data penuh dan inkremental

Setelah menjalankan solusi sinkronisasi, data penuh di sumber ditulis ke tujuan menggunakan tugas sinkronisasi batch. Kemudian, data inkremental di sumber ditulis ke tujuan menggunakan tugas sinkronisasi real-time. Saat menulis data ke DataHub, perhatikan hal-hal berikut:

  • Anda hanya dapat menulis data ke topik bertipe TUPLE. Untuk informasi lebih lanjut tentang tipe data yang didukung oleh topik TUPLE, lihat Tipe Data.

  • Ketika menjalankan tugas sinkronisasi real-time untuk menyinkronkan data ke DataHub secara real-time, lima bidang tambahan ditambahkan ke topik tujuan secara default. Anda juga dapat menambahkan bidang lain sesuai kebutuhan bisnis. Untuk informasi lebih lanjut tentang format pesan DataHub, lihat Lampiran: Format Pesan DataHub.

Pemetaan tipe data

Data disinkronkan berdasarkan pemetaan antara tipe data bidang di DataHub dan layanan tertentu. DataHub mendukung tipe data berikut: BIGINT, STRING, BOOLEAN, DOUBLE, TIMESTAMP, dan DECIMAL.

Tambahkan sumber data

Sebelum mengembangkan tugas sinkronisasi di DataWorks, tambahkan sumber data yang diperlukan ke DataWorks dengan mengikuti petunjuk di Manajemen Sumber Data. Anda dapat melihat tip informasi parameter di Konsol DataWorks untuk memahami arti parameter saat menambahkan sumber data.

Mengembangkan tugas sinkronisasi data

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

Konfigurasikan tugas sinkronisasi batch untuk menyinkronkan data tabel tunggal

Konfigurasikan tugas sinkronisasi real-time untuk menyinkronkan data tabel tunggal atau menyinkronkan semua data dari database

Untuk informasi lebih lanjut tentang prosedur konfigurasi, lihat Konfigurasikan Tugas Sinkronisasi Real-Time di DataStudio.

Catatan

Untuk informasi tentang dukungan berbagai jenis topik untuk sinkronisasi perubahan data yang dihasilkan oleh operasi pada tabel sumber, strategi sharding untuk berbagai jenis topik, format data, dan pesan sampel, lihat Lampiran: Format Pesan DataHub.

Konfigurasikan pengaturan sinkronisasi untuk menerapkan (real-time) sinkronisasi data penuh dan inkremental dalam tabel tunggal atau database

Untuk informasi lebih lanjut tentang prosedur konfigurasi, lihat Konfigurasikan Tugas Sinkronisasi di Data Integration.

FAQ

Apa yang harus saya lakukan jika data gagal ditulis ke DataHub karena jumlah data yang ingin saya tulis sekaligus melebihi batas maksimum?

Lampiran: Kode dan parameter

Lampiran: Konfigurasikan tugas sinkronisasi batch menggunakan editor kode

Konfigurasikan tugas sinkronisasi batch menggunakan editor kode

Jika ingin mengonfigurasi tugas sinkronisasi batch menggunakan editor kode, konfigurasikan parameter terkait dalam skrip sesuai dengan persyaratan format skrip terpadu. Untuk informasi lebih lanjut, lihat Konfigurasikan Tugas Sinkronisasi Batch Menggunakan Editor Kode. Informasi berikut menjelaskan parameter yang harus dikonfigurasi untuk sumber data saat mengonfigurasi tugas sinkronisasi batch menggunakan editor kode.

Kode untuk DataHub 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 terhubung ke DataHub.
                        "accessKey": "xxx", // Rahasia AccessKey yang digunakan untuk terhubung ke DataHub.
                        "project": "xxx", // Nama proyek DataHub dari mana Anda ingin membaca data.
                        "topic": "xxx" // Nama topik DataHub dari mana Anda ingin membaca data.
                        "batchSize": 1000, // Jumlah catatan data 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 catatan data kotor yang diizinkan.
        },
        "speed":{
            "throttle":true,// Menentukan apakah akan mengaktifkan pembatasan kecepatan. Nilai false menunjukkan bahwa pembatasan dinonaktifkan, dan nilai true menunjukkan bahwa pembatasan 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 DataHub Reader

Parameter

Deskripsi

Diperlukan

endpoint

Titik akhir DataHub.

Ya

accessId

ID AccessKey yang digunakan untuk terhubung ke DataHub.

Ya

accessKey

Rahasia AccessKey yang digunakan untuk terhubung ke DataHub.

Ya

project

Nama proyek DataHub dari mana Anda ingin membaca data. Proyek DataHub adalah unit manajemen sumber daya di DataHub untuk isolasi dan kontrol sumber daya.

Ya

topic

Nama topik DataHub dari mana Anda ingin membaca data.

Ya

batchSize

Jumlah catatan data yang dibaca sekaligus. Nilai default: 1024.

Tidak

beginDateTime

Waktu mulai konsumsi data. Parameter ini menentukan batas kiri interval tertutup-kiri, terbuka-kanan. Tentukan waktu mulai dalam format yyyyMMddHHmmss.

Untuk menerapkan sinkronisasi data inkremental, Anda dapat menggunakan parameter penjadwalan. Misalnya, atur nama parameter penjadwalan node menjadi bizdate dan atur nilainya menjadi $[yyyymmdd-1]. Kemudian, Anda dapat mengatur beginDateTime menjadi ${bizdate}000000, yang menunjukkan bahwa konsumsi data dimulai pada 00:00:00 hari sebelumnya.

Catatan

Parameter beginDateTime dan endDateTime harus digunakan berpasangan.

Ya

endDateTime

Waktu akhir konsumsi data. Parameter ini menentukan batas kanan interval tertutup-kiri, terbuka-kanan. Tentukan waktu akhir dalam format yyyyMMddHHmmss.

Untuk menerapkan sinkronisasi data inkremental, Anda dapat menggunakan parameter penjadwalan. Misalnya, atur nama parameter penjadwalan node menjadi bizdate dan atur nilainya menjadi $[yyyymmdd-1]. Kemudian, Anda dapat mengatur endDateTime menjadi ${bizdate}235959, yang menunjukkan bahwa konsumsi data berakhir pada 23:59:59 hari sebelumnya.

Catatan

Parameter beginDateTime dan endDateTime harus digunakan berpasangan.

Ya

Kode untuk DataHub Writer

{
    "type": "job",
    "version": "2.0",// Nomor versi.
    "steps": [
        { 
            "stepType": "stream",
            "parameter": {},
            "name": "Reader",
            "category": "reader"
        },
        {
            "stepType": "datahub",// Nama plugin.
            "parameter": {
                "datasource": "",// Nama sumber data.
                "topic": "",// Unit minimum untuk langganan dan publikasi data. Anda dapat menggunakan topik untuk membedakan berbagai jenis data streaming.
                "maxRetryCount": 500,// Jumlah maksimum percobaan ulang jika tugas sinkronisasi gagal.
                "maxCommitSize": 1048576// Jumlah maksimum data yang di-buffer yang dapat diakumulasikan oleh Data Integration sebelum mengirimkan data ke tujuan. Unit: byte.
                 // DataHub memungkinkan hingga 10.000 catatan data ditulis dalam satu permintaan. Jika jumlah catatan data melebihi 10.000, tugas sinkronisasi gagal. Dalam hal ini, jumlah maksimum data yang dapat ditulis dalam satu permintaan dihitung menggunakan rumus berikut: Rata-rata jumlah data dalam satu catatan data × 10.000. Anda perlu mengatur maxCommitSize ke nilai yang lebih kecil dari jumlah data maksimum yang dihitung. Ini memastikan bahwa jumlah catatan data yang akan ditulis dalam satu permintaan tidak melebihi 10.000. Misalnya, jika ukuran data satu catatan data adalah 10 KB, nilai parameter ini harus kurang dari hasil 10 dikalikan 10.000.
            },
            "name": "Writer",
            "category": "writer"
        }
    ],
    "setting": {
        "errorLimit": {
            "record": ""// Jumlah maksimum catatan data kotor yang diizinkan.
        },
        "speed": {
            "throttle":true,// Menentukan apakah akan mengaktifkan pembatasan kecepatan. Nilai false menunjukkan bahwa pembatasan dinonaktifkan, dan nilai true menunjukkan bahwa pembatasan diaktifkan. Parameter mbps hanya berlaku ketika parameter throttle diatur ke true.
            "concurrent":20, // Jumlah maksimum thread paralel.
            "mbps":"12"// Laju transmisi maksimum. Unit: MB/s.
        }
    },
    "order": {
        "hops": [
            {
                "from": "Reader",
                "to": "Writer"
            }
        ]
    }
}

Parameter dalam kode untuk DataHub Writer

Parameter

Deskripsi

Diperlukan

Nilai default

accessId

ID AccessKey yang digunakan untuk terhubung ke DataHub.

Ya

Tidak ada nilai default

accessKey

Rahasia AccessKey yang digunakan untuk terhubung ke DataHub.

Ya

Tidak ada nilai default

endPoint

Titik akhir DataHub.

Ya

Tidak ada nilai default

maxRetryCount

Jumlah maksimum percobaan ulang jika tugas sinkronisasi gagal.

Tidak

Tidak ada nilai default

mode

Mode untuk menulis string.

Ya

Tidak ada nilai default

parseContent

Data yang akan diurai.

Ya

Tidak ada nilai default

project

Unit organisasi dasar data di DataHub. Setiap proyek memiliki satu atau lebih topik.

Catatan

Proyek DataHub independen dari proyek MaxCompute. Anda tidak dapat menggunakan proyek MaxCompute sebagai proyek DataHub.

Ya

Tidak ada nilai default

topic

Unit minimum untuk langganan dan publikasi data. Anda dapat menggunakan topik untuk membedakan berbagai jenis data streaming.

Ya

Tidak ada nilai default

maxCommitSize

Jumlah maksimum data yang di-buffer yang dapat diakumulasikan oleh Data Integration sebelum mengirimkan data ke tujuan. Anda dapat menentukan parameter ini untuk meningkatkan efisiensi penulisan. Nilai default adalah 1048576, dalam byte, yaitu 1 MB. DataHub memungkinkan hingga 10.000 catatan data ditulis dalam satu permintaan. Jika jumlah catatan data melebihi 10.000, tugas sinkronisasi gagal. Dalam hal ini, jumlah maksimum data yang dapat ditulis dalam satu permintaan dihitung menggunakan rumus berikut: Rata-rata jumlah data dalam satu catatan data × 10.000. Anda perlu mengatur maxCommitSize ke nilai yang lebih kecil dari jumlah data maksimum yang dihitung. Ini memastikan bahwa jumlah catatan data yang akan ditulis dalam satu permintaan tidak melebihi 10.000.

Tidak

1MB