全部产品
Search
文档中心

DataHub:Buat sinkronisasi MaxCompute

更新时间:Mar 13, 2026

Persiapan

Buat tabel MaxCompute

DataHub memungkinkan Anda menyinkronkan data ke tabel MaxCompute. Fitur ini mendukung tabel partisi maupun tabel non-partisi. Untuk mempermudah pemrosesan data di MaxCompute, kami merekomendasikan penggunaan tabel partisi.

Anda dapat menggunakan DataHub untuk menyinkronkan data dari topik TUPLE dan BLOB ke tabel MaxCompute.

  • Jika Anda menyinkronkan data dari topik TUPLE, tipe data pada tabel MaxCompute tujuan harus sesuai dengan tipe data DataHub. Tabel berikut menjelaskan pemetaan tipe data tersebut.

    MaxCompute

    DataHub

    BIGINT

    BIGINT

    STRING

    STRING

    BOOLEAN

    BOOLEAN

    DOUBLE

    DOUBLE

    DATETIME

    TIMESTAMP

    DECIMAL

    DECIMAL

    TINYINT

    TINIINT

    SMALLINT

    SMALLINT

    INT

    INTEGER

    FLOAT

    FLOAT

    MAP

    Not supported

    ARRAY

    Not supported

    DataHub tidak mendukung semua tipe data MaxCompute. Oleh karena itu, Anda harus membuat skema tabel MaxCompute berdasarkan tipe data DataHub.

  • Jika Anda menyinkronkan data dari topik BLOB, skema tabel MaxCompute hanya boleh berisi satu kolom STRING. Secara default, DataHub menyinkronkan data ke kolom ini.

    DataHub

    MaxCompute

    BLOB

    STRING

  • Untuk mempermudah pelacakan data dan troubleshooting, Anda dapat menambahkan bidang __rowkey__ STRING saat membuat skema tabel MaxCompute. DataHub secara otomatis menyinkronkan informasi jejak data ke kolom ini, yang membantu investigasi data di masa mendatang.

Siapkan akun untuk tugas sinkronisasi dan berikan izin

  • Saat membuat tugas sinkronisasi untuk MaxCompute, Anda harus memasukkan informasi akun yang diperlukan untuk mengakses tabel MaxCompute. Pastikan informasi akun tersebut valid. Biasanya, Pengguna RAM MaxCompute sudah mencukupi.

  • Anda harus memberikan izin yang diperlukan kepada akun tersebut agar dapat mengakses tabel MaxCompute. Izin tersebut mencakup CreateInstance, Describe, Alter, dan Update.

    Anda dapat menggunakan Konsol DataWorks untuk mengelola izin tabel MaxCompute. Untuk informasi selengkapnya, lihat Configure MaxCompute Engine PermissionsConfigure MaxCompute Engine Permissions. Anda juga dapat menggunakan antarmuka baris perintah MaxCompute untuk memberikan izin. Untuk informasi selengkapnya, lihat MaxCompute Usage and Authorization Management.

Konfirmasi TimestampUnit

  • Parameter TimestampUnit pada connector mengonversi data TIMESTAMP. Data dikonversi berdasarkan satuan yang Anda tentukan, lalu ditulis ke bidang bertipe tanggal, seperti bidang datetime, di sistem downstream.

  • Jika nilai kolom TIMESTAMP dalam satuan detik, atur TimestampUnit menjadi "SECOND" saat membuat konektor. Jika nilainya dalam milidetik, atur menjadi "MILLISECOND". Jika nilainya dalam mikrodetik, atur menjadi "MICROSECOND".

Penting

Banyak partisi dapat memperlambat sinkronisasi data dari DataHub karena standar penulisan saat ini di MaxCompute. Saat membuat tugas sinkronisasi MaxCompute, batasi jumlah partisi—terutama dalam mode sinkronisasi USER_DEFINE.

  • Usahakan agar data dalam partisi yang sama sekontinu mungkin. Hindari perubahan partisi yang terlalu sering.

  • Saat membuat partisi, jangan membuat terlalu banyak.

Catatan

Jika fitur daftar putih diaktifkan untuk proyek MaxCompute, hanya Perangkat dalam daftar putih yang dapat mengakses proyek tersebut. Setelah Anda mengaktifkan daftar putih IP MaxCompute, Anda harus mengonfigurasi daftar putih layanan agar layanan sinkronisasi dapat diakses. Untuk informasi selengkapnya tentang cara mengonfigurasi daftar putih, lihat Ikhtisar.

Mode sinkronisasi

Mode tambah

Data ditambahkan ke tabel tujuan. Mode ini cocok untuk skenario di mana data hanya perlu ditambahkan, bukan diperbarui.

Mode Upsert

Upsert menggabungkan operasi Update dan Insert. Logikanya sebagai berikut:

  • Jika catatan dengan kunci primer yang sama sudah ada di tabel tujuan, catatan yang ada diperbarui.

  • Jika catatan dengan kunci primer yang sama belum ada, catatan baru dimasukkan.

Mode Upsert memungkinkan Anda menangani pembaruan dan penyisipan data secara lebih fleksibel sehingga data di tabel tujuan selalu mutakhir.

Catatan

Untuk informasi lebih lanjut tentang fitur Upsert MaxCompute, lihat Terms.

Skenario

  • Perbarui data berdasarkan kunci primer: Data dapat berubah seiring waktu dan harus diperbarui berdasarkan kunci primernya.

  • Pertahankan keunikan data di tabel tujuan: Pastikan setiap catatan di tabel tujuan bersifat unik untuk menghindari duplikasi data.

  • Proses data duplikat: Hapus duplikat dari data dalam jumlah besar berdasarkan kunci primer.

Deskripsi konfigurasi

  1. Tipe topik DataHub: Harus berupa topik TUPLE.

  2. Skema Topik DataHub: Dukungan tersedia untuk dua tipe berikut:

    1. Tipe skema untuk data yang disinkronkan dari DTS ke DataHub, yang disebut sebagai format DTS.

    2. Pada skema yang Anda buat, Anda harus memilih kolom String sebagai kolom operasi. Hal ini menetapkan skema sebagai format kustom.

  3. Tabel tujuan ODPS: Harus berupa Transactional Table 2.0.

Aturan sinkronisasi

1. Format DTS

Saat menyinkronkan data dari DTS ke DataHub, DataHub menggunakan kolom operation_flag, before_flag, dan after_flag dalam skema untuk menentukan cara menyinkronkan data ke tabel tujuan ODPS. Aturannya sebagai berikut:

operation_flag

before_flag

after_flag

OperationType

Sync to destination table

I

*

*

UPSERT

Perbarui catatan di tabel tujuan berdasarkan kunci primer.

U

Y

N

DELETE

Hapus catatan dari tabel tujuan berdasarkan kunci primer.

U

N

Y

UPSERT

Perbarui catatan di tabel tujuan berdasarkan kunci primer.

D

*

*

DELETE

Hapus catatan dari tabel tujuan berdasarkan kunci primer.

2. Format kustom

Untuk data kustom, DataHub menentukan cara menyinkronkan data ke tabel tujuan ODPS berdasarkan kolom operasi yang Anda pilih.

ddddd

OperationType

Sync to destination table

U

UPSERT

Perbarui catatan di tabel tujuan berdasarkan kunci primer.

D

DELETE

Hapus catatan dari tabel tujuan berdasarkan kunci primer.

Buat tugas sinkronisasi

  1. Di DataHub, klik sebuah topik untuk membuka halaman detailnya.

  2. Pada halaman detail topik, klik tombol Sync di pojok kanan atas untuk membuat tugas sinkronisasi.

    c

  3. Pilih jenis pekerjaan MaxCompute untuk membuka halaman Create Connector.

    Deskripsi item konfigurasi:

    • Parameter

      Opsi

      Wajib

      Deskripsi

      Project Name

      /

      Ya

      Nama proyek MaxCompute.

      Schema

      /

      Tidak

      Nama skema MaxCompute.

      Catatan

      Untuk menggunakan fitur skema, aktifkan pengembangan sintaks skema. Untuk informasi lebih lanjut tentang cara mengaktifkan fitur ini dan detail skema lainnya, lihat Schema operations.

      Table

      /

      Ya

      Nama tabel MaxCompute.

      Catatan

      Jika Anda menggunakan mode Upsert, tabel tujuan harus berupa Transactional Table 2.0.

      Sync mode

      Append

      Ya

      Menambahkan data ke tabel tujuan MaxCompute.

      Upsert

      Memperbarui atau menghapus catatan di tabel transaksional MaxCompute berdasarkan kunci primer.

      Untuk informasi selengkapnya, lihat bagian Mode sinkronisasi dalam topik ini.

      Upsert method

      SYNC_CUSTOM 

      Wajib jika Anda mengatur Sync mode ke Upsert. Tidak berlaku jika Anda mengatur Sync mode ke Append.

      Bidang kustom untuk operasi upsert.

      SYNC_NONE

      Semua data ditulis ke tabel tujuan sebagai operasi upsert.

      SYNC_DTS

      Digunakan ketika data ditulis ke DataHub dari DTS dan aturan kolom lampiran DTS baru diaktifkan.

      SYNC_DTS_OLD  

      Berlaku untuk skenario di mana Anda menggunakan DTS untuk menulis data ke DataHub dan mengaktifkan aturan kolom lampiran baru.

      Primary key field

      /

      Kolom kunci primer yang Anda tentukan saat membuat tabel downstream untuk mode sinkronisasi Upsert.

      Upsert operation field

      /

      Wajib jika Anda mengatur Upsert method ke SYNC_CUSTOM.

      Pilih kolom STRING sebagai kolom operasi. Kolom ini menunjukkan apakah data disinkronkan ke tabel downstream sebagai operasi upsert atau delete.

      Untuk informasi lebih lanjut tentang mode Upsert, lihat bagian Mode Upsert dalam topik ini.

    • Import fields: DataHub dapat menyinkronkan konten kolom tertentu ke tabel MaxCompute berdasarkan pengaturan Anda.

    • Partition mode: Mode ini menentukan partisi MaxCompute tempat data ditulis. DataHub mendukung mode partisi berikut:

      Partition mode

      Partition basis

      Supported topic type

      Description

      USER_DEFINE

      Nilai kolom kunci partisi dalam catatan. Kolom tersebut harus memiliki nama yang sama dengan bidang partisi di MaxCompute.

      TUPLE

      (1) Skema DataHub harus berisi bidang partisi MaxCompute. (2) Nilai kolom ini harus berupa string UTF-8. Nilainya boleh kosong, yang berarti data tidak dipartisi.

      SYSTEM_TIME

      Waktu saat catatan ditulis ke DataHub.

      TUPLE / BLOB

      (1) Dalam konfigurasi partisi, atur format waktu untuk partisi MaxCompute. (2) Atur zona waktu.

      EVENT_TIME

      Nilai kolom event_time(TIMESTAMP) dalam catatan.

      TUPLE

      (1) Dalam konfigurasi partisi, atur format waktu untuk partisi MaxCompute. (2) Atur zona waktu.

      META_TIME

      Nilai bidang atribut __dh_meta_time__ dari catatan.

      TUPLE / BLOB

      (1) Dalam konfigurasi partisi, atur format waktu untuk partisi MaxCompute. (2) Atur zona waktu.

      Mode SYSTEM_TIME, EVENT_TIME, dan META_TIME mempartisi data berdasarkan konfigurasi timestamp dan zona waktu. Satuan default untuk timestamp adalah mikrodetik.

    • Partition configuration: Menentukan pengaturan untuk mempartisi data berdasarkan timestamp. Konsol menggunakan format partisi MaxCompute tetap secara default. Konfigurasi partisi adalah sebagai berikut:

      Partition

      Time Format

      Description

      ds

      %Y%m%d

      hari

      hh

      %H

      jam

      mm

      %M

      menit

      • Interval partisi menentukan interval waktu yang digunakan untuk mengonversi timestamp menjadi partisi MaxCompute. Rentang waktunya adalah 15 menit hingga 1440 menit (1 hari), dengan interval langkah 15 menit.

      • Zona waktu (TimeZone): Menentukan zona waktu untuk mempartisi data berdasarkan timestamp.

      • Separator: Saat menyinkronkan data BLOB, Anda dapat menentukan separator heksadesimal untuk memisahkan data sebelum disinkronkan ke MaxCompute. Misalnya, 0A merepresentasikan line feed (\n).

      • Encoding Base64: Secara default, DataHub menyimpan data BLOB sebagai data biner. Kolom yang sesuai di MaxCompute bertipe STRING. Oleh karena itu, saat membuat tugas sinkronisasi di konsol, data secara default di-encode Base64 sebelum disinkronkan. Untuk opsi kustomisasi lebih lanjut, Anda dapat menggunakan kit pengembangan perangkat lunak (SDK).

Lihat tugas sinkronisasi

Anda dapat mengklik halaman detail connector untuk melihat status dan informasi checkpoint tugas sinkronisasi. Informasi ini mencakup checkpoint sinkronisasi, status sinkronisasi, serta operasi seperti restart dan stop. Gambar berikut menunjukkan contohnya.

Contoh sinkronisasi

1. Mode sinkronisasi USER_DEFINE

  1. Buat topik DataHub.

    Catatan: Skema topik harus berisi bidang partisi MaxCompute. Bidang tersebut harus bertipe STRING, seperti yang ditunjukkan pada gambar berikut: 5-5

  2. Tulis data ke topik DataHub. Anda dapat menggunakan SDK DataHub untuk menulis data tersebut.

    Saat pengujian, gunakan SDK untuk menulis beberapa catatan. Nilai untuk [ds,hh,mm] adalah [20210304,01,15] dan [20210304,02,15]. Datanya sebagai berikut:

5-6

3. Buat tugas sinkronisasi.

Dalam mode partisi USER_DEFINE, Anda dapat mengatur bidang konfigurasi partisi selama sinkronisasi. Jika tabel yang sesuai belum ada di MaxCompute, tabel tersebut akan dibuat secara otomatis.

Pada contoh ini, bidang f1 dan f2 diimpor. Bidang f3 tidak disinkronkan.

4. Konfirmasi data yang telah disinkronkan.

Anda dapat melihat informasi sinkronisasi tugas sinkronisasi di Konsol DataHub. Lakukan kueri data di MaxCompute. Hasilnya sebagai berikut: 5-9 Dalam mode USER_DEFINE, DataHub menyinkronkan data ke partisi yang sesuai berdasarkan nilai bidang pengelompokan MaxCompute.

2. Mode sinkronisasi SYSTEM_TIME

  1. Buat topik DataHub.

    Catatan: Partisi dihitung berdasarkan waktu saat data ditulis ke DataHub. Oleh karena itu, skema topik hanya perlu berisi bidang data, bukan bidang partisi, seperti yang ditunjukkan pada gambar berikut:

a

  1. Tulis data ke topik DataHub. Anda dapat menggunakan SDK DataHub untuk menulis data tersebut.

    Saat pengujian, gunakan SDK untuk menulis beberapa catatan. Waktu saat data ditulis ke DataHub adalah 2021-03-04 14:02:45. Datanya sebagai berikut: 5-11

  2. Buat tugas sinkronisasi.

    • Pastikan konfigurasi partisi konsisten dengan partisi tabel MaxCompute.

4. Konfirmasi data yang telah disinkronkan.

Anda dapat melihat informasi sinkronisasi tugas sinkronisasi di Konsol DataHub, seperti DoneTime. Lakukan kueri data di MaxCompute. Hasilnya sebagai berikut: 5-14 Dalam mode SYSTEM_TIME, DataHub menyinkronkan data ke partisi yang sesuai berdasarkan waktu saat data ditulis ke DataHub.

FAQ

  • Waktu pada bidang timestamp yang disinkronkan ke MaxCompute menjadi 1970-01-19.

    Penyebab: Satuan default untuk timestamp yang disinkronkan dari DataHub ke MaxCompute adalah mikrodetik. Timestamp yang ditulis pengguna dalam milidetik. Solusi: Tulis timestamp ke DataHub dalam mikrodetik.